tầng giao vận

104
1-1 Mạng máy tính Bộ môn Kỹ thuật máy tính và Mạng Khoa Công nghệ Thông tin Đại học Sư phạm Hà Nội

Upload: truongcong

Post on 06-Feb-2017

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tầng giao vận

1-1

Mạng maacutey tiacutenhBộ mocircn Kỹ thuật maacutey tiacutenh vagrave MạngKhoa Cocircng nghệ Thocircng tinĐại học Sư phạm Hagrave Nội

1-2

Chương 4 Tầng giao vậnMục điacutech Hiểu caacutec nguyecircn tắc

becircn trong dịch vụ của tầng giao vận Multiplexing

Demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Học về giao thức tầng giao vận trong Internet UDP khocircng hướng kết nối TCP hướng kết nối Điều khiển tắc nghẽn của

TCP

1-3

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-4

Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec

giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau

Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin

ứng dụng thagravenh caacutec segment chuyển tới tầng mạng

Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng

Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-5

Tầng giao vận vagrave tầng mạng

Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host

Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng

mạng

Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa

trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec

bức thư host = nhagrave Giao thức giao vận = Ann

vagrave Bill Giao thức tầng mạng = dịch

vụ chuyển thư

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 2: Tầng giao vận

1-2

Chương 4 Tầng giao vậnMục điacutech Hiểu caacutec nguyecircn tắc

becircn trong dịch vụ của tầng giao vận Multiplexing

Demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Học về giao thức tầng giao vận trong Internet UDP khocircng hướng kết nối TCP hướng kết nối Điều khiển tắc nghẽn của

TCP

1-3

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-4

Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec

giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau

Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin

ứng dụng thagravenh caacutec segment chuyển tới tầng mạng

Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng

Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-5

Tầng giao vận vagrave tầng mạng

Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host

Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng

mạng

Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa

trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec

bức thư host = nhagrave Giao thức giao vận = Ann

vagrave Bill Giao thức tầng mạng = dịch

vụ chuyển thư

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 3: Tầng giao vận

1-3

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-4

Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec

giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau

Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin

ứng dụng thagravenh caacutec segment chuyển tới tầng mạng

Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng

Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-5

Tầng giao vận vagrave tầng mạng

Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host

Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng

mạng

Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa

trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec

bức thư host = nhagrave Giao thức giao vận = Ann

vagrave Bill Giao thức tầng mạng = dịch

vụ chuyển thư

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 4: Tầng giao vận

1-4

Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec

giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau

Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin

ứng dụng thagravenh caacutec segment chuyển tới tầng mạng

Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng

Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-5

Tầng giao vận vagrave tầng mạng

Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host

Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng

mạng

Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa

trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec

bức thư host = nhagrave Giao thức giao vận = Ann

vagrave Bill Giao thức tầng mạng = dịch

vụ chuyển thư

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 5: Tầng giao vận

1-5

Tầng giao vận vagrave tầng mạng

Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host

Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng

mạng

Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa

trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec

bức thư host = nhagrave Giao thức giao vận = Ann

vagrave Bill Giao thức tầng mạng = dịch

vụ chuyển thư

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 6: Tầng giao vận

1-6

Caacutec giao thức tầng giao vận của Internet

Truyền tin cậy coacute thứ tự (TCP) Điều khiển tắc nghẽn Điều khiển luồng Thiết lập kết nối

Truyền khocircng coacute thứ tự khocircng tin cậy UDP

Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 7: Tầng giao vận

1-7

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 8: Tầng giao vận

1-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh= socket

Chuyển caacutec segment đatilde nhận tới đuacuteng socket

Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)

Multiplexing tại host gửi

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 9: Tầng giao vận

1-9

Thực hiện demultiplexing Host nhận goacutei dữ liệu IP

Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech

Mỗi goacutei dữ liệu mang một segment của tầng giao vận

Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)

Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp

source port dest port

32 bits

Dữ liệu ứng dụng (bản tin)

Caacutec trường header

Định dạng TCPUDP segment

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 10: Tầng giao vận

1-10

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 11: Tầng giao vận

1-11

UDP User Datagram Protocol [RFC 768]

Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ

tự đến ứng dụng Khocircng hướng kết nối

Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận

Mỗi UDP segment được điều khiển độc lập

Tại sao coacute UDP Khocircng thiết lập kết nối (thiết

lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng

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

Header của segment nhỏ Khocircng điều khiển tắc nghẽn

UDP coacute thể gửi ra với tốc độ mong muốn

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

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

1-55

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

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

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

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

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

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

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

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

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

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

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-71

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

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

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

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-81

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

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

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

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

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

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

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

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

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

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

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

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

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

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

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

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

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

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 12: Tầng giao vận

1-12

UDP (tiếp) Thường sử dụng cho caacutec

ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ

Ứng dụng khaacutec sử dụng UDP DNS SNMP

Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng

dụng cụ thể

source port dest port

32 bits

dữ liệu của ứng dụng

(bản tin)

Định dạng của UDP segment

length checksumLength tiacutenh

theo byte củaUDP

segmentbao gồm

header

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

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

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

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

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

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

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

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

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

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

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

rdt_send(data)

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

udt_send(sndpkt)

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

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

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

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

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

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

đợi 1 từ dưới

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

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

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

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

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

rdt_send(data)

udt_send(sndpkt)

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

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

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

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

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

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

rdt_send(data)

đợi ACK 0

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

đợi cuộc gọi 1 từ trecircn

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

rdt_send(data)

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

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

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

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

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

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

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

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

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

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

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

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

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

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

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

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

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

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

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

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

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

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

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

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

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

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

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 13: Tầng giao vận

1-13

UDP checksum

Becircn gửi Đối xử với nội dung caacutec

segment như chuỗi caacutec số nguyecircn 16 biacutet

checksum cộng (tổng bugrave của 1) của nội dung segment

Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP

Becircn nhận Tiacutenh toaacuten checksum của

segment nhận được Kiểm tra xem checksum đatilde

tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện

coacute lỗi BẰNG ndash khocircng phaacutet hiện ra

lỗi Nhưng coacute thể coacute lỗi

Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

Truyền dữ liệu tin cậy

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 14: Tầng giao vận

1-14

Viacute dụ Checksum Chuacute yacute

Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16 biacutet

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

Tổngchecksum

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

Truyền dữ liệu tin cậy

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 15: Tầng giao vận

1-15

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

Truyền dữ liệu tin cậy

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 16: Tầng giao vận

1-16

Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng

ứng dụng

Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)

(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ

1-17

Truyền dữ liệu tin cậy

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 17: Tầng giao vận

1-17

Truyền dữ liệu tin cậy

Becircn gửi Becircn nhận

rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới

tầng trecircn của becircn nhận

udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng

tin cậy tới becircn nhận

rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 18: Tầng giao vận

1-18

Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute

becircn nhận vagrave becircn gửi

state1

state2

Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei

state khi trong 1 trạng thaacutei trạng thaacutei tiếp

theo lagrave duy nhất đối với 1 sự kiện

sự kiệnhagravenh động

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 19: Tầng giao vận

1-19

rdt10 Truyền tin cậy qua kecircnh tin cậy

Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin

FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới

Đợi cuộc gọi từ

phiacutea trecircn packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packetdata)deliver_data(data)

đợi cuộc gọi từ

phiacutea dưới

rdt_rcv(packet)

Becircn gửi Becircn nhận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 20: Tầng giao vận

1-20

Rdt20 kecircnh coacute lỗi biacutet

Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi

Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận

thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK

Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn

nhận -gt becircn gửi)

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 21: Tầng giao vận

1-21

rdt20 Maacutey trạng thaacutei

Đợi cuộc gọi từ trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Đợi ACK hoặc NAK

Đợi cuộc gọi từ phiacutea

dướiBecircn gửi

Becircn nhậnrdt_send(data)

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 22: Tầng giao vận

1-22

rdt20 Trường hợp khocircng lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 23: Tầng giao vận

1-23

rdt20 Trường hợp coacute lỗi

đợi cuộc gọi từ phiacutea

trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

đợi ACK hoặc NAK

đợi cuộc gọi từ phiacutea

dưới

rdt_send(data)

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 24: Tầng giao vận

1-24

rdt21 Becircn gửi điều khiển ACKNAK lỗi

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

đợi ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

đợi cuộc gọi 1 từ

trecircn

đợi ACK hoặc NAK

1

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 25: Tầng giao vận

1-25

rdt21 Becircn nhận điều khiển ACKNAK lỗi

đợi 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

đợi 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 26: Tầng giao vận

1-26

rdt21

Becircn gửi seq được thecircm vagraveo

goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu

ACKNAK đatilde nhận coacute lỗi

Hai lần -gt ổn định

Becircn nhận Phải kiểm tra goacutei tin đatilde

nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt

seq mong đợi lagrave 0 hay 1

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 27: Tầng giao vận

1-27

rdt22 Giao thức NAK-free

Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde

nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK

truyền lại pkt hiện tại

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 28: Tầng giao vận

1-28

rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận

đợi cuộc gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

đợi ACK0

FSM becircn gửi

đợi 0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt) extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)FSM becircn nhận

L

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 29: Tầng giao vận

1-29

rdt30 kecircnh coacute lỗi vagrave mất goacutei

Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK

truyền lại lagrave khocircng đủ

Caacutech tiếp cận becircn nhận đợi ACK một thời gian

Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey

Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng

seq để giải quyết Becircn nhận phải gaacuten seq

của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian

ngược

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 30: Tầng giao vận

1-30

rdt30 Becircn gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

đợi ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

đợi cuộc gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

đợi cuộc gọi 0 từ trecircn

đợi ACK 1

rdt_rcv(rcvpkt)

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 31: Tầng giao vận

1-31

rdt30

(a) Khocircng mất goacutei (b) Mất goacutei

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 32: Tầng giao vận

1-32

rdt30

(c) Mất ACK (c) Timeout

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 33: Tầng giao vận

1-33

Hiệu năng của rdt30

Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB

T transmit = 8kbpkt109 bsec = 8 microsec

U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường

truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)

=

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 34: Tầng giao vận

1-34

rdt30 Hoạt động stop-and-wait

goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

goacutei tin cuối cugraveng truyền t = L R

biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp t = RTT + L R

U sender = 008

30008 = 000027

microseconds

L R RTT + L R

=

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 35: Tầng giao vận

1-35

Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được

ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận

Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 36: Tầng giao vận

1-36

Pipelining Tăng hiệu quả sử dụng

Biacutet goacutei tin đầu tiecircn được truyền t = 0

Becircn gửi Becircn nhận

RTT

Biacutet cuối cugraveng được truyềnt = L R

Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK

ACK đến gửi goacutei tin tiếp theot = RTT + L R

Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK

U sender = 024

30008 = 00008

microseconds

3 L R RTT + L R

=

Tăng hiệu quả sử dụng lecircn 3 lần

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 37: Tầng giao vận

1-37

Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp

ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp

Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong

cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 38: Tầng giao vận

1-38

GBN FSM mở rộng của becircn gửi

đợi start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 39: Tầng giao vận

1-39

GBN FSM mở rộng của becircn nhận

ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum

Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)

đợi

udt_send(sndpkt)default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 40: Tầng giao vận

1-40

GBN

Window size = 4 pkt

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 41: Tầng giao vận

1-41

Selective Repeat

Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự

chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK

Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận

N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 42: Tầng giao vận

1-42

Selective repeat Cửa sổ becircn gửi becircn nhận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 43: Tầng giao vận

1-43

Selective repeat

Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ

gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ

đếm thời gianACK(n) [sendbasesendbase+N]

Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK

nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp

Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]

Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng

coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp

pkt n [rcvbase-Nrcvbase-1]

ACK(n)Nếu khocircng Bỏ qua

Becircn nhận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 44: Tầng giao vận

1-44

Selective repeat

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 45: Tầng giao vận

1-45

Selective repeat

Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3

Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản

Chuyển khocircng đuacuteng dữ liệu như mới (a)

Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 46: Tầng giao vận

1-46

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 47: Tầng giao vận

1-47

TCP Tổng quan RFC 793 1122 1323 2018 2581

Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai

chiều trecircn cugraveng một kết nối

MSS maximum segment size

Hướng kết nối Bắt tay (trao đổi caacutec bản

tin điều khiển) becircn gửi khởi đầu

Điều khiển luồng Becircn gửi khocircng gửi quaacute

khả năng becircn nhận

Point-to-point Một becircn gửi một becircn nhận

Tin cậy coacute thứ tự Pipeline

Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ

Vugraveng đệm gửi vagrave nhận

socketdoor

T C Psend buffer

TC Prece ive buffer

socketdoor

segm en t

applica tionwrites data

applicationreads data

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 48: Tầng giao vận

1-48

Cấu truacutec của TCP segment

source port dest port

32 bits

dữ liệu ứng dụng(chiều dagravei thay đổi)

sequence numberacknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (chiều dagravei thay đổi)

URG urgent data (khocircng sử dụng)

ACK ACK

PSH push data(khocircng sử dụng)

RST SYN FINthiết lập kết nối

bytes becircn nhận muốn nhận

đếm số byte dữ liệu(khocircng phải segments)

Internetchecksum

(như trong UDP)

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 49: Tầng giao vận

1-49

TCP seq vagrave ACKSeq

Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment

ACK seq của byte tiếp

theo mong nhận ACK tiacutech lũy

Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde

tugravey thuộc vagraveo cagravei đặt cụ thể

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

GotildelsquoCrsquo

host ACK đatilde nhận lsquoCrsquo baacuteo lại

host ACK đatilde nhận

lsquoCrsquo baacuteo lạilsquoCrsquo

timeKịch bản telnet

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 50: Tầng giao vận

1-50

RTT vagrave Timeout trong TCP

Q Thiết lập giaacute trị timeout của TCP

Lớn hơn RTT RTT thay đổi

Quaacute nhỏ timeout sớm Khocircng cần thiết

truyền lại Quaacute lớn xử lyacute chậm

caacutec segment bị mất

Q Ước lượng RTT SampleRTT đo thời gian từ truyền

segment tới khi ACK được nhận Bỏ qua truyền lại

SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute

trị đo gần đoacute

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 51: Tầng giao vận

1-51

RTT vagrave timeout trong TCP

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

Giaacute trị thường dugraveng = 0125

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 52: Tầng giao vận

1-52

Viacute dụ ước lượng RTT

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 53: Tầng giao vận

1-53

RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven

Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(thường = 025)

Rồi thiết lập timeout

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 54: Tầng giao vận

1-54

Chương 3 Tầng giao vận

31 Caacutec dịch vụ tầng giao vận

32 Multiplexing vagrave demultiplexing

33 Dịch vụ khocircng hướng kết nối UDP

34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn của TCP

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 55: Tầng giao vận

1-55

Truyền dữ liệu tin cậy của TCP

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP

Pipelined segment ACK tiacutech lũy

Truyền lại khi Coacute sự kiện timeout Lặp ack

Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng

điều khiển tắc nghẽn

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 56: Tầng giao vận

1-56

Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte

của byte đầu tiecircn trong segment

Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum

Timeout Truyền lại segment bị quaacute

hạn Tiacutenh timeout interval cho

segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa

được ACK Cập nhật để biết đatilde ack

Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3

lần thigrave truyền lại

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 57: Tầng giao vận

1-57

Becircn gửiTCP (đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)

event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y

Khởi động timer cho segment y

event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)

Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y

else ACK lặp Tăng số ACK lặp của segment y

if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y

Khởi động timer cho segment y

Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 58: Tầng giao vận

1-58

TCP Kịch bản truyền lại

Host A

Seq=92 8 bytes dữ liệu

ACK=100

mất

timeo

ut

Kịch bản mất ACK

Host B

X

Seq=92 8 bytes dữ liệu

ACK=100

thời gian

SendBase= 100

Host A

Seq=100 20 bytes dữ liệu

ACK=100

thời giantimeout sớm

Host B

Seq=92 8 bytes dữ liệu

ACK=120

Seq=92 8 bytes dữ liệu

Seq

=92

timeo

ut

ACK=120

Seq

=92

timeo

ut

SendBase= 120

SendBase= 120

Sendbase= 100

Kịch bản khocircng truyền lại segment khi ACK đến trước timeout

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 59: Tầng giao vận

1-59

Kịch bản truyền lạiHost A

Seq=92 8 bytes data

ACK=100

mất

timeo

ut

Kịch bản ACK tiacutech lũy

Host B

X

Seq=100 20 bytes data

ACK=120

thời gian

SendBase= 120

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 60: Tầng giao vận

1-60

Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat

Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave

Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)

Sequence number của byte tiếp theo sẽ gửi (nextseqnum)

Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi

lại segment n RFC 2018 - TCP Selective Acknowledgment Options

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 61: Tầng giao vận

1-61

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 62: Tầng giao vận

1-62

Điều khiển luồng TCP

Becircn nhận của kết nối TCP coacute buffer nhận

Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận

Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh

Điều khiển luồng

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 63: Tầng giao vận

1-63

Điều khiển luồng của TCP

(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)

Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash

LastByteRead) RcvWindow = 0

Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment

Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận

khocircng bị tragravenLastByteSent -

LastByteAcked lt= RcvWindow

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 64: Tầng giao vận

1-64

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 65: Tầng giao vận

1-65

Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận

của TCP thiết lập kết nối trước khi trao đổi dữ liệu

Khởi tạo giaacute trị seq buffer thocircng tin điều

khiển luồng (viacute dụ RcvWindow)

Client khởi tạo kết nối Socket clientSocket = new

Socket(hostnameport number)

Server liecircn lạc bởi client Socket connectionSocket =

welcomeSocketaccept()

Bắt tay 3 đườngBước 1 Client gửi TCP SYN

segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu

Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq

Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 66: Tầng giao vận

1-66

Quản lyacute kết nối của TCP

Thiết lập kết nối

client

Connection request (SYN=1 seq=client_isn)

server

Connection granted (SYN=1 seq=server_isn

ack=client_isn+1

ack (SYN=0 seq=client_isn+1 ack=server_isn+1

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 67: Tầng giao vận

1-67

Quản lyacute kết nối của TCP

Đoacuteng kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi TCP FIN tới server

Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đoacuteng

thờ

i gia

n đơ

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 68: Tầng giao vận

1-68

Quản lyacute kết nối của TCP

Bước 3 client nhận FIN trả lời bằng ACK

Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN

Bước 4 server nhận ACK Kết nối đoacuteng

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đoacuteng

thờ

i gia

n đợ

iđatilde đoacuteng

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 69: Tầng giao vận

1-69

Quản lyacute kết nối của TCP

Chu kỳ hoạt độngTCP client

Chu kỳ hoạt độngTCP server

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 70: Tầng giao vận

1-70

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 71: Tầng giao vận

1-71

Nguyecircn tắc điều khiển tắc nghẽn

Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute

khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm

Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 72: Tầng giao vận

1-72

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1

Hai đối tượng gửi hai đối tượng nhận

Một router vugraveng đệm khocircng giới hạn

Khocircng truyền lại

Độ trễ lớn khi xảy ra tắc nghẽn

Tối đa thocircng lượng coacute thể đạt được

unlimited shared output link buffers

Host Alin original data

Host B

lout

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 73: Tầng giao vận

1-73

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2

Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất

vugraveng đệm của đường truyền đầu ra dugraveng

chung vagrave coacute giới hạn

Host A lin dữ liệu ban đầu

Host B

lout

lin dữ liệu ban đầu dữ liệu truyền lại

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 74: Tầng giao vận

1-74

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)

Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất

Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với

in

out=

in

outgt

inout

ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep

của goacutei tin

R2

R2in

out

b

R2

R2in

out

a

R2

R2in

out

c

R4

R3

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 75: Tầng giao vận

1-75

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại

in

Q Điều gigrave xảy ra khi vagrave tăng

in

vugraveng đệm của đường truyền ra dugraveng chung

vagrave coacute giới hạn

Host Ain dữ liệu ban đầu

Host B

outin dữ liệu ban đầu vagrave dữ liệu truyền lại

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 76: Tầng giao vận

1-76

Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3

Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử

dụng cho goacutei tin đoacute đatilde latildeng phiacute

Host A

Host B

o

u

t

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 77: Tầng giao vận

1-77

Caacutec caacutech tiếp cận để điều khiển tắc nghẽn

Điều khiển tắc nghẽn cuối-cuối

Khocircng coacute phản hồi chiacutenh thức từ mạng

Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ

Caacutech tiếp cận sử dụng bởi TCP

Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng

Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn

(SNA DECbit TCPIP ECN ATM)

Chỉ rotilde tốc độ becircn gửi necircn gửi

Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 78: Tầng giao vận

1-78

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi

chưa đến giới hạn tải Becircn gửi necircn sử dụng

băng thocircng khả dụng Nếu đường đi của becircn gửi

bị tắc nghẽn Becircn gửi điều chỉnh tốc

độ đảm bảo tối thiểu

RM cell (Resource Management)

Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu

Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc

nghẽn nhẹ) CI bit tắc nghẽn

RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 79: Tầng giao vận

1-79

Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR

Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường

Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet

CI trong cell RM trả về

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 80: Tầng giao vận

1-80

Chương 4 Tầng giao vận

41 Caacutec dịch vụ tầng giao vận

42 Multiplexing vagrave demultiplexing

43 Dịch vụ khocircng hướng kết nối UDP

44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy

45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối

46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn

47 Điều khiển tắc nghẽn của TCP

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 81: Tầng giao vận

1-81

Điều khiển tắc nghẽn của TCP

Điều khiển end-end (khocircng coacute hỗ trợ của mạng)

Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin

RcvWin Gần đuacuteng

CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng

Caacutech becircn gửi nhận biết sự tắc nghẽn

Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack

Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei

Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện

timeout

rate = CongWin

RTT Bytessec

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 82: Tầng giao vận

1-82

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei

Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei

Kết nối TCP trong thời gian dagravei

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 83: Tầng giao vận

1-83

TCP Slow Start

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp

RTT = 200 msec Tốc độ ban đầu = 20 kbps

Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc

độ đaacuteng kể

Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 84: Tầng giao vận

1-84

TCP Slow Start (tiếp)

Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi

RTT Thự hiện bằng caacutech tăng

CongWin cho mọi ACK nhận được

Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ

Host A

1 segment

RTT

Host B

time

2 segments

4 segments

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 85: Tầng giao vận

1-85

Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại

CongWin giảm một nửa window tăng tuyến tiacutenh

Nhưng sau sự kiện timeout CongWin thay vigrave thiết

lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm

tuyến tiacutenh

bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment

bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn

Triết lyacute

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 86: Tầng giao vận

1-86

Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số

mũ chuyển thagravenh theo tuyến tiacutenh

A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout

Thực hiện Variable Threshold Tại sự kiện mất goacutei

Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 87: Tầng giao vận

1-87

Tổng kết Điều khiển tắc nghẽn của TCP

Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ

Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh

Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold

Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 88: Tầng giao vận

1-88

Điều khiển tắc nghẽn becircn gửi của TCP

Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Kết quả bởi gấp đocirci CongWin mỗi RTT

Nhận ACK cho dữ liệu khocircng được ack trước đoacute

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT

Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp

SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo

Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS

Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo

Vagraveo slow start

ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack

CongWin vagrave Threshold khocircng thay đổi

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 89: Tầng giao vận

1-89

Thocircng lượng của TCP

Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start

Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2

thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 90: Tầng giao vận

1-90

Tương lai của TCP

Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng

Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei

L = 210-10

Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết

LRTTMSS221

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 91: Tầng giao vận

1-91

Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK

Kết nối TCP 1

điểm thắt nuacutetkhả năng R

Kết nối TCP 2

Sự cocircng bằng của TCP

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 92: Tầng giao vận

1-92

Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh

R

R

Chia sẻ băng thocircng bằng nhau

Thocircng lượng của kết nối 1

Thocircn

g l ư

ợng

của

kết

nối

2

traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 93: Tầng giao vận

1-93

Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa

phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm

bởi điều khiển tắc nghẽn Ứng dụng sử dụng

UDP Đẩy dữ liệu audiovideo

ở tốc độ hằng số chấp nhận mất goacutei

Sự cocircng bằng vagrave caacutec kết nối TCP song song

Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host

Trigravenh duyệt Web thực hiện như trecircn

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 94: Tầng giao vận

1-94

Mocirc higravenh độ trễ

Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu

Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi

Thiết lập kết nối TCP Độ trễ truyền dữ liệu

Giả sử một đường truyền giữa client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất

goacutei khocircng lỗi)

Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W

segment Cửa số động mocirc higravenh slow

start

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 95: Tầng giao vận

1-95

Cửa sổ tắc nghẽn cố định

Trường hợp 1WSR gt RTT + SR ACK

cho segment đầu tiecircn trong cửa sổ

Độ trễ = 2RTT + OR

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 96: Tầng giao vận

1-96

Cửa sổ tắc nghẽn cố định

Trường hợp 2 WSR lt RTT + SR đợi

ACK sau khi gửi lượng dữ liệu của cửa sổ

Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 97: Tầng giao vận

1-97

Mocirc higravenh độ trễ TCP Slow Start (1)

Giả sử cửa sổ lớn theo slow start

Độ trễ cho một đối tượng lagrave

RS

RSRTTP

RORTTLatency P )12(2

Trong đoacute P lagrave lượng thời gian TCP rỗi tại server

1min KQP

- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 98: Tầng giao vận

1-98

Mocirc higravenh độ trễ TCP Slow Start (2)

RTT

initiate TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

th ird w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

de livered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Thời gian rỗi của server P=2 times

Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start

Server rỗi P = minK-1Q times

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 99: Tầng giao vận

1-99

Mocirc higravenh độ trễ TCP (3)

RS

RSRTTPRTT

RO

RSRTT

RSRTT

RO

idleTimeRTTRO

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

RTT

in itia te TC Pconnection

requestobject

firs t window= S R

second w indow= 2S R

third window= 4S R

fourth w indow= 8SR

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment

thời gian để truyền cửa sổ thứ k

thời gian rỗi sau cửa sổ thứ k

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 100: Tầng giao vận

1-100

Mocirc higravenh độ trễ TCP (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

SO

SOkk

SOk

SOk

OSSSkK

k

k

k

Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự

K = số cửa sổ bao đối tượngCaacutech tiacutenh K

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 101: Tầng giao vận

1-101

Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa

1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)

Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi

Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi

Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 102: Tầng giao vận

1-102

02468

101214161820

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 103: Tầng giao vận

1-103

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1 Mbps 10Mbps

non-persistent

persistent

parallel non-persistent

Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5

Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết
Page 104: Tầng giao vận

1-104

Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong

caacutec dịch vụ tầng giao vận multiplexing

demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn

Sự thực hiện trong Internet UDP TCP

Tiếp theo Dừng tigravem hiểu phần becircn

ngoagravei của mạng (tầng ứng dụng tầng giao vận)

Tigravem hiểu vagraveo trong lotildei của mạng

  • Mạng maacutey tiacutenh
  • Chương 4 Tầng giao vận
  • Slide 3
  • Caacutec giao thức vagrave dịch vụ tầng giao vận
  • Tầng giao vận vagrave tầng mạng
  • Caacutec giao thức tầng giao vận của Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Thực hiện demultiplexing
  • Slide 10
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tiếp)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 15
  • Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
  • Truyền dữ liệu tin cậy
  • Slide 18
  • rdt10 Truyền tin cậy qua kecircnh tin cậy
  • Rdt20 kecircnh coacute lỗi biacutet
  • rdt20 Maacutey trạng thaacutei
  • rdt20 Trường hợp khocircng lỗi
  • rdt20 Trường hợp coacute lỗi
  • rdt21 Becircn gửi điều khiển ACKNAK lỗi
  • rdt21 Becircn nhận điều khiển ACKNAK lỗi
  • rdt21
  • rdt22 Giao thức NAK-free
  • rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
  • rdt30 kecircnh coacute lỗi vagrave mất goacutei
  • rdt30 Becircn gửi
  • rdt30
  • Slide 32
  • Hiệu năng của rdt30
  • rdt30 Hoạt động stop-and-wait
  • Caacutec giao thức Pipeline
  • Pipelining Tăng hiệu quả sử dụng
  • Go-Back-N
  • GBN FSM mở rộng của becircn gửi
  • GBN FSM mở rộng của becircn nhận
  • GBN
  • Selective Repeat
  • Selective repeat Cửa sổ becircn gửi becircn nhận
  • Selective repeat
  • Selective repeat
  • Slide 45
  • Slide 46
  • TCP Tổng quan RFC 793 1122 1323 2018 2581
  • Cấu truacutec của TCP segment
  • TCP seq vagrave ACK
  • RTT vagrave Timeout trong TCP
  • RTT vagrave timeout trong TCP
  • Viacute dụ ước lượng RTT
  • RTT vagrave timeout của TCP
  • Chương 3 Tầng giao vận
  • Truyền dữ liệu tin cậy của TCP
  • Caacutec sự kiện của becircn gửi TCP
  • Becircn gửi TCP (đơn giản)
  • TCP Kịch bản truyền lại
  • Kịch bản truyền lại
  • Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
  • Slide 61
  • Điều khiển luồng TCP
  • Điều khiển luồng của TCP
  • Slide 64
  • Quản lyacute kết nối của TCP
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Nguyecircn tắc điều khiển tắc nghẽn
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
  • Slide 74
  • Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
  • Slide 76
  • Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
  • Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
  • Slide 79
  • Slide 80
  • Điều khiển tắc nghẽn của TCP
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (tiếp)
  • Quaacute trigravenh tinh chỉnh
  • Quaacute trigravenh tinh chỉnh (tiếp)
  • Tổng kết Điều khiển tắc nghẽn của TCP
  • Điều khiển tắc nghẽn becircn gửi của TCP
  • Thocircng lượng của TCP
  • Tương lai của TCP
  • Sự cocircng bằng của TCP
  • Lyacute do TCP cocircng bằng
  • Sự cocircng bằng (tiếp)
  • Mocirc higravenh độ trễ
  • Cửa sổ tắc nghẽn cố định
  • Slide 96
  • Mocirc higravenh độ trễ TCP Slow Start (1)
  • Mocirc higravenh độ trễ TCP Slow Start (2)
  • Mocirc higravenh độ trễ TCP (3)
  • Mocirc higravenh độ trễ TCP (4)
  • Mocirc higravenh hoacutea HTTP
  • PowerPoint Presentation
  • Slide 103
  • Chương 4 Tổng kết