1. Trang chủ
  2. » Cao đẳng - Đại học

tầng truyền tải trong mạng máy tính

69 998 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 69
Dung lượng 2,17 MB

Nội dung

Giao thức và dịch vụ truyền tải giữa các tiến trình ứng dụng trên những máy khác nhau máy đầu cuối segment, đẩy xuống tầng mạng thông điệp hoàn chỉnh, đẩy lên tầng ứng dụng ứng dụng tru

Trang 1

Trường Đại Học Điện Lực Khoa Công Nghệ Thông Tin Advanced Computer Network

Trang 2

Bài giảng 3: Tầng truyền tải

Tham khảo:

Chương 3: “Computer Networking – A top-down approach” Kurose & Ross, 6th ed., Addison Wesley, 2012

Trang 3

Chương 3: Tầng truyền tải

đằng sau các dịch vụ của tầng truyền tải:

TCP

Trang 5

Giao thức và dịch vụ truyền tải

giữa các tiến trình ứng dụng trên

những máy khác nhau

máy đầu cuối

(segment), đẩy xuống tầng mạng

thông điệp hoàn chỉnh, đẩy lên tầng ứng dụng

ứng dụng

truyền tải

mạng liên kết dl vật lý

ứng dụng

truyền tải

mạng liên kết dl vật lý

Trang 6

Tầng truyền tải & Tầng mạng

lạc luận lý giữa các tiến

tầng mạng đồng thời củng cố chúng

Ví dụ tương đồng – chủ gia đình:

12 đứa trẻ nhà A gửi thư cho 12 đứa nhà B

n   tiến trình = đứa trẻ

n   thông điệp ứ/d = thư trong phong bì

n   giao thức truyền tải =

A và B, phân phối thư

vụ bưu điện

Trang 7

Các giao thức tầng truyền tải trong Internet

n   truyền tải tin cậy, có trật tự

mạng liên kết dl vật lý

mạng liên kết dl vật lý

mạng liên kết dl vật lý

mạng liên kết dl vật lý

mạng liên kết dl vật lý

mạng liên kết dl vật lý

ứng dụng

truyền tải

mạng liên kết dl vật lý

Trang 9

Dồn/tách (Multiplexing/demultiplexing)

process socket

sử dụng header để gửi segment tới đúng socket

Tách tại máy nhận:

lấy data từ nhiều socket khác

nhau, thêm header tầng

truyền tải

dồn tại máy gửi :

transport application

physical link network

P2 P1

transport application

physical link network

P4

truyền tải ứng dụng

vật lý liên kết mạng

P3

Trang 10

Phương pháp tách làm việc ntn?

n   máy nhận gói tin IP

nguồn, địa chỉ IP đích

dữ liệu tầng truyền tải

nhận (đích) và máy gửi (nguồn)

Trang 11

Sự tách không kết nối (connectionless)

Trang 12

Sự tách không kết nối (tt)

DatagramSocket serverSocket = new DatagramSocket(6428);

khách IP:B

P2

khách

IP: A

P1 P3

chủ IP: C

SP: 6428 DP: 9157

SP: 9157 DP: 6428

SP: 6428 DP: 5775

SP: 5775 DP: 6428

Trang 13

Sự tách hướng kết nối (connection oriented)

trên để định hướng đoạn

dữ liệu tới đúng Socket phù

hợp

đồng thời nhiều socket TCP:

bởi 4 nhân tố của nó

socket khác nhau cho mỗi khách kết nối tới

một socket riêng biệt cho mỗi người dùng

Trang 14

Sự tách hướng kết nối (tt)

transport application

physical link network

P3

transport application

physical link

P4

transport application

physical link network

P2

source IP,port: A,9157 dest IP, port: B,80

source IP,port: B,80 dest IP,port: A,9157

host: IP

address A

host: IP address C

source IP,port: C,9157 dest IP,port: B,80

3 segments, đều hướng tới địa chỉ IP : B,

server: IP address B

Trang 15

Sự tách hướng kết nối (tt)

transport application

physical link network

P3

transport application

physical link

transport application

physical link network

P2

source IP,port: A,9157 dest IP, port: B,80

source IP,port: B,80 dest IP,port: A,9157

host: IP

address A

host: IP address C

server: IP address B

network

P3

source IP,port: C,5775 dest IP,port: B,80

source IP,port: C,9157 dest IP,port: B,80

P4

threaded server

Trang 16

Chương 3: Mục lục

tải

không kết nối: UDP

nối : TCP

Trang 17

UDP: User Datagram Protocol [RFC 768]

“không phức tạp”, “giản thiểu”

UDP có thể:

ứng dụng n   không-kết-nối:

gửi và người nhận UDP

lập với những đoạn khác

các ứng dụng đa phương tiện trực tuyến

UDP: bổ sung tính tin cậy

ở tầng ứng dụng

Trang 18

UDP (tt)

Tại sao cần có UDP?

độ trễ)

trạng thái kết nối ở người gửi và người nhận

kiệm dung lượng)

nghẽn: UDP có thể truyền đi với tốc độ tối đa

32 bits

Dữ liệu tầng ứng dụng (thông điệp)

Trang 19

Tổng kiểm tra UDP (checksum)

Người gửi:

như là một chuỗi gồm những số nguyên 16-bit

(tổng bù 1) toàn bộ nội dung của đoạn từng 16-bit

kiểm tra vào trường “tổng kiểm tra - checksum” UDP

Người nhận:

nhận được

bằng giá trị trong trường TKT ko:

nhưng vẫn có thể có lỗi

được truyền tải

Trang 20

Ví dụ TKT Internet

n   Ghi chú

nhất cần phải được cộng dồn vào kết quả

Trang 21

Chương 3: Mục lục

tải

không kết nối: UDP

nối : TCP

Trang 22

TCP: Tổng quát RFCs: 793, 1122, 1323, 2018, 2581

n   dữ liệu song công (full-duplex):

n   dữ liệu di chuyển theo 2 hướng trong cùng một kết nối

n   MSS: kích thước đoạn tối đa

n   định hướng kết nối:

n   bắt tay (trao đổi các th/đ điều khiển) khởi tạo trạng thái của ng/gửi, ng/nhận trước khi trao đổi dữ liệu

n   lưu lượng đc kiểm tra:

n   n/ gửi sẽ không làm tràn người nhận

n   point-to-point:

n   1 n/gửi, 1 n/nhận

n   luồng byte tin cậy, theo thứ tự

n   giao thức đường ống:

n   kiểm tra tắc nghẽn TCP và lưu

lượng q/đ kích thước cửa sổ

application writes data

application reads data

Trang 23

Cấu trúc đoạn TCP

32 bits

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

số thứ tự

số xác nhận

cửa sổ nhận Urg data pnter tổng kiểm tra

F S R P A U

độ dài m.đầuko dùng

phần phụ (độ dài thay đổi)

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

(hầu như ko sử dụng)

ACK: ACK #

valid PSH: đẩy dữ liệu

(hầu như ko sử dụng)

RST, SYN, FIN:

khởi tạo K/N (thiết lập, kết thúc)

số byte ng/nhận sẵn sàng nhận

tính theo byte dữ liệu (không theo số đoạn!)

tổng kiểm tra

Internet (như trong UDP)

Trang 24

theo mà host mong muống nhận được

máy B xác nhận việc nhận ‘C’, gửi lại ‘C’

Trang 25

Thời gian xoay vòng và thời gian chờ TCP

Hỏi: thiết lập giá trị thời gian

chờ TCP như thế nào?

n   nhưng RTT thay đổi

tin phản hồi chưa kịp quay về

lại

mất đoạn

n   SampleRTT: đo thời gian từ khi truyền gói tin đi và nhận được ACK

n   SampleRTT sẽ thay đổi, muốn

RTT đo được “mướt hơn”

những lần đo gần nhất, không chỉ giá trị hiện thời

của SampleRTT

Trang 26

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100 150 200 250 300 350

Thời gian xoay vòng và thời gian chờ

EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT

Trang 27

Thời gian xoay vòng và thời gian chờ

Thiết lập t/g chờ

n   EstimtedRTT + “biên an toàn”

n   DevRTT: độ biến thiên của sampleRTT so với EstimatedRTT

n   EstimatedRTT thay đổi với biên độ lớn -> biên an toàn lớn

TimeoutInterval = EstimatedRTT + 4*DevRTT

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

(thông thường, β = 0.25)

sau đó thiết lập khoảng t/g chờ:

Trang 28

n  truyền tải dự liệu tin cậy

Trang 29

Truyền tải dữ liệu tin cậy TCP

thời gian cho truyền tải lại

n   Truyền tải lại được kích hoạt bởi:

Trang 30

Các sự kiện phía người gửi TCP:

nhận dữ liệu từ ứ/d:

n   STT là số thứ tự trên

luồng-byte của byte dữ liệu

đầu tiên trong đoạn

nó chưa chạy

chưa ACK lâu nhất)

đoạn trước đó chưa được ACK

đã được ACK

có các đoạn chưa ACK

Trang 31

người gửi TCP

(đơn giản hóa)

NextSeqNum = InitialSeqNum

SendBase = InitialSeqNum

loop (forever) {

switch(event)

event: nhận được dữ liệu từ ứng dụng tầng trên

tạo ra đoạn TCP với STT NextSeqNum

if (bđtg không chạy)

khởi chạy bđtg

đẩy đoạn xuống IP

NextSeqNum = NextSeqNum + length(data)

Trang 32

TCP: các kịch bản truyền tải lại

Host B Host A

Seq=92, 8 bytes of data

Seq=92, 8 bytes of data

ACK=100

Seq=92, 8 bytes of data

SendBase=120 SendBase=92

Trang 33

TCP: các kịch bản truyền tải lại (tt)

X

ACK cộng dồn

Host B Host A

Seq=92, 8 bytes of data

Trang 34

Tạo ACK trong TCP [RFC 1122, RFC 2581]

Sự kiện tại ng/nhận

Sự đến của đoạn đúng thứ tự với

STT hợp lí Tất cả dữ liệu từ

STT về trước đã được ACK

Sự đến của đoạn đúng thứ tự với

STT hợp lí Một đoạn khác đang

chờ được ACK

Sự đến của đoạn sai-thứ-tự với

STT cao hơn STT mong đợi

Phát hiện ra sự thiếu hụt

Sự đến của đoạn mà khỏa lấp

sự thiếu hụt một phần hoặc toàn

Hành vi của ng/ nhận TCP

Trì hoãn việc ACK Chờ đoạn tiếp theo trong 500ms Nếu không có đoạn nào tiếp theo, gửi ACK

Ngay lập tức gửi một ACK cộng dồn, xác nhận cả hai đoạn dữ liệu đúng thứ tự

Ngay lập tức gửi một ACK lặp , chỉ rõ STT của byte mong đợi tiếp theo Ngay lập tức gửi ACK cộng dồn

Trang 35

Truyền lại nhanh

tương đối dài:

gửi lại gói bị mất

n  truyền lại nhanh: gửi lại đoạn dữ liệu trước khi bộ đếm thời gian hết hạn

Trang 36

Host B Host A

Seq=92, 8 bytes of data

Seq=100, 20 bytes of data

Truyền lại nhanh

Trang 37

sự kiện: nhận được ACK, với trường ACK có giá trị y

if (y > SendBase) { SendBase = y

if (không có đoạn nào chưa được ACK) khởi động bộ đếm thời gian

} else { tăng bộ đếm số ACK cho y trùng

if (số ACK trùng = 3) { gửi lại đoạn với STT y }

Trang 38

n  kiểm soát lưu lượng

Trang 39

Kiểm soát lưu lượng trong TCP

TCP có một bộ nhớ đệm nhận:

độ: điều chỉnh tốc độ gửi sao cho phù hợp với tốc độ đọc của tiến

trình nhận n   tiến trình ứ/d có thể

Trang 42

Quản lý kết nối TCP

thiết lập “kết nối” trước khi trao

đổi các đoạn dữ liệu

n  STT

RcvWindow)

Socket clientSocket = new

Trang 43

Bắt tay 3 bước: Ví dụ

Trang 44

FIN_WAIT_2

CLOSE_WAIT

FINbit=1, seq=y ACKbit=1; ACKnum=y+1

ACKbit=1; ACKnum=x+1

chờ server đóng

TCP: đóng kết nối

FIN_WAIT_1 không gửi dữ FINbit=1, seq=x

liệu, có thể nhận clientSocket.close()

ESTAB ESTAB

Trang 45

Quản lý kết nối TCP (tt)

chu kì sống của

khách TCP

chu kì sống của chủ TCP

Trang 47

Các nguyên tác kiểm soát tắc nghẽn

Tắc nghẽn:

nhiều dữ liệu quá nhanh để mạng có thể xử lý”

Trang 48

Nguyên nhân/thiệt hại : kịch bản 1

nhận

tạm không giới hạn

Trang 49

n   một router, bộ nhớ giới hạn

n   gửi lại dữ liệu khi bị mất

Trang 50

A

Trang 51

trường hợp lý tưởng: nhận biết mất

router

biết được mất gói tin Nguyên nhân/thiệt hại : kịch bản 2

A

Host B

Trang 52

λin: original data

λout

λ'in: original data, plus

retransmitted data

free buffer space!

Nguyên nhân/thiệt hại : kịch bản 2

trường hợp lý tưởng: nhận biết mất

router

biết được mất gói tin

Trang 53

copy, cả hai đều đến

Trang 54

copy, cả hai đều đến

“thiệt hại” của tắc nghẽn:

n   phải truyền lại khi mà gói tin bị loại do tràn bộ nhớ tạm tại bđt

n   sự truyền tải lại ko cần thiết: đường kết nối chứa nhiều bản sao của gói tin

Trang 55

nguyên nhân/thiệt hại: kịch bản 3

Trang 56

nguyên nhân/thiệt hại: kịch bản 3

truyền tải nó tới điểm mà nó bị loại bỏ là phí phạm!

H o

st A

H o

st B

λ

o u t

Trang 57

Các phương án tiếp cận đối với kiểm soát tắc nghẽn

kiểm soát tắc nghẽn

đầu cuối-đầu cuối:

không tường minh

nếu máy đầu cuối phát hiện có

mất gói, trễ

kiểm soát tắc nghẽn được hỗ trợ từ mạng:

cho máy đầu cuối

(SNA, DECbit, TCP/IP ECN, ATM)

nên dùng

Hai phương án tiếp cận:

Trang 58

Ví dụ nghiên cứu: kiểm soát tắc nghẽn ATM ABR

ABR: tốc độ bit cho phép:

thiểu được đảm bảo

ô RM (quản lý tài nguyên – resource management) :

ô dữ liệu

lập bởi các switch (“được hỗ trợ

từ mạng”)

n  NI bit: ko tăng tốc (tắc nghẽn nhẹ)

n  CI bit: biểu hiện tắc nghẽn (nặng)

gửi bởi ng/nhận mà ko có thay

Trang 59

Ví dụ nghiên cứu: kiểm soát tắc nghẽn ATM ABR

trên đường đi từ nguồn-tới-đích

trong ô RM rồi gửi lại

Trang 61

KSTN TCP: tăng hệ số cộng, giảm hệ số nhân

8 Kbytes

16 Kbytes

24 Kbytes

congestion window

sổ), thử băng thông khả dụng, tới khi xuất hiện mất gói

khi phát hiện mất gói

Trang 63

TCP Bắt đầu chậm

vận tốc theo hệ số mũ đến

khi xuất hiện mất gói :

CongWin cho mỗi ACK nhận

được

chậm nhưng tăng lên

Trang 64

TCP : nhận biết, phản ứng mất gói

trùng:

n  CongWin giảm ½

chờ”:

n  CongWin = 1 MSS;

cùng trước khi mất gói, sau

đó tăng tuyến tính

n   3 ACK lặp nghĩa là mạng có khả năng phân phối vài đoạn dữ liệu n   “hết t/g chờ” cho biết tình hình tắc nghẽn đáng báo động hơn

Triết lí:

Trang 65

TCP: chuyển từ bắt đầu chậm sang tránh tắc nghẽn

chuyển từ tăng hàm

mũ sang tăng tuyến

tính?

được ½ giá trị của

nó trước khi xảy ra

“hết t/g chờ”

Hiện thực:

bằng ½ của CongWin ngay trước khi

xảy ra mất gói

Trang 66

Tóm tắt: KSTN TCP

CongWin gán bằng ssthresh +3*MSS

CongWin gán bằng 1 MSS.

Trang 67

Tóm tắt: KSTN TCP

timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0

retransmit missing segment

Λ

cwnd > ssthresh

congestion avoidance

cwnd = cwnd + MSS (MSS/cwnd) dupACKcount = 0

transmit new segment(s), as allowed

duplicate ACK

ssthresh= cwnd/2 cwnd = ssthresh + 3

retransmit missing segment

dupACKcount == 3

timeout ssthresh = cwnd/2 cwnd = 1

dupACKcount = 0

retransmit missing segment

ssthresh= cwnd/2 cwnd = ssthresh + 3

retransmit missing segment

dupACKcount == 3 cwnd = ssthresh

dupACKcount = 0 New ACK

slow start

timeout ssthresh = cwnd/2

cwnd = 1 MSS

dupACKcount = 0

retransmit missing segment

cwnd = cwnd+MSS dupACKcount = 0

transmit new segment(s), as allowed

new ACK dupACKcount++

duplicate ACK

Λ cwnd = 1 MSS

ssthresh = 64 KB

dupACKcount = 0

New ACK!

New ACK!

New ACK!

Trang 68

Thông lượng trong TCP

thước cửa sổ và RTT là bao nhiêu?

xuống W/2RTT; và tiếp tục tăng đến W/RTT

Thông lượng trung bình:

Trang 69

Chương 3: Tổng kết

dịch vụ tầng truyền tải:

n   đi vào “hạt nhân”

mạng

Ngày đăng: 05/07/2015, 21:43

TỪ KHÓA LIÊN QUAN

w