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

Bài giảng mạng máy tính và internet chương 3 trần quang hải bằng

43 381 0

Đ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

Định dạng
Số trang 43
Dung lượng 1,05 MB

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

Nội dung

Giao thức tầng giao vận transport layer 5 Tạo phương thức truyền thông logic giữa các ứng Transport Protocols TCP Transmission Control Protocol reliable transport protocol tin cậy UDP

Trang 1

Chương 3.

Giao thức tầng giao vận (transport layer)

Trần Quang Hải Bằng Faculty of Information Technology University of Communication and Transport (Unit 2) Office location: Administration building, Block D3, Room 6 Office phone: 38962018

Cell phone: N/A Email: tqhbang@utc2.edu.vn

Trang 2

Chương 3 Giao thức tầng giao vận (transport layer) 3

06/02- 24/03/2012

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

7 Sử dụng TCP hay UDP

Transport Layer Services & Principles

thông logic (logical

tại các trạm cuối (end system).

application transport network data link physical

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 e

nd -e nd

tr an sp

or t

Trang 3

Chương 3 Giao thức tầng giao vận (transport layer) 5

 Tạo phương thức truyền

thông logic giữa các ứng

Transport Protocols

 TCP (Transmission Control Protocol)

 reliable transport protocol (tin cậy)

 UDP (User Datagram Protocol)

 unreliable transport protocol.

Trang 4

Chương 3 Giao thức tầng giao vận (transport layer) 7

06/02- 24/03/2012

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

M P2

application transport network

Trang 5

Chương 3 Giao thức tầng giao vận (transport layer) 9

06/02- 24/03/2012

Dồn và chia kênh thế nào?

 source port number: ứng

TCP/UDP segment format

Mux/demux: Ví dụ

host A source port: x dest port: 23 server B

source port:23 dest port: x

port use: simple telnet app

Web client host A

Web server B

Web client host C

Source IP: C Dest IP: B source port: x dest port: 80

Source IP: C Dest IP: B source port: y dest port: 80

port use: Web server

Source IP: A Dest IP: B source port: x dest port: 80

Trang 6

Chương 3 Giao thức tầng giao vận (transport layer) 11

06/02- 24/03/2012

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

7 Sử dụng TCP hay UDP

Connectionless Transport (UDP).

 chỉ cần những thủ tục cơ bản nhất.

 thông tin điều khiển cũng chỉ cần cơ bản nhất.

luôn “cố gắng hết sức” để giảm thiểu.

 Không có cơ chế bắt tay (handshaking): thiết lập  truyền dữ liệu  kết thúc.

 Không nắm giữ trạng thái.

 Các segments được xử lý độc lập với nhau.

Trang 7

Chương 3 Giao thức tầng giao vận (transport layer) 13

tra lỗi (phục vụ cho

cơ chế nhận biết lỗi

– error detection)

source port # dest port #

32 bits

Application data (message)

UDP segment format

length checksum

Length, in bytes of UDP segment, including header

UDP segment - example

Receiver’s MAC address

Sender’s MAC address

Type of upper layer’s protocol

( 0x0800 = IP )

Trang 8

Chương 3 Giao thức tầng giao vận (transport layer) 15

Trang 9

Chương 3 Giao thức tầng giao vận (transport layer) 17

06/02- 24/03/2012

UDP segment – example (cnt.)

Data of applicaton layer

UDP checksum

 Mã kiểm tra phục vụ cho cơ chế nhận biết lỗi.

 Sender:

số nguyên đó.

 Receiver:

Trang 10

Chương 3 Giao thức tầng giao vận (transport layer) 19

06/02- 24/03/2012

UDP checksum: example

với checksum: Kết quả là 1111 1111 1111 1111 thì không

có lỗi, nếu khác là có lỗi.

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

7 Sử dụng TCP hay UDP

Trang 11

Chương 3 Giao thức tầng giao vận (transport layer) 21

06/02- 24/03/2012

Principles of Reliable Data Transfer (RDT)

10 list of important networking topics).

RDT

send

side

receive side

rdt_send(): called from above,

(e.g., by app.) Passed data to

deliver to receiver upper layer

udt_send(): called by rdt,

to transfer packet over

unreliable channel to receiver

rdt_rcv(): called when packet arrives on rcv-side of channel

deliver_data(): called by

rdt to deliver data to upper

Trang 12

Chương 3 Giao thức tầng giao vận (transport layer) 23

“state” next state

uniquely determined

by next event

event actions

RDT1.0: reliable data transfer over reliable channel

 Tầng dưới:

 Sender gửi dữ liệu xuống tầng dưới.

 Receiver nhận dữ liệu gửi từ tầng dưới lên.

Wait for call from below

rdt_rcv(packet)

Trang 13

Chương 3 Giao thức tầng giao vận (transport layer) 25

06/02- 24/03/2012

RDT2.0: channel with bit errors

 UDP checksum có khả năng phát hiện lỗi bit.

 acknowledgements (ACKs): receiver thông báo đã nhận gói dữ

liệu tốt (không có lỗi).

 negative acknowledgements (NAKs): receiver thông báo gói dữ

liệu nhận được có lỗi.

 Nếu nhận được NAK, sender cần gửi lại gói tin bị lỗi.

 human scenarios using ACKs, NAKs? (telephone talking!)

Wait for call from below

sender

receiver

rdt_send(data)

Λ

Trang 14

Chương 3 Giao thức tầng giao vận (transport layer) 27

Wait for call from below

Wait for call from below rdt_send(data)

Λ

Trang 15

Chương 3 Giao thức tầng giao vận (transport layer) 29

06/02- 24/03/2012

RDT2.0: problems

 Sender không biết kết quả gửi gói tin thế nào.

 Cũng chẳng thể gửi lại gói tin vì có thể gây hiện tượng lặp gói tin.

 Sender truyền lại nếu như ACK/NAK bị lỗi.

 Kiểm soát lặp gói tin (duplicate handling)

 Thêm vào gói tin trường số thứ tự (sequence number).

 Căn cứ vào số thứ tự gói tin, receiver bỏ qua những gói tin bị lặp.

 Sender sẽ không gửi gói tin tiếp theo nếu như chưa chắc chắn receiver nhận được gói trước đó (stop and wait protocol).

RDT2.1: sender, handles garbled ACK/NAKs

Wait for call 0 from above

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

rdt_send(data)

Wait for ACK or

Wait for ACK or NAK 1

Λ Λ

Trang 16

Chương 3 Giao thức tầng giao vận (transport layer) 31

06/02- 24/03/2012

RDT2.1: receiver, handles garbled ACK/NAKs

Wait for

0 from below

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

Wait for

1 from below

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)

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

sender FSM fragment

Wait for

0 from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

&& has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data)

Λ

Trang 17

Chương 3 Giao thức tầng giao vận (transport layer) 33

gian nhất định nào đó mà không thấy (cần countdown timer).

 truyền lại sẽ gây ra hiện tượng lặp gói tin.

Wait for ACK0

rdt_rcv(rcvpkt) &&

( corrupt(rcvpkt) ||

isACK(rcvpkt,1) )

Wait for call 1 from above

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

start_timer rdt_send(data)

udt_send(sndpkt) start_timer timeout

Wait for ACK1

Λ rdt_rcv(rcvpkt)

Λ Λ

Λ

Trang 18

Chương 3 Giao thức tầng giao vận (transport layer) 35

06/02- 24/03/2012

RDT3.0 in action

RDT3.0 in action (cont)

Trang 19

Chương 3 Giao thức tầng giao vận (transport layer) 37

06/02- 24/03/2012

Hiệu suất của RDT3.0

 Giả sử có đường truyền giữa 2 host với các thông số sau:

 Bandwidth: 1 Gbps (109bits per second)

 Propagation delay: 15 ms

 Size of packet: 1KB

109 b/sec = 8 microsec

 U sender: utilization – fraction of time sender busy sending

 1KB trong 30msec -> 33KB/sec effective throught put over 1 Gbps link

 network protocol limits use of physical resources!

U sender =

.008 30.008 = 0.00027 microsec

L / R RTT + L / R =

L (packet length in bits)

R (transmission rate, bps) = T

RDT3.0 stop-and-wait operation

first packet bit transmitted, t = 0

RTT

first packet bit arrives

ACK arrives, send next

packet, t = RTT + L / R

U sender =

.008 30.008 = 0.00027 microsec

L / R RTT + L / R =

last packet bit transmitted, t = L / R

last packet bit arrives, send ACK

Trang 20

Chương 3 Giao thức tầng giao vận (transport layer) 39

06/02- 24/03/2012

Tăng hiệu suất đường truyền - Pipelined protocols

Pipelining: Gửi liên tục nhiều packets rồi đợi ACK

 Số thứ tự gói tin (sequence numbers) tăng đều và duy nhất

 Sử dụng bộ nhớ đệm tại Sender và Receiver

 go-Back-N

 Selective repeat

Tăng hiệu suất đường truyền - Pipelined protocols

first packet bit transmitted, t = 0

RTT

last bit transmitted, t = L / R

first packet bit arrives last packet bit arrives, send ACK

ACK arrives, send next

packet, t = RTT + L / R

last bit of 2ndpacket arrives, send ACK last bit of 3rdpacket arrives, send ACK

U sender =

.024 30.008 = 0.0008 microsecon

3 * L / R RTT + L / R =

Increase utilization

by a factor of 3!

Trang 21

Chương 3 Giao thức tầng giao vận (transport layer) 41

06/02- 24/03/2012

Go-Back-N

Sender:

 Sử dụng k-bit ở header để lưu sequence number

 Cửa sổ trượt cho phép chứa N packets chưa được báo ACK.

 Nếu nhận ACK(n): Mọi packet có số hiệu tới n-1 đã gửi thành công

 Cần giám sát thời gian timeout cho mỗi packet đang gửi đi (in-flight packet)

 timeout(n): Gửi lại packet n và các packet có seq # lớn hơn trong window

GBN in action

Trang 22

Chương 3 Giao thức tầng giao vận (transport layer) 43

06/02- 24/03/2012

udt_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

If (base == nextseqnum)stop_timer

else start_timer

rdt_rcv(rcvpkt) &&

notcorrupt(rcvpkt)

base=1 nextseqnum=1

rdt_rcv(rcvpkt)

&& corrupt(rcvpkt) Λ

GBN: sender extended FSM

GBN: receiver extended FSM

ACK-only: always send ACK for correctly-received pkt with highest

in-order seq #

 may generate duplicate ACKs

 need only remember expectedseqnum

 out-of-order pkt:

 discard (don’t buffer) -> no receiver buffering!

 Re-ACK pkt with highest in-order seq #

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

Trang 23

Chương 3 Giao thức tầng giao vận (transport layer) 45

06/02- 24/03/2012

Selective Repeat (SR)

 Receiver gửi ACK cho từng packet tới đích

lên layer phía trên

 Sender gửi lại những packet không nhận được

ACK sau khoảng timeout

được ACK)

 Sender window

Selective repeat: sender, receiver windows

Trang 24

Chương 3 Giao thức tầng giao vận (transport layer) 47

06/02- 24/03/2012

data from above :

 if next available seq # in

advance window base to

next unACKed seq #

Trang 25

Chương 3 Giao thức tầng giao vận (transport layer) 49

 incorrectly passes duplicate

data as new in (a)

Q: what relationship between seq

# size and window size?

Yes, windows size= (total number /2)

0,1,2,3 => widwowsize=4/2=2

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

7 Sử dụng TCP hay UDP

Trang 26

Chương 3 Giao thức tầng giao vận (transport layer) 51

06/02- 24/03/2012

TCP Overview

 Transmission Control Protocol [RFCs: 793,1122,

1323, 2018, 2581]

 Point-to-point: 1 sender, 1 receiver.

 Giao thức tin cậy (reliable).

 Kiểm soát luồng (flow control).

 Kiểm soát nghẽn mạng (congestion control).

 full duplex: Gửi & Nhận trên cùng một liên kết.

 send/receive buffers socket

door

TCPsend buffer

TCPreceive buffer

socketdoor

segment

applicationwrites data

applicationreads data

TCP segment structure

source port # dest port #

32 bits

application data (variable length)

sequence number acknowledgement number

rcvr window size ptr urgent data checksum

F S R P A U

head len

not used

Options (variable length)

URG: urgent data

(generally not used)

to accept

counting

by bytes

of data (not segments!)

Internet checksum

(as in UDP)

Header length

(by 32-bit word)

Trang 27

Chương 3 Giao thức tầng giao vận (transport layer) 53

 seq # of next byte

expected from other

‘C’

host ACKs receipt

of echoed

‘C’

host ACKs receipt of

‘C’, echoes back ‘C’

time simple telnet scenario

TCP segment – example (cnt.)

Receiver’s MAC address

Sender’s MAC address

Type of network layer’s protocol

( 0x0800 = IP )

Trang 28

Chương 3 Giao thức tầng giao vận (transport layer) 55

Trang 29

Chương 3 Giao thức tầng giao vận (transport layer) 57

Trang 30

Chương 3 Giao thức tầng giao vận (transport layer) 59

 Flow control: kiểm soát không để cho receiver buffer bị tràn vì

sender gửi nhiều gói tin quá.

 Receiver: Thông báo cho sender biết kích thước của RcvWidow

(free buffer): trường rcv window size trong TCP segment headers.

 Sender: Luôn nắm được kích thước tối đa của gói tin có thể truyền tiếp.

Trang 31

Chương 3 Giao thức tầng giao vận (transport layer) 61

Three way handshaking:

SYN control segment tới

server.

segment rồi trả lời bằng SYNACK segment.

SYNACK segment và trả lời bằng ACK segment (có

thể có dữ liệu đi kèm).

Trang 32

Chương 3 Giao thức tầng giao vận (transport layer) 63

06/02- 24/03/2012

TCP Connection management: ngắt liên kết

ngắt liên kết) gửi TCP FIN

segment.

lại) nhận được FIN, gửi

ACK, ngắt liên kết, gửi

tiếp FIN segment.

trả lời bằng ACK timed

wait (chờ một lúc nữa cho

tới khi liên kết đóng hẳn).

TCP client lifecycle TCP server lifecycle

TCP Connection management (cont.)

Trang 33

Chương 3 Giao thức tầng giao vận (transport layer) 65

06/02- 24/03/2012

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

 End-end congestion control: Thông tin về mức độ nghẽn mạng được suy ra từ lượng tin bị mất mát trong quá trình truyền.

 Network-assited congestion control: Routers cung cấp các thông tin phản hồi về tình trạng nghẽn mạng tới end systems.

 Bit thông báo nghẽn mạng  đừng gửi nữa hoăc xin chờ một lát.

 Tốc độ tối đa cho phép gửi (maximum rate allowed).

Trang 34

Chương 3 Giao thức tầng giao vận (transport layer) 67

unlimited shared output link buffers

Host A

λ

in : original data Host B

λ

out

Causes/costs of congestion: scenario 2

finite shared output

Trang 35

Chương 3 Giao thức tầng giao vận (transport layer) 69

06/02- 24/03/2012

 always: (goodput)

 “perfect” retransmission only when loss:

 retransmission of delayed (not lost) packet makes larger (than perfect case) for same

 more work (retrans) for given “goodput”

 unneeded retransmissions: link carries multiple copies of pkt

Causes/costs of congestion: scenario 2

Causes/costs of congestion: scenario 3

Trang 36

Chương 3 Giao thức tầng giao vận (transport layer) 71

06/02- 24/03/2012

Causes/costs of congestion: scenario 3

Another “cost” of congestion:

 Khi thực hiện drop các packet trên đường truyền  dung lượng đường truyền đã sử dụng để gửi tin tới điểm bị drop là vô ích.

H o s

t A

H o s

t B

λ

o u t

TCP Congestion Control

 end-end control (no network assistance)

 Sender điều khiển lượng dữ liệu gửi đi theo

quy tắc:

LastByteSent-LastByteAcked

min {CongWin, ReceiverWnd}

 Công thức xấp xỉ:

 Giá trị CongWin luôn biến đổi và được

tính toán theo khả năng truyền tải của

Ngày đăng: 04/12/2015, 07:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm