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

04 transport layer

69 2 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

Tiêu đề Tầng vận chuyển
Trường học Đại học Khoa học tự nhiên
Chuyên ngành Công nghệ thông tin
Thể loại Bài
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 2,41 MB

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

Nội dung

Chức năng - 1mức logic giữa 2 tiến trình trên 2 Presentation Session Data link Physical Network Transport network data link physical network data link physical network data link physica

Trang 1

Bài 05 Tầng vận chuyển

MẠNG MÁY TÍNH

Trang 2

Chức năng - 1

mức logic giữa 2 tiến trình trên 2

Presentation Session

Data link Physical

Network Transport

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 -en

d tr an sp

application transport network data link physical

application

transport

network data link physical

Trang 4

Nhắc lại

source

application transport network link physical

Trang 5

tầng vận chuyển - 1

application transport network

M P4

application transport network

Hn segment

application transport network

P1M

DD

Trang 6

tầng vận chuyển - 2

 Thực thi ở end-system

 Bên gởi: thực hiện Dồn kênh

 Bên nhận: thực hiện Phân kênh

Trang 7

tầng vận chuyển - 3

Trang 8

Dồn kênh – Phân kênh - 1

 Dồn kênh (Multiplexing):

 Phân kênh (Demultiplexing):

 Thực hiện tại bên nhận

 Khi đóng gói dữ liệu ở tầng transport, header sẽ

thêm vào:

Trang 9

Dồn kênh – Phân kênh - 2

source port # dest port #

32 bits

application data

(message) other header fields

Cấu trúc của một segment

Trang 10

SP: 6428 DP: 5775

SP: 5775 DP: 6428

Trang 13

UDP - 2

source port # dest port #

32 bits

Application data (message)

UDP segment format

length checksum

Chiều dài gói tin (tính cả header)

Trang 14

Các segment đến không đúng thứ tự???

Trang 15

UDP - 4

Trang 18

Bài toán

Lỗi bit???

Mất gói???

Làm sao để truyền đáng tin cậy???

Trang 19

Nguyên lý truyền dữ liệu đáng tin cậy

Đặc tính của đường truyền không tin cậy quyết định độ

phức tạp của nghi thức truyền tin cậy

Đường truyền tin cậy

Nghi thức truyền tin cậy

Đường truyền không tin cậy

Trang 21

Giải quyết lỗi bit

Trang 22

Giải quyết mất gói

Trang 23

Giao thức RDT

 RDT = Reliable Data Transfer

• Gởi gói tin kèm theo thông tin kiểm tra lỗi

Dừng và chờ đến khi nào gói tin vừa gởi đến được bên nhận an toàn: nhận được gói tin ACK

• Gởi lại khi có lỗi xảy ra: lỗi bit, mất gói

• Kiểm tra lỗi, trùng lắp dữ liệu

• Gởi gói tin phản hồi

 Phiên bản:

Trang 24

Nguyên lý pipe line

 Cho phép gởi nhiều gói tin khi chưa nhận ACK

 Sử dụng buffer để lưu các gói tin

Trang 25

Rdt1.0 : đường truyền lý tưởng

Wait for

call from

make_pkt(data) udt_send(packet)

rdt_send(data)

extract (packet,data) deliver_data(data)

Wait for call from below

rdt_rcv(packet)

Trang 26

Rdt2.0 kênh truyền có lỗi bit - 1

 Giả thiết: kênh truyền có thể xảy ra lỗi bit

 Acknowledgement(ACKs): bên nhận báo cho bên gửi đã nhận được dữ liệu

 Nagetive acknowledgement(NAKs): bên nhận báo gói tin

bị lỗi

So với rdt1.0, rdt2.0:

Trang 27

Wait for call from below

Trang 28

Rdt2.0 - 3

 Bên gửi đánh số thứ tự cho mỗi gói tin

 Bên nhận sẽ loại bỏ gói tin trùng.

 Bên gửi gửi một gói tin và chờ phản hồi từ bên nhận

Trang 29

Rdt2.1 bên gửi xử lí lỗi ACK/NAK

Wait for call 0 from above

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

rdt_send(data)

Wait for ACK or NAK 0 udt_send(sndpkt)

Wait for ACK or NAK 1

L L

Trang 30

Rdt2.1 bên nhận xử lí lỗi ACK/NAK

Wait for

0 from below

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

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 31

ACK/NAK cuối cùng

có chuyển tới bên gửi

an toàn không?

Trang 32

Cơ chế truyền đáng tin cậy - RDT

Trang 33

Rdt2.2 không sử dụng NAK

cùng.

 gửi lại gói vừa gởi vì gói này chưa nhận được ACK

Trang 34

Rdt2.2: bên gửi và bên nhận

Wait for call

0 from above

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

Wait for

1 from below

L

Trang 35

Rdt3.0 kênh truyền có lỗi và mất - 1

• Nếu gói tin (hay ACK) bị trễ (không mất)

– Gửi lại có thể trùng, phải đánh

số thứ tự – Bên nhận phải xác định thứ tự của gói tin đã ACK

• Yêu cầu đếm thời gian

Trang 36

Rdt3.0 bên gửi - 2

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

start_timer rdt_send(data)

Wait for ACK0

rdt_rcv(rcvpkt) &&

( corrupt(rcvpkt) ||

isACK(rcvpkt,1) )

Wait for call 1 from above

udt_send(sndpkt) start_timer

Wait for ACK1

L

rdt_rcv(rcvpkt)

L

Trang 37

Rdt3.0 - 3

Trang 38

Rdt3.0 - 4

Trang 39

Rdt3.0 dừng và đợi - 5

Trang 40

Rdt3.0 – Hiệu quả - 6

Trang 41

Nghi thức pipeline - 1

được báo nhận (ACK)

go-Back-N

Trang 42

Nghi thức pipeline - 2

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

Trang 44

Go-Back-N: bên nhận - 2

nhận được ACK

• Có thể phát sinh trùng ACK

Trang 45

Go-Back-N – ví dụ - 3

Trang 46

Gửi lại có chọn - 1

• ACK(seq#): đã nhận đúng gói tin seq#

• Đưa vào bộ đệm nếu còn chỗ

• Hủy gói tin

Trang 47

Chưa dùng không dùng đc

Sai thứ tự nhưng đã ACK Đang đợi, chưa nhận đc

Có thể nhận đc không dùng đc

Trang 48

Gửi lại có chọn - 4

Trang 53

TCP - giới thiệu - 2

 TCP = Transport Control Protocol

 TCP cung cấp kết nối theo kiểu dòng ( stream-of-bytes )

• Không có ranh giới giữa các gói tin

TCP send buffer

TCP receive buffer

socket door

segment

application writes data applicationreads data

Trang 54

TCP – cấu trúc gói tin

source port # dest port #

32 bits

application data

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)

ACK: ACK # valid

PSH: push data now

(generally not used)

to accept

Trang 55

TCP – định nghĩa các trường - 1

 Source & destination port

Trang 57

host ACKs receipt

of echoed

‘C’

host ACKs receipt of

‘C’, echoes back ‘C’

simple telnet scenario

Seq: số thứ tự của byte

đầu tiên trong vùng data

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

chờ nhận tiếp theo

Trang 58

TCP – TRUYỀN DỮ LIỆU ĐÁNG TIN CẬY

Trang 59

TCP – bên gởi

Trang 60

TCP – bên nhận

Trang 61

= 100

Trang 64

TCP – quản lý kết nối

TCP client

lifecycle

TCP server lifecycle

Trang 65

TCP - Điều khiển luồng - 1

nhiều dữ liệu hoặc gởi quá nhanh

Trang 66

TCP - Điều khiển luồng - 2

2K SEQ=0

Gửi

Ứng dụng gửi 2K

Trang 67

Host A

lin : original data

Host B

lout

Trang 69

Tài liệu tham khảo

Computer Networking: A Top Down Approach

Ngày đăng: 11/04/2023, 09:46