Bài giảng Mạng máy tính - Chương 5: Giao thức TCP/UDP - Nguyễn Hữu Thanh

Phát hiện tắc nghẽn Vấn đề: Làm sao để phát hiện tắc nghẽn? Khi xảy ra mất gói  hàng đợi tại các nút trung gian bị tràn  tắc nghẽn xảy ra TCP chuyển sang trạng thái phát hiện tắc nghẽn khi mất gói xảy ra: Không nhận được ACK (timeout) Nhận được 3 ACK trùng yêu cầu phát lại Phát hiện tắc nghẽn (tiếp )  Khi timeout (không nhận được ACK) TCP đặt ngưỡng ssthresh xuống còn một nửa giá trị hiện tại của cwnd TCP đặt cwnd về 1 MSS TCP chuyển về trạng thái slow start  Nếu nhận được 3 ACK trùng TCP đặt ngưỡng ssthresh xuống còn một nửa giá trị hiện tại của cwnd TCP đặt cwnd bằng ½ giá trị hiện tại TCP chuyển về trạng thái tránh tắc nghẽn

pdf33 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 379 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Mạng máy tính - Chương 5: Giao thức TCP/UDP - Nguyễn Hữu Thanh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1PGS. TS. Nguyễn Hữu Thanh Bộ môn Kỹ thuật thông tin Viện Điện tử - Viễn thông ĐHBK Hà Nội Email: thanhnh@mail.hut.edu.vn Chương 5. Giao thức TCP/UDP Nội dung Giới thiệu chung UDP TCP Chức năng TCP Điều khiển luồng và chống tắc nghẽn trong TCP 23 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đặt vấn đề  Ứng dụng trên mạng:  Đa dạng  Yêu cầu khác nhau về mặt chất lượng: ◊ Ứng dụng thời gian thực: trễ nhỏ ◊ Ứng dụng truyền số liệu (truyền file, web, email .v.v.): độ tin cậy cao, xác suất mất gói hoặc lôi gói phải ~ 0%  Nhiều ứng dụng tại 1 máy trạm cùng chia sẻ đường truy nhập Internet  Mạng Internet:  Chức năng chính: định tuyến (routing) và chuyển tiếp (forwarding)  Truyền tin không tin cậy ◊ Không có cơ chế đảm bảo thứ tự gói ◊ Không có cơ chế đảm bảo gói sẽ được truyền đến nơi nhận  Vấn đề: làm thế nào để truyền nhiều ứng dụng với các yêu cầu khác nhau trên giao thức IP không tin cậy, độc lập với ứng dụng? 4 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đặt vấn đề (tiếp)  Cần các chức năng bổ sung giữa “Application” và “Internetwork” Network Access Internetwork Host-to-Host Application Mô hình Internet Điều khiển truy nhập kênh, biến đổi dòng bit theo kênh vật lý Định tuyến và chuyển tiếp, truyền tin không tin cậy IEEE 802.x IP, ICMP, routing protocols Ứng dụng truyền thông: truyền file, ứng dụng thời gian thực, web, email, VoIP .v.v. http, SIP, H.323, RTP, FTP, SMTP, POP, SNMP .v.v. ??? 35 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chức năng của lớp Host-to-Host Lớp host-to-host thực hiện các chức năng bổ sung giữa “application” và “internetwork” Ghép nhiều luồng dữ liệu trên một thiết bị đầu cuối để truyền trên mạng IP Tăng độ tin cậy của luồng thông tin 6 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chức năng của lớp Host-to-Host (tiếp ) Network Access Internetwork Host-to-Host Application Máy trạm Network Access Internetwork Host-to-Host Application Máy trạmRouter Network Access Internetwork Thông tin giữa 2 lớp cùng cấp 47 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chức năng của lớp Host-to-Host (tiếp )  Tại sao các chức năng của host-to-host lại được thực hiện ở thiết bị đầu cuối? Router chỉ thực hiện các chức năng định tuyến và chuyển tiếp Router không cần lưu giữ trạng thái của một luồng dữ liệu (flow state) nâng cao hiệu năng của router các chức năng khác được đưa ra “rìa” của mạng 8 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế ghép kênh  Chức năng ghép kênh:  Chia nhỏ dữ liệu của người sử dụng thành các segment lớp host-to-host  Ghép nhiều luồng dữ liệu lớp ứng dụng vào để truyền trên mạng IP FTP HTTP Chat FTP HTTP Chat Application Host2Host Internetwork Network Access TCP/UDPmultiplexing demultiplexing application-layer protocols 59 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế ghép kênh (tiếp) Phương pháp ghép kênh: Mỗi ứng dụng (hay tiến trình) có một địa chỉ cổng (port number) khác nhau Địa chỉ cổng: 16 bit Các ứng dụng trao đổi dữ liệu qua “socket”. Mỗi socket được phân biệt qua 2 tham số: ◊Địa chỉ port ◊Địa chỉ IP 10 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế ghép kênh (tiếp)  Một số cổng điển hình:  0 – 1023: cổng mặc định định nghĩa bởi IANA ◊ FTP: 20, TCP ◊ SSH: 22, TCP/UDP ◊ Telnet: 23, TCP ◊ SMTP: 25, TCP ◊ DNS: 53, TCP/UDP ◊ HTTP: 80, TCP/UDP  Từ 1024: do người sử dụng tự định nghĩa  Socket được quản lý bởi hệ điều hành  Có thể tạo, trao đổi dữ liệu qua socket thông qua các API của HĐH socket 1 socket 2 socket 3 App1 App2 App3 Application Host-to-host 611 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy Độ tin cậy: Kiểm tra và chống lỗi: thêm các mã kiểm tra lỗi phần dữ liệu (CRC .v.v.) ◊ARQ (auto-repeat request) ◊FEC (forwarding error correction) Chống tắc nghẽn Câu hỏi: Sự khác nhau giữa ARQ và FEC? Trong giao thức IP có kiểm tra và chống lỗi không? Ở đâu? 12 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp)  ARQ:  Trao đổi dữ liệu thông qua cơ chế: gửi – phúc đáp  Phân loại: ◊ Stop-and-Wait ◊ Go-Back-N ◊ Selective Repeat  Chức năng: ◊ Phát hiện lỗi gói ◊ Phát hiện mất gói ◊ Sắp xếp thứ tự gói ◊ Điều khiển luồng: điều chỉnh kích thước cửa số trượt  Câu hỏi:  Phân biệt các cơ chế Stop-and-Wait, Go-Back-N, Selective Repeat?  Tham khảo tài liệu môn “Cơ sở mạng thông tin” 713 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp)  ARQ - Stop and Wait: RTT tp ts p1 ACK1 p0 ACK0 p1 lỗi NACK1 p1 ACK1 p1 p1 ACK1 mất gói t tim eo ut a) Không lỗi b) Lỗi gói c) Mất gói 14 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp)  ARQ - Go-Back-N:  “Cumulative feedback” p1 p2 p3 ACK4 p4 p5 p6 a) Không lỗi p1 p2 p3 ACK2 p2 p3 p4 lỗigói b) Lỗi gói p1 p2 p3 ACK2 p2 p3 p4 mất gói c) Mất gói W=3 – kích thước cửa sổ 815 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp)  ARQ - Selective Repeat p1 p2 p3 ACK4 p4 p5 p6 a) Không lỗi p1 p2 p3 NACK2 p2 p4 p5 lỗigói b) Lỗi gói NACK4 p1 p2 p3 ACK1 ACK3p4 p2 p5 mất gói c) Mất gói 16 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp)  Điều khiển luồng trong ARQ: Để thay đổi tốc độ truyền: ◊ Thay đổi kích thước cửa sổ trượt W ◊ Thay đổi thời gian ACK để điều chỉnh RTT  Nhận xét: ARQ không thích hợp cho các dịch vụ thời gian thực: ◊ RTT lớn ◊ Băng thông của luồng dữ liệu bị giới hạn bởi W  ARQ được áp dụng trong TCP 917 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp) Câu hỏi: Tính hiệu suất kênh truyền trong “Stop- and-Wait”, “Go-Back-N” và “Selective Repeat” khi: ◊Kênh truyền lý tưởng ◊Kênh chịu xác suất mất gói là Pe  Tham khảo bài giảng môn “Cơ sở mạng thông tin” 18 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế tăng độ tin cậy (tiếp) FEC: Bên phát không phát lại gói Bên thu có chức năng: ◊Kiểm tra lỗi ◊Nếu phát hiện gói lỗi: – Bên thu sửa lỗi (xác định vị trí bit lỗi) – Nếu lỗi không sửa được: hủy gói Nhận xét: ◊FEC thích hợp cho các dịch vụ thời gian thực 10 19 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Giao thức UDP  UDP – User Datagram Protocol  RFC 768  Gói tin UDP – UDP datagram  Đặc điểm:  Sử dụng cơ chế không liên kết (connectionless): không cần thiết lập một phiên truyền giữa nguồn – đích  UDP là giao thức không tin cậy ◊ Không có phúc đáp (ACK) ◊ Không cơ chế tự động phát lại ◊ Kiểm tra lỗi (checksum): chỉ kiểm tra phần đầu khung (header), không có kiểm tra lỗi phần dữ liệu ◊ Không có cơ chế phát hiện gói mất, gói đến không đúng thứ tự ◊ Không có cơ chế điều khiển luồng  UDP có thể gửi dữ liệu nhanh và nhiều nhất có thể  Chức năng cơ bản của UDP là gì? 20 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Giao thức UDP (tiếp)  Chức năng chính của UDP: Ghép/tách kênh App App A1 A2 App App B1 B2 UDP OS IP UDP Port 11 21 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Giao thức UDP (tiếp)  Cấu trúc gói UDP SRC port DST port checksum length DATA Chỉ bảo vệ phần header Kích thước phần data theo byte  UDP được dùng cho ứng dụng gì?  Các ứng dụng không cần độ tin cậy cao  Các phiên truyền ngắn, thiết lập kết nối hướng liên kết theo kiểu TCP đem lại hiệu suất thấp  Các ứng dụng thời gian thực 22 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Giao thức TCP  TCP – Transmission Control Protocol  RFC 793, 1122, 1323, 2018, 2581  Đặc điểm:  Hướng liên kết (connection-oriented) ◊ Thiết lập kết nối: “3-way handshake” – thiết lập kết nối 3 bước ◊ Huỷ bỏ kết nối: “2-way handshake” – huỷ bỏ kết nối 2 bước  Client – server: client thiết lập kết nối  TCP là giao thức truyền tin cậy: ◊ Cơ chế phúc đáp (ACK) khi nhận được dữ liệu ◊ Mã chống lỗi để bảo vệ dữ liệu ◊ Số thự tự (sequence number) để phát hiện gói mất và gói không đúng thứ tự ◊ Cơ chế timeout (sau một thời gian bên phát không nhật được ACK) để gửi lại dữ liệu ◊ Cơ chế sắp xếp lại thứ tự gói ở đầu thu ◊ Cơ chế điều khiển luồng sử dụng cửa sổ trượt ◊ Cơ chế chống tắc nghẽn để chia sẻ băng thông giữa nhiều nguồn dữ liệu 12 23 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Hướng liên kết  Không liên kết ở lớp Internetwork, hướng liên kết trên lớp Host-to-Host A B R1 R2 R3 R4 24 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Hướng liên kết (tiếp)  Thiết lập kết nối: 3-way handshake  Bước 1: A gửi SYN cho B ◊ chỉ ra giá trị khởi tạo seq # của A ◊ không có dữ liệu  Bước 2: B nhận SYN, trả lời bằng SYN/ACK ◊ B khởi tạo vùng đệm ◊ chỉ ra giá trị khởi tạo seq. # của B  Bước 3: A nhận SYN/ACK, trả lời ACK, có thể kèm theo dữ liệu  Ghi chú: phiên truyền TCP là phiên song công (số liệu truyền theo 2 hướng) Client A (chủ động) Server B (thụ động) Syn Syn + Ack Ack 13 25 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Hướng liên kết (tiếp)  Huỷ bỏ kết nối: 2-way handshake  Bước 1: Gửi FIN cho B  Bước 2: B nhận được FIN, trả lời ACK, đồng thời đóng liên kết và gửi FIN.  Bước 3: A nhận FIN, trả lời ACK, vào trạng thái “chờ”.  Bước 4: B nhận ACK. đóng liên kết.  Ghi chú: cả client hoặc server đều có thể yêu cầu huỷ bỏ kết nối Client A Server B Fin (Data +) Ack Fin Ack 26 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn TCP data segment  Dữ liệu lớp ứng dụng được đóng gói vào các “TCP segment”  MSS (Maximum Segment Size): chiều dài tối đa cho phép của 1 TCP segment Byte 0 Byte 1 Byte 2 Byte 3 Byte 0 Byte 1 Byte 2 Byte 3 Gửi Nhận Byte 80 TCP segment TCP segment Byte 80 14 27 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Bản tin TCP Src port Dst port Sequence Number ACK Sequence Number HLEN 4 RSVD 6 U RG A CK PS H RS T S YN FI N Flags Receive Window Size Checksum Urg Pointer (TCP Options) 0 15 31 TCP Data 28 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Ý nghĩa các trường Source/Destination Port: địa chỉ cổng Checksum: mã chống lỗi – cho cả TCP header và phần dữ liệu Receive Window Size (RWND): kích thước cửa sổ trượt bên nhận  chỉ ra lượng dữ liệu tối đa bên thu có thể tiếp nhận  điều khiển luồng 15 29 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Sequence Number  Sequence Number: số thứ tự TCP segment Gửi Nhận TCP Data TCP Data TCP HDR TCP HDR ISN (initial sequence number) Sequence number = số thứ tự byte đầu STT ACK = byte tiếp theo bên thu đợi nhận 30 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Sequence Number (tiếp) Sequence number: Số thứ tự byte đầu tiên của 1 segment  sequence number của TCP segment Được tính bằng byte 16 31 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Initial Sequence Number  ISN – giá trị thứ tự khởi tạo Được thiết lập trong giai đoạn bắt tay 3 bước để khởi tạo kết nối Client A Server B Syn +ISNA Syn + Ack +ISNB Ack 32 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cửa sổ trượt trong TCP Vấn đề: Một kết nối TCP có thể gửi bao nhiêu gói dữ liệu liên tiếp qua mạng? Khi lỗi xảy ra, TCP truyền lại gói thế nào? Sử dụng cơ chế “selective repeat” hay “Go-Back-N”? Làm cách nào để TCP không làm tràn bộ đệm bên thu? 17 33 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cửa sổ trượt trong TCP (tiếp)  Kích thước cửa sổ phải điều chỉnh cho phù hợp với bộ đệm của bên thu  Kích thước cửa sổ tối đa bên thu cho phép sẽ được gửi cho bên phát RWND trong trường Receive Window Size (thông thường từ 4kB – 8kB)  Cơ chế truyền lại trong TCP: Go-Back-N Dữ liệu đã gửi và chưa nhận được ACK Kích thước cửa sổ Dữ liệu được phép gửi Dữ liệu chưa được phép gửi Dữ liệu đã gửi và nhận được ACK Dữ liệu 34 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cửa sổ trượt trong TCP (tiếp)  Lựa chọn kích thước cửa sổ: RTT > Window Size: hiệu suất kênh truyền thấp RTT= Window Size: hiệu suất kênh  100% Phát (A) Thu (B) ACK Window Size Round-trip time (RTT) ACK Window Size??? ACK Window Size Round-trip time (1) RTT > Window size (2) RTT = Window size 18 35 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại  TCP sử dụng đồng hồ timeout để truyền lại  Sau khoảng thời gian RTO>RTT, nếu không nhận được gói  truyền lại  RTO là giá trị thay đổi, thích ứng với trạng thái kênh. Nguyên nhân:  Tắc nghẽn, đường đi thay đổi  RTT thay đổi  RTO cũng thay đổi theo  Câu hỏi:  Giá trị RTO được tính thế nào?  Nếu RTO quá lớn/quá bé thì sao? Phát (A) Thu (B) ACK Round-trip time (RTT) ACK Retransmission TimeOut (RTO) Estimated RTT Data1 Data2 Guard Band 36 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại (tiếp)  Ước lượng giá trị RTO:  Vấn đề: ◊ Nếu giá trị RTO quá lớn: trễ truyền lại lớn ◊ Nếu giá trị RTO quá nhỏ: phát trùng gói không cần thiết  Thuật toán ước lượng RTO – sử dụng phương pháp “trung bình cửa sổ trượt theo trọng số mũ” (Exponential Weighted Moving Average - EWMA) ◊ Gọi: –  – trọng số thuật toán EWMA (0 ≤  ≤ 1, thông thường  =0,125) – k – số bước lặp – EstimatedRTT: giá trị RTT ước lượng theo EWMA – SampleRTT: giá trị RTT đo được tại bước k ◊ Thuật toán: 1. EstimatedRTTk=  EstimatedRTTk-1 + (1 - ) SampleRTT 2. RTO = 2 * EstimatedRTT 19 37 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại (tiếp) RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 100 150 200 250 300 350 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) RT T (m ill ise co nd s) SampleRTT Estimated RTT 38 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại (tiếp)  Trong thuật toán trên  Giả thiết: Phương sai của giá trị RTT là hằng số  Trong thực tế: ◊ Chiều dài hàng đợi của router tăng dần khi tải tăng ◊ Phương sai của RTT tăng nhanh khi tải tăng ◊ Phân bố xác suất của RTT không xác định  Yêu cầu:  Ước lượng RTT chính xác để tránh ước lượng sai RTO Tải tới hàng đợi router Tr ế tru ng bì nh Phương sai tăng nhanh khi tải tăng RTT X ác su ất kỳ vọng Phương sai 20 39 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại (tiếp)  Thuật toán ước lượng RTO mới: Cho phép đánh giá cả phương sai của RTT 1. EstimatedRTTk =  EstimatedRTTk-1 + (1 - ) SampleRTT 2. Differencek = (1 - )*Differencek-1 +  *|SampleRTT - EstimatedRTTk| 3. RTO =  * EstimatedRTTk +  *Differencek   0,125;   1;   4;   0,25 40 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Cơ chế truyền lại (tiếp)  Thuật toán Karn:  Vấn đề: Khi truyền lại thì RTT được ước lượng thế nào cho chính xác?  Giải pháp: ◊ Không cập nhật giá trị EstimatedRTT ◊ RTOk=2 * RTOk-1 Truyền lại RTT sai Host A Host B Truyền lại RTT sai Host A Host B 21 41 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tắc nghẽn trong Internet  Tắc nghẽn trong mạng thường xuyên xảy ra và không thể tránh được  Tắc nghẽn xảy ra ở nhiều cấp độ khác nhau (mức gói, mức luồng .v.v.)  Bên phát TCP phải có khả năng phát hiện tắc nghẽn và giảm tắc nghẽn (giảm kích thước cửa sổ trượt)  Router cũng có thể giảm tốc độ luồng TCP bằng cách tăng trễ hàng đợi (khi tải tăng) 42 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tắc nghẽn trong Internet (tiếp)  Tắc nghẽn xảy ra khi tải tới nút mạng tăng ( 100%) A1(t) A2(t) D(t) X(t) Cu m ul at iv e by te s t Atotal(t) H1 H2 R1 H3 A1(t) 10Mb/s D(t) 1.5Mb/s A2(t) 100Mb/s A1(t) A2(t) X(t) D(t) 22 43 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tắc nghẽn trong Internet (tiếp)  Các cấp độ của tắc nghẽn Mức người sử dụng: quá nhiều người truy nhập trong giờ cao điểm Mức luồng: các luồng dữ liệu chiếm trọn dung lượng kênh đầu ra Mức gói: 2 gói xung đột tại router 7:00 8:00 9:00 1s 2s 3s 100µs 200µs 300µs 44 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tắc nghẽn trong Internet (tiếp)  Tắc nghẽn và trễ: RTT bao gồm: ◊ Trễ lan truyền (propagation delay) ◊ Trễ hàng đợi (queue delay) Thông thường trễ hàng đợi đóng vai trò quyết định đến RTT Trễ hàng đợi phụ thuộc vào chiều dài hàng đợi  tải tăng thì trễ tăng. Khi tắc nghẽn xảy ra  trễ hàng đợi lớn  RTT là đại lượng được sử dụng để ước lượng tắc nghẽn trong mạng (TD: ping) 23 45 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tránh tắc nghẽn trong Internet  TD: 2 luồng dữ liệu đến router R1 ? A1(t) A2(t) Chính sách Yêu cầu các luồng giảm tốc độ Chuyển thời gian phục vụ một luồng tới thời điểm muộn hơn Đệm một luồng trong bộ đệm cho đến khi luồng kia được phục vụ xong Từ chối một luồng 46 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tránh tắc nghẽn trong Internet (tiếp)  Nhận xét: tắc nghẽn không thể tránh khỏi Cơ chế hợp kênh thống kê trong chuyển mạch gói cho phép sử dụng kênh truyền hiệu quả  bộ đệm thường xuyên bị đầy Nếu bộ đệm rỗng  trễ nhỏ, mạng không bị tắc nghẽn. Nhưng: hiệu suất sử dụng kênh thấp Nếu bộ đệm luôn đầy  trễ lớn, tắc nghẽn. Nhưng: hiệu suất sử dụng kênh cao  Tắc nghẽn thế nào là vừa phải? 24 47 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tải, trễ và hiệu năng  Quan hệ giữa tải và trễ:  Tải: L (bit/s)  Trễ: D (s)  Gọi P là một tham số đơn giản để đánh giá hiệu năng mạng, với:  P=L/D  P càng lớn càng tốt Tr ễ tr un g bì nh Tải Hiệu năng Tải“Tải tối ưu” 48 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chống tắc nghẽn trong TCP  Yêu cầu: TCP phải ước lượng chính xác băng thông còn thừa Thay đổi tốc độ phát theo tình trạng kênh: ◊ Tăng tốc độ phát khi còn băng thông ◊ Khi tắc nghẽn xảy ra  giảm tốc độ phát t Băng thông Băng thông còn thừa C 25 49 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chống tắc nghẽn trong TCP (tiếp)  Bên phát TCP thay đổi tốc độ bằng việc thay đổi kích thước cửa sổ  “cwnd” hoạt động theo cơ chế: Tăng kích thước cửa sổ theo cấp số cộng Giảm kích thước cửa sổ theo cấp số nhân Window=min{ReceiveWindow, CongestionWindow} RWND bên thu CWND bên phát 50 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Chống tắc nghẽn trong TCP (tiếp)  Các trạng thái của 1 luồng TCP: “slow start”: ◊ Khi mới khởi tạo luồng ◊ Kích thước cwnd tăng theo hàm mũ cho đến mức ngưỡng ssthresh Tránh tắc nghẽn: ◊ Từ mức ssthresh, kích thước cửa sổ tăng thêm một MSS (maximum segment size) sau mỗi chu kỳ RTT kích thước cửa sổ tăng tuyến tính đến khi phát hiện tắc nghẽn Phát hiện tắc nghẽn: ◊ Tắc nghẽn xảy ra khi gói tin bị mất  TCP giảm kích thước cửa sổ xuông một nửa. 26 51 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn “Slow Start”  Mục đích: cho phép phiên TCP tăng tốc độ nhanh chóng sau khi thiết lập kết nối  Nguyên tắc:  cwnd = 1 (MSS)  Tăng cwnd 1 đơn vị mỗi khi nhận được ACK  kích thước cwnd tăng theo cấp số nhân D A D D A A D D A A D A Src Dest D A 4 81 2 52 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tránh tắc nghẽn  Tránh tắc nghẽn – congestion avoidance  Nguyên tắc:  Sau khi kích thước cwnd đạt đến giá trị ssthresh, kết nối TCP chuyển sang chế độ tránh tắc nghẽn  cwnd tăng một đơn vị (01 MSS) sau một RTT không có gói lỗi  cwnd tăng tuyến tính D A D D A A D D A AD A Src Dest 1 2 3 4 27 53 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Phát hiện tắc nghẽn Vấn đề: Làm sao để phát hiện tắc nghẽn? Khi xảy ra mất gói  hàng đợi tại các nút trung gian bị tràn  tắc nghẽn xảy ra TCP chuyển sang trạng thái phát hiện tắc nghẽn khi mất gói xảy ra: Không nhận được ACK (timeout) Nhận được 3 ACK trùng yêu cầu phát lại 54 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Phát hiện tắc nghẽn (tiếp)  Khi timeout (không nhận được ACK) TCP đặt ngưỡng ssthresh xuống còn một nửa giá trị hiện tại của cwnd TCP đặt cwnd về 1 MSS TCP chuyển về trạng thái slow start  Nếu nhận được 3 ACK trùng TCP đặt ngưỡng ssthresh xuống còn một nửa giá trị hiện tại của cwnd TCP đặt cwnd bằng ½ giá trị hiện tại TCP chuyển về trạng thái tránh tắc nghẽn 28 55 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Phát hiện tắc nghẽn (tiếp)  Nhận xét: cửa sổ cwnd có dạng răng cưa 2 4 6 8 10 12 14 16 18 20 22 Timeout 3 ACKs SS SS AI AI AI Threshold=16 Threshold=10 Threshold=6 Threshold is set to half of cwnd (20) And slow start starts Threshold is set to half of cwnd (12) And additive increase starts cwnd Time 56 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Thông lượng của phiên TCP Trong một chu kỳ RTT: số byte phiên TCP gửi là cwnd Gọi R – thông lượng phiên TCP R=cwnd/RTT Câu hỏi: Dạng lưu lượng một phiên TCP có tuân theo dạng răng cưa không? 29 57 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Thông lượng của phiên TCP (tiếp) 58 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Thông lượng của phiên TCP (tiếp)  Nhận xét: Dạng lưu lượng TCP không nhất thiết có dạng răng cưa. Như trong hình trước, lưu lượng là hằng số.  Nguyên nhân: Nếu độ lớn của bộ đệm tại router đủ lớn: ◊ Số gói đến router tăng  kích thước bộ đệm tăng  RTT tăng tỷ lệ với cwnd lưu lượng TCP là hằng số  Có 2 cách tránh tắc nghẽn: 1. Đệm gói đến để tăng RTT 2. Huỷ gói để giảm kích thước cửa sổ cwnd 30 59 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tính công bằng của TCP Mục tiêu: Nếu có n luồng TCP chia sẻ kênh truyền có dung lượng C  mỗi luồng được chia sẻ băng thông C/n TCP 1 R TCP 2 C 60 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tính công bằng của TCP (tiếp)  TCP cho phép chia sẻ băng thông công bằng  Xét 2 luồng TCP chia sẻ băng thông C. C C Điểm chia sẻ công bằng Thông lượng luồng 1 Th ôn g lư ợ ng lu ồn g 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 31 61 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Tính công bằng của TCP (tiếp) TCP công bằng đến đâu? Các ứng dụng có thể mở song song nhiều luồng TCP ◊Web browser ◊Flashget TD: ◊một liên kết dung lượng C phục vụ 10 luồng TCP  mỗi luồng nhận băng thông trung bình là C/10 ◊ứng dụng mới mở thêm 10 luồng TCP  ứng dụng đó nhận được băng thông C/2 62 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đồng bộ giữa nhiều luồng TCP  Vấn đề:  Khi truyền nhiều luồng TCP với cùng thời gian bắt đầu và RTT A B C D RTT Luồng A N RTT 32 63 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đồng bộ giữa nhiều luồng TCP (tiếp) Băng thông tổng cộng f(RTT) trung bình 64 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đồng bộ giữa nhiều luồng TCP (tiếp)  Nếu thay đổi thời gian bắt đầu giữa các luồng (không đồng bộ)  băng thông tổng hợp ít dao động hơn Nguồn A N RTT 33 65 CHƯƠNG 5 – UDP/TCP PGS. TS. Nguyễn Hữu Thanh Giới thiệu UDP TCP Chông tắc nghẽn Đồng bộ giữa nhiều luồng TCP (tiếp) Băng thông tổng hợp Trung bình N RTT Tài liệu tham khảo  Internetworking with TCP/IP, Vol 1, Douglas Comer, Prentice Hall Computer  Karn, Phil; Craig Partridge, "Improving Round- Trip Time Estimates in Reliable Transport Protocols“, ACM SIGCOMM '87. pp. 2–7  Computer Networks, Nick McKeown, Stanford University  Networking: a top-down approach featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley, 4thed, 2006  Một số tài liệu và bài giảng khác trên Internet

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_mang_may_tinh_chuong_5_giao_thuc_tcpudp_nguyen_huu.pdf