Chương 3 lớp truyền tải

54 205 0
Chương 3  lớp truyền tải

Đ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

Chapter LỚP TRUYỀN TẢI Nguyễn Hồng Sơn Chương 3-Lớp truyền tải 3-1 TỔNG QUAN ❒ Các nguyên lý ❒ Giao thức truyền tải UDP dịch vụ lớp truyền tải: ❍ ❍ ❍ ❍ Ghép/tách kênh (multiplexing/demulti plexing) Truyền số liệu tin cậy Điều khiển luồng (flow control) Kiểm soát nghẽn (congestion control) Chương 3-Lớp truyền tải 3-2 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3-Lớp truyền tải 3-3 VAI TRO LỚP TRUYÊN TAI Application (HTTP, SMTP, FTP ) Hô trợ cac ứng dung truyên thông Transport (UDP, TCP ) Cung câp chê truyên tai data cac ứng dung ma không phu thuôc mang Network (IP, ICMP ) Tim đường va chuyên tiêp goi tin cac nut mang Data Link (Ethernet, ADSL ) Physical Truyên data qua môt liên kêt hai điêm nôi trực tiêp Truyên va nhân cac tin hiêu mang thông tin bit đường truyên vât ly Chương 3-Lớp truyền tải 3-4 Giao thức dịch vụ truyền tải ❒ Thực giao tiếp logic u Tr n yề it tả u đầ ối cu n đế u đầ ối cu trình ứng dụng chạy host khác ❒ Các giao thức truyền tải chạy đầu cuối ❍ Bên truyền: chia data thành phân đoạn (segment) chuyển xuống lớp mạng ❍ Bên nhận: tái lập segment thành data chuyển cho lớp ứng dụng ❒ Có nhiều giao thức truyền tải ❍ Internet: TCP UDP application transport network data link physical application transport network data link physical Chương 3-Lớp truyền tải 3-5 Các giao thức lớp truyền tải Internet ❒ Chuyển phát theo thứ tự, tin cậy (TCP) n đế ối cu network data link physicalnetwork u đầ data link physical network data link physical ối cu ❍ u đầ ❍ network data link physical từ thứ tự, không tin cậy (UDP) ❒ Các dịch vụ không hỗ trợ: i tả ❒ Chuyển phát không theo n ❍ network data link physical ề uy ❍ Kiểm soát nghẽn Điều khiển luồng Thiết lập kết nối Tr ❍ application transport network data link physical network data link physical application transport network data link physical Kiểm soát trễ Đảm bảo băng thông Chương 3-Lớp truyền tải 3-6 Ly co hai chê đô truyên tai ❒ Cac ứng dung la đa dang: co loai cân đô chinh xac cao, co loai cân nhanh (thời gian thực) ❒ TCP: cho cac ứng dung nhay cam với lôi (data services) vi du email, truyên file ❒ UDP: cho cac ứng dung châp nhân lôi nhay cam với trê VoIP, Video streaming Chương 3-Lớp truyền tải 3-7 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3-Lớp truyền tải 3-8 Ghép/tách kênh Tách host thu: Ghép host tryền: Chuyển data nhận đến socket Tập hợp data từ nhiều socket, đóng gói gắn header = socket application transport network link = process P3 P1 P1 application transport network P2 P4 application transport network link link physical host physical host physical host Chương 3-Lớp truyền tải 3-9 Cách tách kênh ❒ host nhận gói IP Mỗi gói có địa IP nguồn địa IP đích ❍ Mỗi gói IP chứa segment lớp truyền tải ❍ Mỗi segment có số port nguồn đích ❒ host dùng địa IP số port để chuyển segment đến socket ❍ 32 bits source port # dest port # Các field khác Data ứng dụng Định dạng TCP/UDP segment Chương 3-Lớp truyền tải 3-10 Hiệu rdt3.0 ❒ Ví dụ: Gbps, Tp=15 ms , Kích thước gói =8000 bit : d trans ❍ ❍ ❍ L 8000bits = = = microseconds R 10 bps U sender: utilization – tỉ lệ thời gian máy truyền thực làm công việc truyền 008 L / R U = = 0.00027 = sender 30.008 RTT + L / R microsec 1KB pkt 30 msec -> thông lượng 33kB/sec qua liên kết 1Gbps Giao thức mạng giới hạn sử dụng tài nguyên vật lý! Chương 3-Lớp truyền tải 3-40 rdt3.0: hoạt động ARQ không liên tục (Idle ARQ hay stop-and-wait) sender receiver Truyền bit đầu gói, t = Truyền bit sau gói, t=L/R Bit đầu đến Bit sau đến, gửi ACK RTT ACK đến, gửi gói kế, t = RTT + L / R U sender = L/R RTT + L / R = 008 30.008 = 0.00027 microsec Chương 3-Lớp truyền tải 3-41 Các giao thức dùng kỹ thuật ống dẫn Pipelining: máy truyền cho phép nhiều gói gửi liên tiếp không cần có báo nhận ACK ❍ ❍ Tăng số Đệm máy truyền máy nhận ❒ ARQ liên tục: Selective repeat Go-back-N Automatic Repeat reQuest Chương 3-Lớp truyền tải 3-42 Kỹ thuật Pipelining Nhằm gia tăng hiệu sử dụng đường truyền (utilization) sender receiver Truyền bit đầu gói, t = Truyền bit sau gói, t=L/R Nhận bit đầu gói Bit sau gói đến, gửi ACK RTT Bit sau gói thứ hai đến, gửi ACK Bit sau gói thứ ba đến, gửi ACK ACK đến, gửi gói kế tiếp, t = RTT + L / R tăng utilization lên ba lần U sender = 3*L/R RTT + L / R = 024 30.008 = 0.0008 microsecon Chương 3-Lớp truyền tải 3-43 Các giao thức theo ARQ liên tục Go-back-N ❒ Máy truyền có đến N gói chưa báo nhận gửi qua ống ❒ Máy thu gửi ACK cho gói mà từ trước nhận tốt ❒ Máy truyền có định thời cho gói chưa báo nhận ❍ Nếu định thời hết hạn, truyền lại tất gói chờ Selective Repeat ❒ Máy truyền có đến N gói chưa báo nhận gửi qua ống ❒ Máy thu gửi ACK cho gói nhận tốt ❒ Máy truyền có định thời cho gói chưa báo nhận ❍ Nếu định thời hết hạn, truyền lại gói tương ứng Chương 3-Lớp truyền tải 3-44 Go-Back-N Máy truyền: ❒ Số k-bit (seq #) header gói ❒ “cửa sổ”có kích thước N, số gói truyền liên tiếp chưa có báo nhận Gói chờ báo nhận Gói có số Đã báo nhận Còn trống chưa dùng Chưa báo nhận Khe trống Cửa sồ truyền ❒ ACK(n): báo nhận cho tất gói đến n Có thể nhận trùng ACK ❒ Bộ định thời cho gói đợi ❒ timeout(n): truyền lại tất gói từ n trở ❍ Chương 3-Lớp truyền tải 3-45 Sơ đồ trạng thái máy truyền GoBack-N rdt_send(data) Λ base=1 nextseqnum=1 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) Đợi rdt_rcv(rcvpkt) && corrupt(rcvpkt) timeout start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) … udt_send(sndpkt[nextseqnum-1]) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer Chương 3-Lớp truyền tải 3-46 Sơ đồ trạng thái máy nhận Go-Back-N Chỉ tất trường hợp ngoại trừ trường hợp nhận gói có thứ tự mong muốn default udt_send(sndpkt) Λ Đợi expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum) rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ Chương 3-Lớp truyền tải 3-47 Hoạt động Go-Back-N Chương 3-Lớp truyền tải 3-48 Selective Repeat ❒ Máy thu báo nhận cho gói mà nhận tốt ❍ Đệm gói cần (chờ thứ tự để giao cho giao thức cao hơn) ❒ Máy truyền gửi lại gói không nhận ACK ❍ Bộ định thời cho gói truyền chưa có báo nhận ❒ Cửa sổ truyền ❍ Kích thước N, N số liên tục gán cho gói để truyền ❍ Giới hạn số gói truyền liên tục Chương 3-Lớp truyền tải 3-49 Selective repeat: cửa sổ truyền thu Gói chờ báo nhận Gói có số Đã báo nhận Chưa báo nhận Còn trống chưa dùng Khe trống Cửa sồ truyền (a) Tuần tự truyền với cửa sổ có kích thước N Ngoài trật tự báo nhận Bộ đệm trống chứa thêm Cần chưa thấy Khe trống Cửa sồ nhận Chờ gói có (a) Tuần tự nhận với cửa sổ có kích thước N Chương 3-Lớp truyền tải 3-50 Selective repeat Máy truyền data từ : ❒ Nếu kế sẵn sàng, truyền gói (cửa sổ chỗ) Máy thu Gói n khoảng sổ thu ❒ Gửi ACK(n) timeout(n): ❒ Không trật tự: đệm lại ❒ Truyền lại gói n, khởi động ❒ Đúng trật tự: chuyển giao lại định thời ACK(n) khoảng cửa sổ: ❒ Loại số n khỏi danh sách đợi ❒ Tăng biên cửa sổ lên cho lớp trên, cửa sổ hướng đến số gói Gói n chờ nhận đến ❒ Gửi ACK(n) Chương 3-Lớp truyền tải 3-51 Hoạt động Selective repeat Chương 3-Lớp truyền tải 3-52 Ví dụ ❒ seq #’s: 0, 1, 2, ❒ window size=3 ❒ Quan hệ số kích thước cửa sổ Chương 3-Lớp truyền tải 3-53 HẾT CHƯƠNG Chương 3-Lớp truyền tải 3-54 [...]... truyền tải ❒ Ghép/tách kênh (Multiplexing và demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3- Lớp truyền tải 3- 21 Các nguyên lý truyền số liệu tin cậy ❒ Quan trọng trong các lớp ứng dụng, truyền tải và liên kết số liệu ❒ Một trong 10 chủ đề liên mạng quan trọng nhất Dịch vụ truyền/ nhận data Xây dựng dịch vụ Chương 3- Lớp truyền tải 3- 22 Truyền. .. D-IP:C SP: 9157 server IP: C DP: 80 Client S-IP: B D-IP:C IP:B Chương 3- Lớp truyền tải 3- 15 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing và demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3- Lớp truyền tải 3- 16 UDP (User Datagram Protocol) ❒ Là giao thức truyền tải Internet chỉ chứa tính năng thiết yếu ❒ Được đặc tả trong... udt_send(sndpkt) Chương 3- Lớp truyền tải 3- 32 rdt2.1: Nhận xét Máy truyền: ❒ seq # được thêm vào gói ❒ Hai số tuần tự là đủ ❒ Phải kiểm tra để phòng ACK/NAK mất ❒ Hai trạng thái ❍ Phải nhớ gói hiện hành có số tuần tự là 0 hay 1 Máy thu: ❒ Phải kiểm tra xem gói nhận có bị trùng không ❍ Trạng thái chỉ ra số tuần tự mong đợi ❒ Máy thu không thể biết tình trạng ACK/NAK tại máy truyền Chương 3- Lớp truyền tải 3- 33 rdt2.2:... không liên tục sẽ có các socket khác nhau cho mỗi request Chương 3- Lớp truyền tải 3- 13 Tách kênh hướng kết nối (2) P1 P4 P5 P2 P6 P1P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 client IP: A DP: 80 S-IP: A D-IP:C SP: 9157 server IP: C DP: 80 Client S-IP: B D-IP:C IP:B Chương 3- Lớp truyền tải 3- 14 Tách kênh hướng kết nối Threaded Web Server P1 P2 P4 P1P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 client IP: A... từ lớp trên Số liệu được chuyển qua để chuyển đến máy thu Host truyền udt_send(): được gọi bởi rdt, để truyền gói qua kênh không tin cậy đến máy thu rdt: reliable data transfer protocol udt: unreliable data transfer protocol deliver_data(): được gọi bởi rdt để chuyển data lên lớp trên Host nhận rdt_rcv(): được gọi khi gói đến Chương 3- Lớp truyền tải 3- 23 Truyền số liệu tin cậy (3) ❒ Tìm hiểu phía truyền. .. lỗi Chương 3- Lớp truyền tải 3- 19 Ví dụ tính Checksum ❒ Lưu ý Khi cộng, số nhớ từ bit có ý nghĩa lớn nhất được cộng vào kết quả ❒ Ví dụ: cộng hai số nguyên 16-bit ❍ 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 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 sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Chương 3- Lớp truyền tải 3- 20 NỘI DUNG ❒ Các dịch vụ lớp truyền. .. deliver_data(data) sndpkt = make_pkt(ACK1, chksum) Chương 3- Lớp truyền tải 3- 35 udt_send(sndpkt) rdt3.0: các kênh lỗi và mất gói Giả sử: kênh bên dưới cũng có thể mất gói (data hay ACK) ❍ checksum, seq #, ACKs, truyền lại là hữu ích nhưng không đủ Giải pháp: máy truyền đợi ACK một khoảng thời gian hợp lý ❒ Truyền lại nếu không thấy ACK trong thời gian đợi ❒ Nếu gói hay ACK bị trễ: ❍ Truyền lại sẽ bị trùng, nhưng có... Chương 3- Lớp truyền tải 3- 29 rdt2.0: tình huống đặc biệt Điều gì xảy ra nếu ACK/NAK bị mất? Xử lý trùng: ❒ Máy truyền không biết điều chờ ACK/NAK quá lâu ❒ Máy truyền thêm số tuần tự vào mỗi gói ❒ Máy thu loại bỏ gói trùng, không chuyển lên trên gì xảy ra tại máy thu! ❒ Truyền lại có thể trùng ❒ Máy truyền gửi lại gói nếu Idle RQ (stop and wait) Máy truyền gửi gói và vào trạng thái đợi báo nhận ACK Chương. .. gói ❒ Sơ đồ trạng thái tách biệt cho truyền và nhận: ❍ Máy truyền gửi data xuống kênh ❍ Máy thu đọc data từ kênh bên dưới Đợi gọi từ trên rdt_send(data) packet = make_pkt(data) rdt_send(packet) Máy truyền Đợi gọi từ dưới rdt_rcv(packet) extract (packet,data) deliver_data(data) Máy thu Chương 3- Lớp truyền tải 3- 25 Rdt2.0: kênh có lỗi ❒ Kênh bên dưới có xảy ra lỗi truyền bit ❍ Dùng checksum để phát hiện... gói nhận tốt trong ACK phản hồi ❒ Trùng ACK tại máy truyền dẫn đến hành động tương tự như NAK: truyền lại gói hiện hành Chương 3- Lớp truyền tải 3- 34 rdt2.2: sơ đồ trạng thái rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || Đợi ACK Đợi gọi 0 isACK(rcvpkt,1) ) 0 từ trên udt_send(sndpkt) Máy truyền rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt)) ... start_timer Chương 3- Lớp truyền tải 3- 37 rdt3.0 Hoạt động Không Mất gói Chương 3- Lớp truyền tải 3- 38 rdt3.0 hoạt động (2) Mất ACK Time out sớm Chương 3- Lớp truyền tải 3- 39 Hiệu rdt3.0 ❒ Ví dụ:... streaming Chương 3- Lớp truyền tải 3- 7 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu... D-IP:C IP:B Chương 3- Lớp truyền tải 3- 15 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số

Ngày đăng: 04/12/2015, 19:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan