1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 3: Lớp Transport

60 337 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lớp Transport
Tác giả Jim Kurose, Keith Ross
Trường học Addison-Wesley
Chuyên ngành Computer Networking
Thể loại Bài giảng
Năm xuất bản 2004
Thành phố Boston
Định dạng
Số trang 60
Dung lượng 2,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

3.2 Multiplexing và demultiplexing... UDP: User Datagram Protocol [RFC 768]... chờ ACK hoặc NAKchờ gọi từ lớp dưới rdt_senddata Λ... chờ ACK hoặc NAKchờ gọi từ lớp dưới rdt_senddata Λ...

Trang 2

❍ UDP: v n chuy n không k t ậ ể ế

n i (connectionless)ố

❍ TCP: v n chuy n h ng k t ậ ể ướ ế

n i (connection-oriented)ố

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

Trang 3

Ch ng 3: N i dung trình bày ươ ộ

Trang 4

3.1 Các d ch v l p Transport ị ụ ớ

Trang 5

Các d ch v và giao th c ị ụ ứ

Transport

❒ cung c p ấ truy n thông logic

ch y trên các host khác nhauạ

application

transport

network data link physical

network data link physical

network data link physical

network data link physical

network data link physical network

data link physical

log ica

l en d-e

nd t ran

Trang 6

❒ các host = các gia đình

❒ giao th c transport = ứ Ann và Bill

❒ giao th c l p network = ứ ớ

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

Trang 7

Các giao th c l p transport trên ứ ớ

❒ không tin c y, truy n ậ ề

không theo th t : UDP ứ ự

application

transport

network data link physical

network data link physical

network data link physical

network data link physical

network data link physical network

data link physical

log ica

l en d-e

nd t ran

Trang 8

3.2 Multiplexing và

demultiplexing

Trang 9

link physical

application transport network link physical

Multiplexing t i host g i:ạ ử

Trang 10

❒ host dùng đ a ch IP & s port ị ỉ ố

đ đi u h ng đo n đ n ể ề ướ ạ ế

socket thích h pợ

32 bits

d li u ng d ngữ ệ ứ ụ(thông đi p)ệcác header fields khác

d ng th c đo n TCP/UDPạ ứ ạ

Trang 11

❒ Khi host nh n đo n UDP: ậ ạ

❍ ki m tra port đích trong ể

đo nạ

❍ đi u h ng đo n UDP đ n ề ướ ạ ếsocket nào phù h p v i s ợ ớ ốport đó

❒ IP datagrams v i đ a ch ớ ị ỉ

IP ngu n và/ho c s port ồ ặ ố khác nhau có th đ c ể ượ

đi u h ng đ n cùng ề ướ ế socket

Trang 12

serverIP: C

SP: 6428 DP: 9157

SP: 9157 DP: 6428

SP: 6428 DP: 5775

SP: 5775 DP: 6428

SP cung c p “đ a ch tr v ”ấ ị ỉ ở ề

Trang 13

k t n i t client ế ố ừ

❍ k t n i HTTP không b n ế ố ề

v ng s có socket khác ữ ẽnhau cho m i yêu c uỗ ầ

Trang 14

serverIP: C

SP: 9157 DP: 80

SP: 9157 DP: 80

D-IP:C

S-IP: A D-IP:C

S-IP: B

SP: 5775 DP: 80 D-IP:C S-IP: B

Trang 15

serverIP: C

SP: 9157 DP: 80

SP: 9157 DP: 80

D-IP:C

S-IP: A D-IP:C

S-IP: B

SP: 5775 DP: 80 D-IP:C S-IP: B

Trang 16

3.3 V n chuy n không k t n i: ậ ể ế ố

UDP

Trang 17

UDP: User Datagram Protocol [RFC 768]

Trang 18

❒ truy n tin c y trên UDP: ề ậ

thêm kh năng này t i l p ả ạ ớ

header

Trang 19

❒ đ t giá tr checksum vào ặ ị

tr ng UDP checksum ườ

bên nh n: ậ

❒ tính toán checksum c a đo n ủ ạ

đã nh nậ

❒ ki m tra giá tr trên có b ng ể ị ằ

v i giá tr trong tr ng ớ ị ườchecksum:

❍ NO – có l i x y raỗ ả

❍ YES – không có l i ỗ

❍ Nh ng có th còn l i khác ư ể ỗ

M c tiêu: ụ ki m tra các “l i” (các bit c đã b t lên) ể ỗ ờ ậ

trong các đo n đã truy n ạ ề

Trang 21

3.4 Các nguyên lý c a vi c ủ ệ

Trang 22

Các nguyên lý truy n d li u tin ề ữ ệ

c y ậ

❒ quan tr ng trong các l p application, transport, link ọ ớ

❒ là danh sách 10 v n đ quan tr ng nh t c a m ngấ ề ọ ấ ủ ạ

❒ các đ c thù c a kênh truy n không tin c y s xác đ nh s ph c ặ ủ ề ậ ẽ ị ự ứ

t p c a giao th c truy n d li u data transfer protocol (rdt) ạ ủ ứ ề ữ ệ

Trang 23

Các nguyên lý truy n d li u tin ề ữ ệ

c y ậ

❒ quan tr ng trong các l p application, transport, link ọ ớ

❒ là danh sách 10 v n đ quan tr ng nh t c a m ngấ ề ọ ấ ủ ạ

Trang 24

Các nguyên lý truy n d li u tin ề ữ ệ

c y ậ

❒ quan tr ng trong các l p application, transport, link ọ ớ

❒ là danh sách 10 v n đ quan tr ng nh t c a m ngấ ề ọ ấ ủ ạ

❒ các đ c thù c a kênh truy n không tin c y s xác đ nh s ặ ủ ề ậ ẽ ị ự

ph c t p c a giao th c truy n d li u data transfer protocol ứ ạ ủ ứ ề ữ ệ

Trang 26

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

S : ẽ

❒ ch xem xét truy n d li u theo 1 h ng duy ỉ ề ữ ệ ướ

nh t ấ

❍ nh ng đi u khi n lu ng thông tin s theo c 2 chi u!ư ề ể ồ ẽ ả ề

❒ dùng máy tr ng thái h u h n (finite state ạ ữ ạ

machines-FSM) đ xác đ nh bên g i, bên nh n ể ị ử ậ

Trang 27

Rdt1.0: truy n d li u tin c y trên 1 kênh truy n tin ề ữ ệ ậ ề

c y ậ

❒ kênh u tiên tin c y hoàn toàn ư ậ

❍ không có các l iỗ

❍ không m t mát các góiấ

❒ các FSM phân bi t cho bên g i, bên nh n: ệ ử ậ

❍ bên g i g i d li u vào kênh u tiênử ử ữ ệ ư

❍ bên nh n nh n d li u t kênh u tiênậ ậ ữ ệ ừ ư

chờ gọi

từ lớp dưới

rdt_rcv(packet)

Trang 28

❍ bên g i g i l i gói nào đ c xác nh n là NAKử ử ạ ượ ậ

các cơ chế mới trong rdt2.0 (sau rdt1.0):

❍ ki m tra l iể ỗ

❍ nh n ph n h i: các thông đi p đi u khi n (ACK,NAK) bên ậ ả ồ ệ ề ể

nh n ậ  bên g iử

Trang 29

chờ ACK hoặc NAK

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

bên g i ử

bên nh n ậ

rdt_send(data)

Λ

Trang 30

chờ ACK hoặc NAK

chờ gọi từ lớp dưới rdt_send(data)

Λ

Trang 31

chờ ACK hoặc NAK

chờ gọi từ lớp dưới rdt_send(data)

Λ

Trang 32

bên g i g i 1 gói, ử ửsau đó d ng l i ch ph n h iừ ạ ờ ả ồ

từ bên nhận

d ng và chừ ờ

Trang 33

Λ Λ

Trang 34

rdt2.1: bên g i qu n lý các ACK/NAK b ử ả ị

chờ

0 từ dưới

sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt)

rdt_rcv(rcvpkt) &&

not corrupt(rcvpkt) &&

has_seq0(rcvpkt)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

chờ

1 từ dưới

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt)

extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

rdt_rcv(rcvpkt) && (corrupt(rcvpkt)

sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

Trang 35

❍ tr ng thái ch rõ có hay ạ ỉkhông mong ch s th ờ ố ứ

Trang 37

rdt2.2: g i, nh n các m nh ử ậ ả

Chờ cho gọi 0 từ trên

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

g i phân m nhử ả

FSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

Trang 38

❒ truy n l i n u không nh n ề ạ ế ậACK trong kho ng th i gian ả ờnày

❒ n u gói (ho c ACK) ch tr ế ặ ỉ ễ(không m t):ấ

Trang 39

rdt3.0 g i ử

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

start_timer rdt_send(data)

Chờ cho ACK 0

rdt_rcv(rcvpkt) &&

( corrupt(rcvpkt) ||

isACK(rcvpkt,1) )

Chờ cho gọi 1

udt_send(sndpkt) start_timer

từ trên

Chờ cho ACK 1

Λ rdt_rcv(rcvpkt) Λ

Λ

Trang 40

hành đ ng c a rdt3.0 ộ ủ

Trang 41

hành đ ng c a rdt3.0 ộ ủ

Trang 42

L (đ dài gói tính b ng bits)ộ ằ

R (t c đ truy n, bps)ố ộ ề =

❍ gói 1KB m i 30 msec -> 33kB/s trên đ ng truy n 1 Gbpsỗ ườ ề

❍ giao th c network h n ch vi c dùng các tài nguyên v t lý!ứ ạ ế ệ ậ

Trang 43

rdt3.0: ho t đ ng d ng-và-ch ạ ộ ừ ờ

gói đầu tiên đã truyền, t = 0

RTT

gói cuối cùng đã truyền, t = L / R

gói đầu tiên đã đến gói cuối cùng đã đến, gửi ACK

ACK đến, gửi gói kế tiếp,

t = RTT + L / R

30.008 = 0.00027 microsec

L / R RTT + L / R =

Trang 44

Các giao th c Pipelined ứ

Pipelining: bên g i cho phép g i nhi u gói đ ng th i, ử ử ề ồ ờ

không c n ch báo nh n đ c ầ ờ ậ ượ

❍ nhóm các s th t ph i tăng d nố ứ ự ả ầ

❍ ph i có b nh đ m t i n i g i và/ho c n i nh nả ộ ớ ệ ạ ơ ử ặ ơ ậ

❒ hai d ng ph bi n c a các giao th c pipelined: ạ ổ ế ủ ứ

go-Back-N, L p có l a ch n ặ ự ọ

Trang 45

Đ kh d ng tăng lênộ ả ụ

g p 3 l n!ấ ầ

Trang 46

Bên g i: ử

❒ k-bit s th t trong header c a góiố ứ ự ủ

❒ “c a s ” tăng lên đ n N, cho phép g i các gói liên t c không c n ử ổ ế ử ụ ầACK

❒ ACK(n): ACKs t t c các gói đ n, ch a s th t n – “ACK tích lũy”ấ ả ế ứ ố ứ ự

❍ có th nh n các ACK trùng l p (xem bên nh n)ể ậ ặ ậ

❒ đ nh thì cho m i gói trên đ ng truy nị ỗ ườ ề

❒ timeout(n): g i l i gói n và t t c các gói có s th t cao h n ử ạ ấ ả ố ứ ự ơ

trong c a sử ổ

Trang 47

GBN: bên g i m r ng FSM ử ở ộ

chờ start_timerudt_send(sndpkt[base])

udt_send(sndpkt[base+1])

… udt_send(sndpkt[nextseqnum-1]) timeout

rdt_send(data)

if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum])

if (base == nextseqnum) start_timer

nextseqnum++

} else refuse_data(data)

base = getacknum(rcvpkt)+1

rdt_rcv(rcvpkt) &&

notcorrupt(rcvpkt)

base=1 nextseqnum=1

rdt_rcv(rcvpkt)

&& corrupt(rcvpkt)

Λ

Trang 48

deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt)

Trang 49

GBN

ho t đ ng ạ ộ

Trang 50

L p có l a ch n ặ ự ọ

❒ bên nh n thông báo đã nh n đúng t t c t ng gói ậ ậ ấ ả ừ

m t ộ

❍ đ m (buffer) các gói n u c n thi tệ ế ầ ế

❒ bên g i ch g i l i các gói nào không nh n đ c ử ỉ ử ạ ậ ượ

Trang 51

L p có l a ch n: các c a s g i, nh n ặ ự ọ ử ổ ử ậ

Trang 52

th t ), d ch chuy n c a s ứ ự ị ể ử ổ

đ n gói ch a nh n k ti pế ư ậ ế ếgói n trong [rcvbase-N,rcvbase- 1]

❒ ACK(n)

ng c l i: ượ ạ

❒ l điờ

Nh n ậ

Trang 53

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

Trang 55

3.5 V n chuy n h ng k t n i: ậ ể ướ ế ố

TCP

Trang 56

TCP: T ng quan ổ RFCs: 793, 1122, 1323, 2018, 2581

❒ d li u full duplex: ữ ệ

❍ lu ng d li u đi 2 chi u ồ ữ ệ ề trong cùng m t k t n i ộ ế ố

❍ MSS: maximum segment size – kích th c đo n t i ướ ạ ố đa

❒ h ng k t n i: ướ ế ố

❍ b t tay (trao đ i các ắ ổ thông đi p đi u khi n) ệ ề ể

tr ng thái bên g i, bên ạ ử

nh n tr c khi trao đ i ậ ướ ổ

d li u ữ ệ

❒ đi u khi n lu ng: ề ể ồ

❍ bên g i s không l n át ử ẽ ấ bên nh n ậ

Trang 57

TCP: c u trúc đo n ấ ạ

port # ngu nồ port # đích

32 bits

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

s th tố ứ ự

s ACKố

c a s nh n ử ổ ậ con tr URG ỏ checksum

F S R P A U

head len usednot

Tùy ch n (đ dài thay đ i)ọ ộ ổ

URG: d li u kh n c p ữ ệ ẩ ấ

(th ng không dùng) ườ

ACK: ACK #

h p l ợ ệ PSH: push data now

nh n ậ

đ m b i s byte ế ở ố

c a d li u ủ ữ ệ

Internet checksum (gi ng UDP) ố

Trang 58

‘C’, ph n h i ả ồ

ng c l i ‘C’ ượ ạ

time tình hu ng telnet đ n gi n ố ơ ả

Trang 59

TCP Round Trip Time vàTimeout

SampleRTT: th i gian đ c đo t ờ ượ ừkhi truy n đo n đ n khi báo nh n ề ạ ế ậACK

Trang 60

TCP Round Trip Time và Timeout

❒ giá tr đ c tr ng: ị ặ ư α = 0.125

Ngày đăng: 08/11/2013, 03:15

TỪ KHÓA LIÊN QUAN

w