Trong môi trường hỗn hợp, cơ chế điều khiển luồng, điều khiển tắc nghẽn truyền thống của TCP khó phát huy hết tác dụng do tình trạng mất dữ liệu, độ trễ các gói tin tăng đột biến không h
Trang 1Trang 1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Hồng Đoàn
THUẬT TOÁN ĐIỀU KHIỂN TẮC NGHẼN WLDA+
Ngành: Công nghệ thông tin Chuyên ngành: Mạng và truyền thông
Trang 2Trang 4
Mục lục
Bảng thuật ngữ viết tắt 6
Danh mục các hình vẽ 8
Mở đầu 10
Chương 1 Giới thiệu 13
I Internet và các mô hình tham chiếu 13
1 Lịch sử phát triển mạng Internet và bộ giao thức TCP/IP 13
2 Các mô hình tham chiếu 14
II Một số giao thức phổ biến 19
1 Giao thức TCP 20
2 Giao thức UDP: 23
3 Giao thức RTP 24
Chương 2 Cơ chế điều khiển lưu lượng 31
I Phát hiện lỗi và điều khiển khắc phục lỗi 31
1.Tổng quan 31
2 Cơ chế bảo vệ, phát hiện và khắc phục lỗi 32
II Điều khiển lưu lượng, tránh tắc nghẽn 36
1 Cơ chế điều khiển lưu lượng 36
2 Thuật toán điều khiển lưu lượng 45
3 Điều khiển tắc nghẽn trong mạng hỗn hợp có dây và không dây 49
4 Kỹ thuật TCP-friendly 57
5 Lược đồ WLDA+ 61
Chương 3 Đánh giá hiệu suất giao thức và việc đảm bảo QoS cho truyền thông đa phương tiện 72
I Các phương pháp đánh giá hiệu suất giao thức 72
1 Giới thiệu chung 72
2 Đánh giá hiệu suất bằng mô hình toán học 74
3 Đánh giá hiệu suất bằng đo thực tế 75
4 Đánh giá hiệu suất bằng mô phỏng 76
II Truyền thông Multimedia và vấn đề đảm bảo QoS 77
1.Truyền thông đa phương tiện 77
2 Một số mô hình QoS: 80
III Một số kỹ thuật xử lý hàng đợi 82
Chương 4: Đánh giá hiệu suất WLDA+ bằng mô phỏng 89
I Cơ bản về NS 89
II Mô phỏng thuật toán WLDA+ bằng NS 90
1 Cấu hình mô phỏng WLDA+ 90
2 Đánh giá độ chính xác của các lược đồ lỗi 91
3 Đánh giá hiệu suất của các kỹ thuật .93
4 Đánh giá ảnh hưởng của những tỷ lệ lỗi khác nhau trong mạng không dây: 94
Trang 3Trang 5
5 Tính khả triển của WLDA+ 96
Kết luận và phương hướng nghiên cứu 98
Kết luận 98
Phương hướng nghiên cứu 99
Tài liệu tham khảo 100
Trang 4Rate
bandwidth
Provider
protocol
Trang 5Trang 7
protocol
Potential-Based Fair Queuing
JPEG Joint Photographic
Experts Group
Trang 6Hình 1.6 Hoạt động của Mixer và Translator
Hình 1.7 Cách tính gói tin mất của RTCP
Hình 1.8 Cách tính RTT của RTCP
Hình 2.1 Indirect-TCP
Hình 2.2 Snoop-TCP
Hình 2.3 So sánh các phương pháp cải tiến của TCP
Hình 2.4 Công thức tính của Padhye
Hình 2.5 Băng thông cổ chai
Hình 2.11 Thực thể gửi tính băng thông chia sẻ
Hình 2.12 Tốc độ truyền khi mất dữ liệu
Hình 2.13 Hình 2.13 Dùng thời gian đến giữa hai gói tin
Hình 2.14 Ngưỡng mất dữ liệu
Hình 2.15 Thời gian đến giữa hai gói tin trong WI N -LDA+
Hình 3.1 Các phương pháp đánh giá hiệu suất
Hình 3.2 Queue trong Thuật toán FIFO
Hình 3.3 Thuật toán FIFO
Hình 3.4 Ví du về thuật toán FIFO
Trang 7Trang 9
Hình 3.5 Queue trong thuật toán Priority
Hình 3.6 Thuật toán Priority Queuing
Hình 3.7 Ví dụ thuật toán Priority Queuing
Hình 3.8 Queue trong thuật toán Round Robin
Hình 3.9 Queue trong thuật toán Weighted Round Robin
Hình 4.1 Bộ mô phỏng NS
Hình 4.2 Mô phỏng mạng trên NAM
Hình 4.3 Cấu trúc một file trace
Hình 4.4 Biểu diễn các nguồn phát trên đồ thị
Hình 4.5 Topo mô phỏng WLDA+
Hình 4.6 Độ chính xác của WR O -LDA+ (a), WI N -LDA+ (b
Hình 4.7 So sánh tính chính xác của 2 lược đồ
Hình 4.8 So sánh tốc độ truyền của các kỹ thuật
Hình 4.9 Phân biệt mất dữ liệu bởi WR O -LDA+
Hình 4.10 Phân biệt mất dữ liệu bởi WI N -LDA+
Hình 4.11 So sánh tốc độ truyền với xác suất P e =5%
Hình 4.12 Thống kê những lược đồ lỗi khác nhau
Hình 4.13 So sánh tốc độ truyền với 100 sender
Trang 8Trang 10
Mở đầu
Các giao thức truyền thông chủ yếu trên Internet được áp dụng ngày nay vẫn là các giao thức truyền thống như TCP, UDP, IP…Những giao thức này vẫn đang đáp ứng được yêu cầu thực tế ở một mức độ nhất định Ứng dụng phổ biến chạy trên giao thức TCP là File Tranfer Protocol, World Wide Web, Telnet, HyperText Tranfer Protocol, Simple Mail Tranfer Protocol v.v Một số ứng dụng đặc biệt như truyền thông Multimedia, hội thảo truyền hình trực tuyến, Telephony, xem phim qua mạng thì triển khai trên giao thức UDP Tuy nhiên, hiệu suất các ứng dụng này cũng chưa có được kết quả như mong đợi, nhất là trong môi trường mạng hỗn hợp giữa mạng có dây và mạng không dây đang dần trở nên phổ biến Trong môi trường hỗn hợp, cơ chế điều khiển luồng, điều khiển tắc nghẽn truyền thống của TCP khó phát huy hết tác dụng do tình trạng mất dữ liệu, độ trễ các gói tin tăng đột biến không hẳn là dấu hiệu của tình trạng tắc nghẽn mạng mà còn có thể là do nguyên nhân đường truyền không dây có tỷ lệ lỗi bit cao, việc triển khai QoS vẫn chưa rộng rãi Ngoài ra, với TCP là một giao thức không hỗ trợ truyền Multicast nên khi truyền tin theo nhóm hay Multicast thì vấn đề quản lý các phiên làm việc đan xen sẽ rất phức tạp Giao thức UDP trong các ứng dụng multimedia thì không có cơ chế phát lại các gói tin dẫn đến không đảm bảo toàn vẹn dữ liệu, không đảm bảo tính công bằng về đường truyền cho các giao thức khác khi cùng tham gia truyền tin trên một tuyến đường mạng, có thể dẫn đến tình trạng các luồng thông tin chạy trên các giao thức khác mất dần cơ hội truyền cho đến lúc thông lượng trở về 0 Vậy nên giải pháp cho mạng Internet ngày nay có xu hướng là: một mặt vẫn tiếp tục nghiên cứu chính sách ưu tiên dịch vụ, đảm bảo chất lượng và triển khai các chính sách này trên các thiết bị mạng mới Những thiết bị mạng mới đó vẫn tương thích với các giao thức, thiết bị cũ đang còn tồn
Trang 9Trang 11
tại Sau đó, sẽ thay thế dần các thiết bị cũ trên đường truyền Internet bằng các thiết bị mới hơn, có các kỹ thuật quản lý QoS tốt hơn và tính mở rộng cao hơn để có được một mạng Internet chất lượng cao Mặt khác, cải tiến giao thức với kỹ thuật điều khiển luồng, tránh tắc nghẽn tốt hơn để phục
vụ các ứng dụng multimedia trong môi trường mạng hỗn hợp được hiệu quả hơn Một ví dụ: với kỹ thuật WLDA+ được giới thiệu bởi V.Dorgham Sisalem vào tháng 2 năm 2004 [4] là một thuật toán kiểu TCP-friendly chạy trong môi trường mạng hỗn hợp Kỹ thuật này dựa trên cơ chế điều khiển luồng của giao thức RTP [13] để phân tích các thông tin về độ trễ, sự mất dữ liệu, băng thông nơi cổ chai của đường truyền phục vụ cho việc điều khiển tắc nghẽn, đồng thời sử dụng thêm một số kỹ thuật khác để bóc tách nguyên nhân mất dữ liệu là do đường truyền hay do tắc nghẽn và có cách xử lý thích hợp nhằm tăng hiệu suất
sử dụng băng thông đồng thời đảm bảo tính công bằng cho các giao thức khác trên cùng một đường truyền Việc nghiên cứu tìm hiểu rõ kỹ thuật này chính là mục tiêu của luận văn Ngoài ra, để làm sáng tỏ vấn đề luận văn cũng tìm hiểu, trình bày một số nội dung liên quan như các cơ chế áp dụng cho việc truyền tải dữ liệu trong mạng hỗn hợp I-TCP, Snoop-TCP…, giới thiệu giao thức RTP cùng các khái niệm cơ bản khác như cơ chế điều khiển tắc nghẽn của TCP, đảm bảo chất lượng dịch vụ trong ứng dụng multimedia và các phương pháp đánh giá hiệu suất mạng, mô phỏng mạng dựa trên bộ mô phỏng mạng (Network Simulator) NS-2
Việc nghiên cứu giao thức WLDA+ nhằm khẳng định tính công bằng đối với việc chia sẻ đường truyền, tính chính xác của dữ liệu được truyền
đi khi áp dụng cơ chế này và đặc biệt là tính ưu việt khi tách bạch được hai nguyên nhân gây mất gói tin là do tắc nghẽn hay do đường truyền lỗi trong môi trường mạng hỗn hợp, từ đó có cách đối xử hợp lý với tốc độ truyền dữ liệu vào mạng giúp cải thiện hiệu suất của mạng tốt hơn
Với mục tiêu đó, chúng tôi bố trí luận văn thành 4 phần
Trang 10Trang 12
Chương 1: Giới thiệu
Chương này hệ thống lại lịch sử phát triển của Internet và bộ giao thức TCP/IP, các ưu, nhược điểm của bộ giao thức này như tự thích ứng với đường truyền, chia sẻ công bằng hay không đảm bảo chất lượng dịch
vụ QoS, hiện tượng đồng bộ toàn cầu Sau đó so sánh với một số giao thức phổ biến khác như UDP, RTP và trình bày giải pháp cải thiện hiệu suất của ứng dụng Multimedia trong đường truyền có dây và đường truyền không dây
Chương 2: Cơ chế điều khiển lưu lượng trong giao thức WLDA+
Chương này trình bày về các cơ chế, kỹ thuật điều khiển lưu lượng
và tránh tắc nghẽn của giao thức TCP truyền thống, những đặc trưng lỗi của đường truyền không dây và các cải tiến cho mạng hỗn hợp như I-TCP, snoop-TCP và cải tiến cho mạng hỗn hợp có các ứng dụng Multimedia như giao thức WLDA+
Chương 3: Đánh giá hiệu suất giao thức mạng
Chương này giới thiệu một vài phương pháp đánh giá hiệu suất giao thức mạng như phương pháp đánh giá bằng mô hình toán học (lý thuyết hàng đợi) hay phương pháp đánh giá dựa trên việc đo trên mạng thực và lựa chọn phương pháp đánh giá hiệu suất cho giao thức WLDA+
Trong chương này, chúng tôi cũng đề cập đến vấn đề đảm bảo chất lượng dịch vụ QoS, đặc biệt là với các ứng dụng Multimedia
Chương 4: Đánh giá hiệu suất WLDA+ bằng mô phỏng
Chương này tập trung vào việc sử dụng phần mềm mô phỏng mạng NS2, xây dựng mô hình mô phỏng phục vụ cho luận văn, thực hiện một
số mô phỏng để đánh giá giao thức nhằm thấy được hiệu quả sử dụng mạng, phân biệt lỗi đường truyền và tính cân bằng trong giao thức WLDA+
Kết luận và Phương hướng nghiên cứu tiếp theo
Trang 11Trang 13
Chương 1 Giới thiệu
I Internet và các mô hình tham chiếu
1 Lịch sử phát triển mạng Internet và bộ giao thức TCP/IP
Mạng công cộng toàn cầu Internet đã trở nên một thành phần không thể thiếu trong đời sống xã hội ở thế kỷ này Xuất phát từ nhu cầu thực tế, khi các ngành công nghiệp phát triển nhanh chóng, các máy móc trở nên hiện đại phục vụ rất hữu ích cho đời sống của con người và việc điều khiển những chiếc máy, dây chuyền hiện đại với kích thước khổng
lồ như thế không còn đơn giản với những thao tác bằng tay của con người, và máy với nhiệm vụ tính toán hay gọi tắt là máy tính, máy điều khiển lần đầu tiên xuất hiện trong những công xưởng lớn hay trong những môi trường quan trọng của các Quốc gia Kế theo là sự đòi hỏi của việc chia sẻ thông tin giữa các máy tính đó đã dẫn tới sự hình thành mạng máy tính, liên mạng máy tính trong phạm vi toàn cầu để trở thành một mạng thông tin lớn nhất: Internet Ban đầu, vào những năm 60 mạng được hình thành trong phòng thí nghiệm được Robert LG đề xuất, cơ quan quản lý
dự án nghiên cứu phát triển ARPA thuộc Bộ Quốc phòng Mỹ đã liên kết các mạng tại 4 địa điểm đầu tiên tạo thành mạng WAN có tên là ARPANET Năm 1983 giao thức TCP/IP được coi như một chuẩn đối với ngành quân sự Mỹ và các máy của mạng Arpanet phải tuân thủ chuẩn này Với những ưu điểm nổi bật của bộ giao thức này, đặc biệt là khả năng liên kết các mạng khác nhau một cách dễ dàng nó đã trở thành bộ giao thức phổ biến cho mạng Internet ngày nay
Internet có thể hiểu theo một nghĩa nào đó như là tập hợp của nhiều mạng con, tạo thành một liên mạng sử dụng bộ giao thức TCP/IP, với mỗi một thực thể tham gia vào mạng được cấp một địa chỉ IP duy nhất được công bố trên toàn thế giới mạng Mọi lĩnh vực như chính trị, xã hội, thể
Trang 12Trang 14
thao, văn hóa, học tập, nghiên cứu v.v đều có thể xuất hiện trên Internet
và trở thành một phần tất yếu của cuộc sống con người hiện đại ngày nay, đồng thời làm cho nhu cầu ứng dụng truyền thông đa phương tiện tăng lên không ngừng với một tốc độ chóng mặt
2 Các mô hình tham chiếu
Để thuận tiện trong việc lập trình giao thức, xử lý thông tin và giảm độ phức tạp khi thiết kế hay trong quá trình xử lý lỗi, mô hình mạng máy tính nói chung được chia thành nhiều tầng (layer) hay còn gọi là các mức hoặc các lớp Mỗi tầng được xây dựng dựa trên tầng ngay bên dưới, còn tầng bên dưới thì thực hiện các chức năng riêng của nó rồi chuyển kết quả thực hiện lên tầng trên Tầng trên lại dựa vào những kết quả này để thực hiện chức năng của chúng mà không cần quan tâm đến chi tiết tại sao lại có những kết quả mà nó đã nhận được Mặt khác, để có sự thống nhất của tất cả các nhà sản xuất thiết bị mạng trên toàn thế giới, hay nói đúng hơn để cho các sản phẩm mạng của các hãng khác nhau có thể liên lạc, làm việc một cách đơn giản với nhau cần có các chuẩn truyền thông chung nhất hay gọi là các mô hình tham chiếu Có hai mô hình phổ biến
là ISO OSI và TCP/IP
2.1 Mô hình OSI:
Mô hình OSI (Open system interconnection – Mô hình kết nối các
hệ thống mở) là một cơ sở dành cho việc chuẩn hoá các hệ thống truyền thông, nó được nghiên cứu và xây dựng bởi ISO Vào những năm 70, việc nghiên cứu về mô hình OSI đã được bắt đầu Đến năm 1984, mô hình tham chiếu OSI chính thức được đưa ra giới thiệu
Đúng như tên gọi, mô hình 7 lớp OSI chỉ là mô hình tham chiếu chứ không phải là một mạng cụ thể nào Theo mô hình này, hai thực thể thuộc hai tầng đồng mức khi liên kết với nhau phải sử dụng một giao thức chung Giao thức ở đây tạm hiểu đơn giản là quy định, phương tiện để
Trang 13Trang 15
các tầng có thể giao tiếp được với nhau, tương tự như hai người thuộc hai Quốc gia sử dụng ngôn ngữ khác nhau muốn hiểu nhau thì cần có một ngôn ngữ chung vậy Trong mô hình OSI có hai loại giao thức chính được áp dụng là: giao thức có liên kết (connection - oriented) và giao thức không liên kết (connectionless)
Giao thức có liên kết: là trước khi truyền số liệu, hai thực thể trên
hai tầng đồng mức cần thiết lập một liên kết logic và các gói tin được trao đổi thông qua liên kết này
Giao thức không liên kết: không cần thiết lập liên kết logic trước
khi truyền số liệu và mỗi gói tin được truyền độc lập với các gói tin trước hoặc sau nó
Mô hình OSI
Hình 1.1 Mô hình OSI
Các tầng được xây dựng dựa trên một số nguyên tắc chung:
Mỗi tầng được tạo ra khi có nhu cầu phải có một sự trừu tượng mới
Mỗi tầng tương ứng với một chức năng nhất định
Trang 14Tầng ứng dụng (Application layer – lớp 7): Là tầng trên cùng
trong mô hình 7 lớp, quy định giao diện giữa người sử dụng và môi trường OSI, cung cấp các phương tiện cho người sử dụng truy cập và sử dụng các dịch vụ của mô hình OSI, Giao thức được ứng dụng nhiều nhất
là giao thức HTTP, là cơ sở của WWW, ngoài ra còn một số giao thức phổ biến khác như SMTP, Telnet, FTP … Phục vụ các ứng dụng truyền tệp, đăng nhập từ xa, hay Email
Tầng trình diễn (Presentation layer – lớp 6): Là tầng có chức
năng chuyển đổi các thông tin từ cú pháp người sử dụng sang cú pháp để truyền dữ liệu, đồng thời tầng này giải quyết các vấn đề liên quan đến ngữ nghĩa, cú pháp, ngoài ra nó có thể nén dữ liệu truyền và mã hóa chúng trước khi truyền để bảo mật, tăng hiệu suất Một số chuẩn định dạng dữ liệu của lớp trình diễn dữ liệu là GIF, JPEG, MP3, MPEG
Tầng phiên (Session layer – lớp 5): Là tầng thực hiện việc thiết
lập, duy trì và hủy bỏ các phiên làm việc giữa hai hệ thống, hai máy tính khác nhau Tầng phiên cũng quy định một giao diện ứng dụng cho tầng vận chuyển sử dụng Các giao thức trong lớp 5 sử dụng là NFS, X- Window System, ASP
Tầng vận chuyển (Transport layer – lớp 4): Là tầng có chức năng
xác định địa chỉ trên mạng, cách thức chuyển giao gói tin trên cơ sở trực tiếp giữa hai đầu cuối, đảm bảo truyền dữ liệu tin cậy (end-to-end) Tầng vận chuyển còn có các chức năng như điều khiển luồng, khắc phục lỗi và
Trang 15Trang 17
kiểm soát tắc nghẽn, thực hiện phân kênh, ghép kênh Các giao thức phổ biến sử dụng ở tầng này bao gồm: TCP, UDP, SPX
Tầng mạng (Network layer – lớp 3): Là tầng điều khiển sự hoạt
động của mạng, có nhiệm vụ tìm đường cho các gói tin trong mạng (định tuyến), các gói tin này có thể phải đi qua nhiều chặng trước khi đến được đích cuối cùng Tầng này còn có chức năng xử lý giao tiếp giữa các mạng, một số giao thức phố biến ở lớp 3 là: IP, RIP, IPX, OSPF, AppleTalk…
Tầng liên kết dữ liệu (Data link layer – lớp 2): Nhiệm vụ của tầng
liên kết dữ liệu là thiết lập, duy trì, ngắt các liên kết dữ liệu, xác định cơ chế truy nhập thông tin trên mạng, các dạng thức chung trong các gói tin, đóng gói và phân phát các gói tin, kiểm soát lỗi truyền, điều khiển truy cập môi trường truyền thông
Tầng vật lý (Physical layer – lớp 1): Tầng vật lý cung cấp phương
thức truy cập để truyền các dòng Bit và không xét đến ý nghĩa, cấu trúc của chúng, sử dụng chuẩn về điện, ghép nối cơ khí, dây cáp, đầu nối, kỹ thuật nối mạch điện, điện áp, tốc độ cáp truyền dẫn và các mức nối kết giữa các thiết bị truyền thông
2.2 Mô hình TCP/IP
Bộ Quốc Phòng Mỹ tạo ra mô hình TCP/IP với mong muốn mạng vẫn có thể hoạt động cho dù có chiến tranh hạt nhân, những gói tin vẫn có thể truyền được đến đích trong điều kiện có một số đường truyền hoặc bộ định tuyến (router) không hoạt động được, các giao thức được cài đặt tại các router sẽ tự động tìm đường đi cho các gói tin Mô hình TCP/IP có 4 lớp: Application, Transport, Internet, network
Trang 16Trang 18
Hình 1.2 Mô hình TCP/IP
Tầng ứng dụng: Các giao thức lớp cao đã bao gồm những chi
tiết của tầng phiên và tầng trình diễn ví dụ: DNS, TFTP, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, TELNET, RTP
Tầng giao vận: Tầng này thực hiện vận chuyển dữ liệu kiểu đầu
cuối - đầu cuối (end-to-end) và một một số vấn đề : điều khiển luồng, độ tin cậy hay điều chỉnh lỗi TCP, UDP
Tầng Internet: Mục đích của tầng này là gửi các gói tin từ bất kỳ
một mạng nào trong liên mạng tới đích Các giao thức chính của tầng này gồm có: IP (IPv4, IPv6), ARP và RARP
Host-to-network: Tầng này quy định các liên kết vật lý, cấu trúc
khung, truy cập đường truyền: Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, Frame Relay, SMDS
Cách nhìn các tầng cấp theo quan niệm: hoặc là cung cấp dịch vụ, hoặc là sử dụng dịch vụ, là một phương pháp trừu tượng hóa để cô lập các giao thức của tầng trên, tránh việc phải quan tâm đến các chi tiết của việc thực hiện các dịch vụ Sự trừu tượng hóa này cho phép những tầng trên cung cấp những dịch vụ mà các tầng dưới không thể làm được, hoặc
cố ý không làm Chẳng hạn IP được thiết kế với chức năng chính là chuyển tiếp các gói tin hướng đến đích với độ tin cậy thấp, và được gọi là giao thức phân phát với khả năng tốt nhất (thay vì với "độ tin cậy cao" hoặc "đảm bảo nhất") Điều đó có nghĩa là tất cả các tầng giao vận đều
Trang 17Trang 19
phải lựa chọn, hoặc là cung cấp dịch vụ đáng tin cậy, hoặc là không và ở mức độ nào UDP đảm bảo sự toàn vẹn của dữ liệu bằng cách dùng kiểm tra tổng (checksum), song không đảm bảo sự phân phát dữ liệu tới đích; TCP cung cấp cả hai, sự toàn vẹn của dữ liệu, và đảm bảo sự phân phát
dữ liệu tới đích bằng cách truyền tải lại gói dữ liệu, cho đến khi nơi nhận nhận được gói dữ liệu
Tuy nhiên, vẫn phải khẳng định lại rằng: các mô hình tham chiếu chỉ là những mô hình để tham chiếu khi phát triển giao thức mà thôi, nó không rõ ràng và chi tiết như đặc tả của từng giao thức
II Một số giao thức phổ biến
Cũng như thế giới thực, các thiết bị tham gia vào mạng máy tính muốn giao tiếp được với nhau thì chúng phải hiểu nhau, biết được thông tin mà những thiết bị khác gửi cho chúng Nhìn theo một góc độ khác, thiết bị mạng phải hiểu các qui định như khuôn dạng số liệu, phương thức trao đổi số liệu giữa các thực thể trong cùng một mức chức năng (trong các mô hình tham chiếu) Tập hợp các quy định đó được gọi là giao thức Tuy nhiên, người ta không qui định một cách chi tiết việc thực hiện cụ thể các qui định trên như thế nào trong một hệ thống Giao thức và các thực thể tham gia trao đổi số liệu tạo thành “máy giao thức” (Protocol MachineProtocol Engine) Ta có thể liệt kê một số qui định cụ thể về giao thức là:
- Cấu trúc khung gói, bao gồm: các số liệu đồng bộ và số lượng byte tương ứng; các số liệu điều khiển trong trường tiêu đề số lượng byte tương ứng; độ dài số liệu giao thức; qui tắc tính byte kiểm tra để bảo vệ
số liệu, phát hiện lỗi
- Phương thức trao đổi số liệu: hướng kết nối hoặc không kết nối;
Trang 18Trang 20
- Trình tự thời gian các giai đoạn trao đổi số liệu theo phương thức
“hướng kết nối” như: thiết lập kết nối, trao đổi số liệu, và giải phóng kết nối
- Phương thức phát hiện và xử lý lỗi truyền số liệu…
Tiếp theo, chúng ta sẽ xem xét một số giao thức phổ biến hiện nay
là giao thức TCP, UDP và RTP
1 Giao thức TCP
Giao thức TCP là giao thức được thiết kế nhằm trao đổi số liệu một cách đảm bảo, tin cậy và chính xác giữa hai thực thể cuối trong mạng TCP vừa quản lý đúng số tuần tự tính theo byte của dòng số liệu, đồng thời phải tối ưu hóa giải thông của mạng bằng cách giám sát và điều khiển lưu lượng từ thực thể gửi tới thực thể nhận Giao thức TCP có những đặc điểm sau:
Thiết lập và kết thúc kết nối: TCP là giao thức hướng kết nối, có nghĩa là hai ứng dụng sử dụng giao thức TCP cần thiết lập kết nối TCP với nhau trước khi chúng có thể truyền số liệu Trước khi truyền số liệu, ứng dụng gửi một thông điệp đồng bộ (SYN) Ứng dụng gửi phải nhận được biên nhận (gói SYN trả lời) trước khi được phép truyền số liệu tới thực thể nhận Để kết thúc kết nối các thực thể TCP gửi/nhận tại trạm cuối cần trao đổi với nhau thông điệp FIN
Tính tin cậy: Để đảm bảo liên lạc tin cậy, thực thể nhận biên nhận tất cả các gói tin nhận được; Thực thể gửi cần lưu lại tại bộ nhớ cục bộ một bản copy của mỗi gói tin gửi đi cho đến khi nhận được một biên nhận
từ thực thể nhận chỉ ra rằng việc nhận đúng đã xảy ra tại thực thể nhận Nếu gói tin không được biên nhận trong một khoảng thời gian tout thì gói tin được xem như bị mất và được truyền lại Tout phải được đặt là một giá trị thích hợp cho phép phát hiện nhanh gói tin bị mất đồng thời tránh
Trang 19Trang 21
trường hợp gói tin được truyền lại, trong khi gói tin đó vẫn đang trên đường truyền trên mạng
Jacobson đề xuất cách tính tout như sau:
Với tmeasure là số đo độ trễ (thời gian khứ hồi) tính được đối với gói
tin được biên nhận mới nhất, tRTT là độ trễ toàn phần trung bình, n là độ
mịn hay độ lệch của thời gian khứ hồi và tout là ước lượng giá trị t_out sau khi TCP truyền lại một gói tin được báo là chưa biên nhận Thời gian
khứ hồi tmeasured được ước lượng như là khoảng thời gian giữa việc gửi gói tin và việc nhận biên nhận cho gói đó Hệ số khuếch đại của bộ lọc thông thấp (Low Pass Filter) - thường được đặt là 0.125, thường được đặt là 0,25 và thường được đặt giá trị là 2, nhưng trong phiên bản Reno TCP được đặt là 4
Tự thích ứng với đường truyền: TCP có các cơ chế điều khiển lưu lượng thích ứng với đường truyền dựa trên cơ chế cửa sổ trượt có kích thước thay đổi được: dùng một cửa sổ truyền một lúc một số gói tin, tăng kích thước cửa sổ đến tình trạng chớm tắc nghẽn thì có cơ chế điều khiển thích hợp với trạng thái mạng
Chia sẻ công bằng đường truyền: TCP tự động tối ưu đường truyền bằng cách chia sẻ công bằng các luồng dữ liệu trên đường truyền đó Nếu băng thông là 10MBs, nếu có 10 luồng TCP cùng chạy qua đường truyền này, mỗi luồng sẽ nhận được một dải thông là 1MBs
Với những ưu điểm này TCP đã trở thành một giao thức chiếm ưu thế, có đến hơn 90% lưu lượng truyền tải trên Internet là bằng giao thức TCP Tuy nhiên, nó cũng có những hạn chế nhất định:
Trang 20Trang 22
Hiện tượng đồng bộ toàn cầu: Do tính chất đảm bảo tin cậy, khi phát hiện ra tắc nghẽn thì TCP giảm tốc độ truyền xuống mức thấp nhất - ứng với cửa sổ gửi bằng 1 hoặc xuống bằng
½ tốc độ đang truyền tùy thuộc vào thuật toán được cài đặt cho giao thức Trong một trường hợp cụ thể nào đó, tất cả các kết nối TCP sẽ cùng đồng thời giảm tốc độ truyền xuống mức thấp nhất, dẫn đến tình trạng đồng bộ toàn cầu, nên hệ số sử dụng băng thông của đường truyền sẽ thấp, thậm chí giảm đến 0 trong một khoảng thời gian nhất định
Hiện tượng backoff: Hay còn được gọi là hiện tượng rút lui của tốc độ truyền Để đảm bảo tính tính tin cậy truyền tin, khi thời gian time-out đã hết TCP sẽ lập tức phát lại gói tin Tuy nhiên, có thể vì một lý do nào đó, gói tin vẫn đang ở trong mạng dẫn đến tình trạng mạng bị mất cân bằng Để tránh trường hợp đó, giao thức TCP phản ứng lại khi không nhận được ACK là bật tout bằng 2 lần giá trị tout được sử dụng trước đó rồi gửi lại gói tin đó Thông thường backoff tối đa
là 10 lần Và khoảng thời gian rút lui này cũng ảnh hưởng không nhỏ đến hiệu suất của TCP trên mạng
Không đảm bảo QoS: Do tính chất đảm bảo tin cậy của giao thức TCP nên trong các ứng dụng cần đảm bảo tính kịp thời của việc vận chuyển lưu lượng tới một mức nào đó thì TCP không đáp ứng được cho dù có triển khai các giải thuật QoS trong các thiết bị mạng trung gian Ví dụ trong môi trường Multimedia, việc chậm trễ là không thể chấp nhận được trong việc truyền hình ảnh và đặc biệt là không chấp nhận được trong truyền Voice, tiếng nói của một người có thể trở thành tiếng nói của người khác hoặc không thể nhận ra được nếu tín hiệu bị trễ vượt ngưỡng cho phép
Trang 21Trang 23
2 Giao thức UDP:
Là giao thức vận chuyển không hướng kết nối Giao thức UDP có những ưu điểm như thực hiện đơn giản, nhanh nên các dịch vụ như tra cứu DNS hay một phần dịch vụ thư điện tử sử dụng chúng Đặc biệt trong truyền tin multicast hay các ứng dụng multimedia có thể tận dụng những đặc điểm này để triển khai có hiệu quả Tuy nhiên, UDP lại có những nhược điểm như không có cơ chế kiểm soát số tuần tự phát, số tuần tự thu
và kiểm tra lỗi Và đặc biệt có thể gây ra sự mất cân bằng về chia sẻ đường truyền với các giao thức khác khi cùng truyền trên một đường đi
Đó là vì: giao thức UDP không có tính tự thích ứng với đường truyền, nếu nguồn sinh lưu lượng luôn có yêu cầu vận chuyển, UDP sẽ truyền liên tục các gói tin lên đường truyền mà không cần quan tâm đến việc gói tin có đến đích hay bị xung đột hay không, trong khi các giao thức khác như TCP lại rút lui khi gặp hiện tượng tắc nghẽn, xung đột Do đó, các ứng dụng của TCP có thể bị mất cơ hội truyền tin Mặc dù vậy, với thực
tế là chất lượng và dung lượng các đường truyền liên tục được nâng cao thì ngày nay có đến 99% các gói số liệu UDP vẫn được truyền đến đích
Cấu trúc một gói số liệu UDP cũng có phần tiêu đề giả bao gồm địa chỉ nguồn, địa chỉ đích… nhằm giúp thực thể IP đóng gói số liệu IP tương ứng để chuyển tiếp trong mạng Độ dài trong phần tiêu đề giả cho biết độ dài toàn bộ gói số liệu UDP trong đó có cả phần tiêu đề giả Độ dài trong phần tiêu đề của gói số liệu UDP cho biết độ dài số liệu chứa trong trường số liệu của gói UDP Số hiệu cổng nguồn và số hiệu đích cho biết địa chỉ nguồn và địa chỉ đích của các thực thể ứng dụng sử dụng giao thức UDP Byte kiểm tra được tính cho cả gói số liệu UDP và phần tiêu
đề giả Gói số liệu UDP được tự động loại bỏ khi bị lỗi; chỉ những gói số liệu UDP không bị lỗi mới được chuyển cho các thực thể ứng dụng
Trang 22Trang 24
3 Giao thức RTP
Giao thức TCP cùng với các thuật toán cải tiến hiệu quả của phương pháp cửa sổ trượt rất hữu ích và đang là một giao thức không thể thiếu trong mạng truyền số liệu ngày nay Tuy nhiên, để truyền tín hiệu thoại hay Video conference thì giao thức này tỏ ra kém hiệu quả do tính năng phát lại có thể gây nên độ trễ vượt mức chấp nhận được Đồng thời TCP cũng không có khả năng thực hiện truyền theo phương thức multicast, có nghĩa là nếu có n thực thể tham gia thì cần có NxN kết nối Ngoài ra, cơ chế kiểm soát luồng, điều khiển tắc nghẽn của TCP trong môi trường chia sẻ còn có thể gây ra hiện tượng đồng bộ toàn cầu trong toàn mạng dẫn đến giảm đáng kể hiệu năng của mạng như đã trình bày ở trên Giao thức UDP có một vài ưu điểm hơn TCP trong các ứng dụng Multimedia nhưng lại gây ra sự mất cân bằng đối với các luồng dữ liệu khác trên cùng đường đi và tính toàn vẹn của dữ liệu lại quá thấp Giao thức RTP (Real time transport protocol) được trình bày trong RFC 1889
là giao thức được xem như ở tầng trên của tầng giao vận và tận dụng được những ưu điểm của UDP đồng thời có những ưu điểm của TCP, giúp các thuật toán có thể nhận thông tin và xử lý truyền dữ liệu một cách hiệu quả Mục đích của giao thức này là làm cho việc phân tán, giám sát, xây dựng lại, đồng bộ các luồng dữ liệu (data streams) được dễ dàng RTP được sử dụng rộng rãi trong các ứng dụng Network’s Real player, Apple’s Quicktimes và Microsoft Net meeting
RTP cung cấp những chức năng vận chuyển mạng kiểu end-to-end cho những ứng dụng thời gian thực như audio, video hay dữ liệu mô phỏng qua các dịch vụ mạng unicast như các giao thức khác Ngoài ra, RTP còn có thể cung cấp các dịch vụ multicast như UDP Tuy nhiên, RTP không cung cấp bất kỳ một kỹ thuật bảo đảm về thời gian, đảm bảo
về chất lượng dịch vụ hay phân mảnh, kết hợp dữ liệu Nhưng dựa trên
Trang 23Hình 1.3 Phân loại giao thức
Phần dữ liệu mang dữ liệu thời gian thực - RTP
Hình 1.4 Cấu trúc gói RTP
Trong trao đổi số liệu, RTP được chia thành các phiên Một phiên làm việc của RTP là việc gửi và nhận dữ liệu RTP bởi một nhóm tham gia, mỗi một thành phần tham gia một phiên là một hoặc một cặp địa chỉ
Trang 24Trang 26
vận chuyển để liên lạc với một nhóm Một nguồn RTP được gán một số ngẫu nhiên 32bit được gọi là SSRC (synchronization source identifier), một điểm phải phân ra nhiều luồng trong mỗi phiên khác nhau với số SSRC khác nhau Một thông điệp RTP cơ bản gồm: SSRC của thực thể gửi, số tuần tự gửi dấu thời gian và dữ liệu
Một phiên làm việc của RTP bao gồm nhiều thực thể tham gia Các
dữ liệu Audio và video được truyền như những phiên riêng biệt
Hình 1.5 Phiên làm việc RTP
Trong thành phần của giao thức RTP quy định khi triển khai có 2 khái niệm cần lưu ý: Mixers và translator
Hình 1.6 Hoạt động của Mixer và Translator
Khác nhau cơ bản giữ Mixer và translator là Mixer làm thay đổi SSRC còn Translator thì không
Phần mang thông tin điều khiển-RTCP:
Đây chính là ưu điểm nổi bật của giao thức RTP Với phần giao thức RTCP được thêm vào trong việc định nghĩa giao thức RTP làm giao
Trang 25Trang 27
thức này có khả năng chuẩn đoán các lỗi trong cây Multicast phân tán và
hỗ trợ điều khiển tắc nghẽn Thông điệp RTCP là một chồng các thông điệp và các thông này có thể gửi tới các thành viên thông qua một thông điệp RTCP phức hợp bao gồm nhiều RTCP
Thực thể gửi và thực thể nhận trong phiên làm việc RTP tuần tự sinh ra các báo cáo thống kê của các phiên khác nhau với các loại thông điệp:
• SR (Sender report): tích lũy frame, đếm byte, thời gian Thống kê những thực thể tham gia mà được active thành thực thể gửi
• RR (Receiver report): số gói tin bị mất, tốc độ truyền Thống kê những thực thể tham gia mà không được active thành thực thể gửi
• SDES: Source description, user, hostname, email… gọi là CNAME
• Bye message: Dùng update bảng SSRC và kết thúc của những đối tượng tham gia
Giao thức RTCP tính toán số gói tin bị mất dựa trên cách thức sau:
Hình 1.7 Cách tính gói tin bị mất của RTCP
Có thể hiểu đơn giản là số gói tin bị mất bằng số gói tin mong muốn nhận được trừ đi số gói tin thực tế nhận được hoặc dựa vào những khoảng trống số tuần tự trong các gói tin liên tiếp
Giao thức RTCP tính toán độ trễ toàn phần RTT như sau:
Trong đó:
number of packets lost= number packets expected – number packets
received
number of packets expected=EHSNR- initial sequence number
EHSNR= extended highest sequence number received= number of sequence number cycles x 216 + last sequence number received
Trang 26Trang 28
Hình 1.8 Cách tính RTT của RTCP
Tức là lấy thời gian mà thực thể gửi nhận được reception report (thời gian sau một phiên) trừ đi thời gian mà thực thể nhận nhận được Sender report (SR) cuối cùng và thời gian xử lý để truyền gói tin reception report (RR) cho thực thể gửi
Với việc phát hiện tình trạng mất dữ liệu và thời gian trễ toàn phần như trên, thực thể gửi sẽ có thể điều chỉnh tốc độ gửi dữ liệu một cách thích hợp trên đường truyền
Để tăng hiệu suất truyền tin, những gói tin RTP cũng được nén để truyền dữ liệu được hiệu quả hơn, ví dụ như thiết bị của Cisco nén: Một header RTP khoảng 12 byte, header UDP khoảng 8 byte và header IP khoảng 40byte Sau khi nén thì header của RTP/UDP/IP chỉ còn 2-5 byte Tất nhiên, chúng ta cũng phải mất chi phí cho việc giải nén ở bên thực thể nhận
Qua việc tìm hiểu các ưu nhược điểm của các giao thức chúng ta thấy một số điểm nổi lên là mặc dù những kết nối sử dụng giao thức TCP vẫn là sự chia sẻ chính của lưu lượng Internet Tuy nhiên, sự phát triển của các dịch vụ đa phương tiện mang yếu tố thời gian thực cũng phát triển không ngừng như IP-telephony, Video conferencing, xem truyền hình trực tuyến hay liên lạc theo nhóm Các ứng dụng này luôn đòi hỏi một cam kết về QoS thật tốt, không chỉ đơn thuần chỉ là tính tin cậy như các ứng dụng về dữ liệu khác Do đó, chỉ TCP là không thể đáp ứng được Với giao thức UDP truyền nhanh, độ trễ ít nhưng lại không đưa ra bất kỳ một độ tin cậy hay kỹ thuật điều khiển tắc nghẽn nào Đồng thời,
estimated round-trip-time = RR received –SR sent – delay
RR received = time a source received this reception report
SR sent = last SR timestamp received field
delay=delay since last SR report field
Trang 27Trang 29
việc triển khai những giao thức không điều khiển tắc nghẽn như UDP trên mạng có phạm vi rộng như Internet, có thể dẫn đến kết quả mất cân bằng lớn với những luồng TCP tương tranh đang chiếm đa số giao dịch Cụ thể
là, khi thực thể gửi TCP phản ứng lại trạng thái tắc nghẽn bằng cách giảm tốc độ truyền dữ liệu vào đường truyền, còn thực thể gửi UDP thì không làm việc đó dẫn đến các luồng UDP dần chiếm quyền truyền tin trên các trục giao thông mạng Cuối cùng là sự phát triển của công nghệ mạng không dây phục vụ cho các thiết bị di động cũng ảnh hưởng rất lớn đến các hiệu suất mạng
Vậy giải pháp cho những vấn đề trên là gì ? ban đầu một giải pháp trong mạng có dây đã được đề xuất: nâng cấp các hệ thống xử lý hàng đợi, đảm bảo QoS Các ứng dụng dữ liệu thông thường vẫn sử dụng TCP, các ứng dụng về Multimedia vẫn triển khai trên giao thức UDP, đồng thời
áp dụng các kỹ thuật để đảm bảo tính tin cậy theo cách thức tương tự TCP nhằm cải tiến hiệu suất của các ứng dụng dựa trên UDP Các giải pháp này có mục tiêu không chỉ nhằm tránh sự quá tải mạng mà còn hướng tới sự cân bằng với những kết nối TCP tương tranh Nói cách khác, nếu một kết nối TCP và một luồng điều chỉnh với những cách thức truyền, điều khiển tắc nghẽn tương tự TCP sẽ có độ trễ và sự mất dữ liệu như nhau và sẽ nhận được sự chia sẻ băng thông bằng nhau Tuy nhiên, nếu áp dụng giải pháp này có thể hữu ích trong mạng có dây thuần túy, nhưng khi đưa vào môi trường mạng hỗn hợp sẽ không đạt được hiệu quả tối đa do trong mạng có dây thì việc một gói tin bị mất được xem như tình trạng quá tải mạng hoặc tắc nghẽn mạng nhưng với môi trường mạng không dây, mất dữ liệu có thể xuất hiện vì những thành phần kênh kém hoặc hỏng Ngoài ra, do tính cơ động của mạng không dây khi một node chuyển từ điểm truy cập này đến một điểm truy cập khác, gói tin vẫn được truyền đến điểm truy cập cũ, dẫn đến mất gói tin Nên áp dụng các
kỹ thuật của mạng cố định vào trong môi trường mạng hỗn hợp có dây và
Trang 28Trang 30
không dây thì hiệu quả chắc chắn sẽ không cao Do đó, để giải quyết vấn
đề này cần đến một số giải pháp mà có thể điều khiển lưu lượng một cách hiệu quả nhất trong mạng hỗn hợp
Trong mạng mạng hỗn hợp lại có thể phân thành hai loại ứng dụng,
một là chỉ truyền dữ liệu (không có video, voice) có một số giải pháp dựa trên giao thức TCP như I-TCP, TCP-snooping, Mobile-TCP Hai là với mạng hỗn hợp truyền Multimedia thì việc áp dụng lược đồ WLDA+ là một trong những lựa chọn, kỹ thuật của lược đồ này sẽ được trình bày chi tiết hơn trong phần tiếp theo và là một nội dung chính mà luận văn muốn hướng tới
Trang 29Trang 31
Chương 2 Cơ chế điều khiển lưu lượng
I Phát hiện lỗi và điều khiển khắc phục lỗi
1.Tổng quan
Trong mạng máy tính, nếu dữ liệu được truyền từ bên gửi sang bên nhận nhưng bên nhận không thể xử lý được do tín hiệu đã bị biến dạng hoặc bị lỗi là điều không chấp nhận được Chính vì vậy, việc nắm bắt về các kỹ thuật bảo vệ, phát hiện, khắc phục lỗi là điều rất cần thiết Nhưng nếu chỉ quan tâm tới việc đảm bảo tính đúng đắn của dữ liệu mà không quan tâm tới khả năng truyền tải của các thiết bị truyền dẫn thì lại là một thiếu sót lớn Nếu các dữ liệu được gửi vào đường truyền một cách liên tục, không quan tâm đến tình trạng mạng thì tới một thời điểm nào đó, đường truyền sẽ bị quá tải và không có khả năng vận hành tiếp được nữa Thực tế điều này cũng đã xảy ra, trong lịch sử phát triển của Internet, sự
cố nghiêm trọng đầu tiên là sự sụp mạng do tắc nghẽn xảy ra vào tháng 10/1986, thông lượng vận chuyển qua mạng trở về giá trị gần bằng không Để tránh hiện tượng như vậy, việc nghiên cứu nhằm tránh tắc nghẽn hay điều khiển các lưu lượng dữ liệu được truyền vào trong mạng trở nên cấp thiết V Jacobson đã tìm ra nguyên nhân và chỉ rõ [6]: Để có thể tránh tắc nghẽn thì các thực thể gửi và nhận tham gia truyền thông phải tuân theo các cơ chế điều khiển lưu lượng và điều khiển tắc nghẽn thường được gọi chung là điều khiển lưu lượng, đồng thời mạng cũng phải có phản ứng tích cực khi tắc nghẽn xảy ra hoặc có dấu hiệu sắp xảy
ra Vào tháng 11 năm 1988, ông đã công bố kết quả nghiên cứu khoa học trong bài báo có tên là “Congestion Avoidance and control”; sau khi phát biểu “Nguyên lý bảo toàn số lượng gói tin trong mạng”, ông đã chỉ rõ các điều kiện đảm bảo tình trạng cân bằng mạng, nghĩa là tình trạng mạng hoạt động bình thường và ổn định và đã được áp dụng trong giao thức
Trang 30Trang 32
TCP Nhờ vậy, mạng Internet vẫn đang hoạt động ổn định và hiệu quả Tuy nhiên, như luận văn đã đề cập, kỹ thuật này chưa đủ để cung cấp các dịch vụ tốt trong các trường hợp khác nhau mà cụ thể là trong truyền thông Multimedia
2 Cơ chế b ảo vệ, phát hiện và khắc phục lỗi
Như đã đề cập, trong trao đổi số liệu nói chung, vấn đề quan trọng nhất là đảm bảo tính đúng, tính chính xác của số liệu được trao đổi Trong truyền thông đa phương tiện (Multimedia), một trong các yêu cầu rất quan trọng là tính kịp thời, có thể chấp nhận một tỉ lệ lỗi nhất định trong các thông tin được trao đổi Thí dụ, trong liên lạc truyền thông, như nói chuyện điện thoại, lỗi của số liệu tiếng nói chỉ được phép ảnh hưởng đến chất lượng tiếng nói ở một mức độ nào đó có thể chấp nhận được, nghĩa
là người ta vẫn hiểu được nội dung thông tin cần trao đổi hoặc vẫn có thể biết được người đối thoại với mình là ai Nếu lỗi số liệu tiếng nói quá lớn, ảnh hưởng nghiệm trọng đến chất lượng tiếng nói, khiến người nghe không hiểu được nội dung thông tin cần trao đổi, thì cuộc gọi đó không chấp nhận được và giá trị truyền tin là bằng không
Vậy thì bản chất lỗi dữ liệu là gì? Như chúng ta đã biết số liệu máy tính là những số nhị phân 0 hoặc 1 và được gọi là các bit Giá trị của một bit bị thay đổi trong quá trình trao đổi số liệu từ “0” sang “1” hoặc ngược lại, đã có thể làm sai toàn bộ việc nhận đúng một gói số liệu Ví dụ: nếu một bít trong chuỗi bit đồng bộ bị thay đổi giá trị thì chuỗi bit đồng bộ không được nhận đúng là chuỗi bit đồng bộ nữa, khiến cho ký tự đầu tiên của gói số liệu không được nhận đúng, và điều đó cũng có nghĩa là toàn
bộ gói số liệu không được nhận đúng và coi như gói số liệu đã bị “mất” (packet lost) Như vậy, bản chất lỗi truyền số liệu chính là “lỗi bit” (bit error)
Trang 31Trang 33
Có nhiều nguyên nhân gây ra lỗi truyền số liệu như nhiễu trong môi trường truyền, lỗi do các thực thể tham gia mạng gây ra Trong đó nguyên nhân chính là ảnh hưởng của môi trường truyền dẫn đến chất lượng của tín hiệu được truyền trên môi trường truyền dẫn đó Tín hiệu được xét đến ở đây là tín hiệu nhị phân Mỗi đường truyền có một giới hạn về băng thông (frequency band) Trong trường hợp lý tưởng, đường truyền không có nhiễu, giữa băng thông của một đường truyền và tốc độ truyền số liệu trên đường truyền đó có quan hệ ràng buộc theo công thức Nyquist sau đây: V=2*B*log2M, trong đó V là tốc độ truyền số liệu, tính bằng bit/s, B là độ lớn băng thông của đường truyền, tính bằng Hz, M là
số mức tín hiệu (điện) biểu diễn thông tin Nếu sử dụng 2 mức tín hiệu điện, thì công thức trở thành V=2*B Tín hiệu được truyền “trung thực” trong giới hạn băng thông của một đường truyền, nghĩa là tuân thủ theo ràng buộc trên Tín hiệu được truyền “trung thực” được hiểu theo nghĩa là: tín hiệu được đưa vào ở đầu vào của đường truyền (tín hiệu phát) cũng chính là tín hiệu nhận được ở đầu ra của đường truyền đó (tín hiệu thu) Nếu tín hiệu được truyền với tốc độ v > 2B thì tín hiệu sẽ bị biến dạng, còn gọi là tín hiệu bị méo Và vì vậy không được tái tạo lại một cách chính xác như tín hiệu phát ra ở thiết bị cuối nguồn Lỗi tín hiệu thu được trong trường hợp này tạo ra lỗi bit Ngoài ra, năng lượng của tín hiệu bị suy giảm khi tín hiệu được truyền dẫn trên đường truyền cũng là một nguyên nhân dẫn đến sự biến dạng của tín hiệu Thông thường, năng lượng của tín hiệu trên đường truyền giảm theo hàm logarit, phụ thuộc vào tần số, khoảng cách trên đường truyền đó Sự suy giảm năng lượng của tín hiệu không chỉ làm giảm mức tín hiệu thu được ở thiết bị cuối đích, mà còn làm gảm tỷ số tín hiệu/tạp âm (S/N), khiến cho tín hiệu không được tái tạo lại đúng như tín hiệu phát ở thiết bị cuối nguồn Những yếu tố khác, ví dụ: nhiệt độ, độ ẩm, năng lượng, sống điện từ…
Trang 32Một đường truyền tốt là đường truyền có tỷ lệ lỗi bit pb ≤ 10-9, nghĩa là có không quá 1 bit bị lỗi trong tổng số 109
bit được truyền Một đường truyền có thể chấp nhận được là đường truyền có tỷ lệ lỗi bit BER hay xác suất lỗi bit pb ≤ 10-4, nghĩa là: có 1 bit bị lỗi trong tổng số 10-4
bit được truyền Dựa trên xác suất lỗi bit pb, người ta có thể xác định được xác suất lỗi gói số liệu pf
pf = 1 – (1 – pb )N trong đó N là độ dài của gói số liệu Trong trường hợp Npb<<1 ta có:
pf Npb
Có hai loại lỗi bit là lỗi bit đơn (single bit error) và lỗi bit chùm (error burst) Lỗi bit đơn là lỗi từng bit riêng biệt, xuất hiện một cách ngẫu nhiên trong cả gói số liệu Lỗi bit chùm là tập hợp nhóm các bit bị lỗi với một tỉ lệ vượt quá một ngưỡng xác định, xuất hiện liên tiếp trong
cả gói số liệu Một nhóm bit bị lỗi bắt đầu bằng một bit lỗi và kết thúc bằng một bit bị lỗi, các bit trong nhóm có thể bị lỗi liên tục hoặc không liên tục; giữa các nhóm bit bị lỗi phải tồn tại ít nhất là (B+1) bit không bị lỗi, trong đó B có độ dài là nhóm bit bị lỗi
Để bảo vệ số liệu và phát hiện lỗi bit trong quá trình truyền số liệu, người ta thêm vào số liệu cần phát một số thông tin dư thừa theo một quy luật nhất định khi phát và tái tạo lại các thông tin dư thừa này theo cùng quy luật khi thu Nếu thông tin dư thừa được bên nhận tái tạo lại không thay đổi so với thông tin dư thừa do bên gửi gửi đi, thì số liệu thu được không có lỗi; ngược lại, số liệu thu được có lỗi Việc khắc phục lỗi được
Trang 33Trang 35
thực hiện hoặc: a) tại thiết bị cuối đích, nếu phát hiện chính xác bit số liệu
bị lỗi, bằng cách thay đổi giá trị của bit số liệu bị lỗi; hoặc b) thiết bị cuối đích không báo kết quả nhận số liệu bị lỗi và thiết bị cuối nguồn phát lại (bản sao) gói số liệu bị lỗi Phương pháp a) có tên gọi là “Điều khiển khắc phục lỗi trước (FEC - Forward Error Correction)” thường được áp dụng cho đường truyền có độ trễ lan truyền tín hiệu lớn, ví dụ: đường truyền vệ tinh Việc sửa lỗi tại chỗ sẽ làm giảm đáng kể thời gian khắc phục lỗi do không phải phát lại gói số liệu bị lỗi Một số phương pháp điều khiển khắc phục lỗi trước thông dụng hiện nay là: phương pháp Hamming code, phương pháp Convolution code, phương pháp Reed-Solomom code Phương pháp “Điều kiện khắc lỗi sau (Backward Error Correction)” là phương pháp điều khiển khắc phục lỗi thường được áp dụng cho hệ thống truyền dẫn hữu tuyến, bao gồm hai bước: Bảo vệ, phát hiện lỗi và khắc phục, sửa lỗi trên cơ sở phát lại gói số liệu bị lỗi
Việc phát hiện lỗi ngày nay được sử dụng bởi một số phương pháp phổ biến như:
- Kiểm tra chẵn lẻ (Parity) theo ký tự
- Kiểm tra chẵn lẻ theo khối
- Mã dư vòng CRC (Cyclic Redundancy Code)
- Thông báo kết quả nhận số liệu: Yêu cầu thực thể phát phải đợi biên nhận của gói số liệu vừa gửi mới được phát gói số liệu tiếp theo Thông thường thực thể thu biên nhận cho từng gói số liệu Nếu nhận đúng nó sẽ biên nhận (Acknowledgement) gọi là biên nhận tích cực (positive acknowledgement) - ACK Còn ngược lại
sẽ thông báo NACK (negative acknowledgement) gọi là thông báo
“không tích cực” Tuy nhiên, việc quản lý này lại gây ra trễ trong việc truyền tin và quản lý phức tạp trong bộ đệm
- Phương pháp sử dụng số tuần tự: Trong hệ thống mạng, các gói tin có thể được truyền theo nhiều đường khác nhau nên đến thực
Trang 34Trang 36
thể thu vào các thời điểm khác nhau, vì vậy việc sử dụng số tuần tự (secquence number) được gắn cho từng gói số liệu là điều rất cần thiết
- Phương pháp sử dụng đồng hồ quản lý phát time-out: Nếu các gói tin được truyền đi mà không có biên nhận trở về thì thực thể phát sẽ phải truyền lại gói tin Do đó quản lý đồng hồ phát là một việc không thể thiếu Đồng hồ quản lý phát là một bộ đếm nhị phân đếm ngược được thiết lập một giá trị định trước sau khi gửi đi một gói tin, giá trị đồng hồ sẽ giảm dần đến 0 – time-out; Khi đó đồng
hồ tạo ra ngắt (interrupt) và kích hoạt một hành động nào đo Đồng
hồ time-out được tính lại sau mỗi lần nhận ACK hoặc NACK Việc xác định thời gian time-out cũng ảnh hưởng rất lớn, quyết định hiệu suất hoạt động của cơ chế điều khiển khắc phục lỗi
Vậy nguyên nhân gây lỗi, hay tắc nghẽn trong các hệ thống mạng
là do đâu? Có thể kể ra một số nguyên nhân:
- Thiết bị mạng có thể không xử lý được hết yêu cầu do bộ đệm nhỏ
- Tốc độ dữ liệu đầu vào lớn hơn tốc độ dữ liệu đầu ra
- Thời gian xếp hàng xử lý quá lớn
- Đường truyền kém chất lượng…
Chính vì những nguyên nhân gây ra sự tắc nghẽn này người ta phải đưa vào khái niệm về điều khiển tắc nghẽn hay điều khiển lưu lượng tránh tắc nghẽn
II Điều khiển lưu lượng, tránh tắc nghẽn
1 Cơ chế điều khiển lưu lượng
Là tập hợp các biện pháp nhằm giám sát và điều khiển tốc độ phát
số liệu của thực thể phát sao cho thực thể nhận luôn nhận đúng tất cả các
Trang 35sẽ bị loại bỏ cho dù các gói này có thể không bị lỗi Thực thể phát gửi lại
từ gói tin thứ N bị lỗi trở đi Giao thức cửa sổ trượt phát lại có chọn lọc (Selective Repeat) xử lý khá hiệu quả bằng cách chỉ phát lại những gói tin
bị hỏng
Cơ chế cửa sổ trượt giới hạn số byte được phát và quá trình phát lại
và sửa lỗi được giới hạn ngay trong mỗi khung cửa sổ
Kỹ thuật hàng đợi nhằm quản lý và cấp phát băng thông có sự ưu tiên cho các kênh truyền theo các tiêu chí khác nhau
Ngoài ra còn có phương pháp điều khiển ở mức ứng dụng, thực hiện trong các tiến trình tại hai đầu cuối, bên nhận và bên gửi
Xét một số kỹ thuật điều khiển lưu lượng trong giao thức TCP:
1.1 Một số khái niệm và thông số cơ bản
- Gói dữ liệu: Đơn vị cơ bản trong kỹ thuật truyền số liệu
- ACK: Thông tin xác nhận gói dữ liệu đã được truyền đến đích
- W(t): Độ lớn cửa sổ phát tại thời điểm t
- SMSS (Sender maximum segment size): Kích cỡ tối đa của một gói dữ liệu được gửi
Trang 36Trang 38
- RMSS (receiver maximum segment size) : Kích cỡ tối đa của gói dữ liệu mà thiết bị nhận có thể nhận, không bao gồm dữ liệu tiêu đề và các trường lựa chọn
- RWND (Received window): Giá trị cửa sổ bên nhận tại thời điểm đang xét
- CWND (Congestion window): Cửa sổ tắc nghẽn hay giá trị W(t) trong trường hợp có tắc nghẽn
- Flight Size : Số gói dữ liệu đã gửi nhưng chưa nhận được xác nhận bởi gói xác nhận ACK tương ứng
- Time out : Khoảng thời gian xác định gói tin có lỗi
- RTT : Thời gian khứ hồi, hay độ trễ toàn phần, đó là khoảng thời gian
để một gói tin đi đến đích và nhận lại ACK
- Slow Start : Cơ chế khởi động chậm trong điều khiển lưu lượng
- Congestion Avoidance : Giai đoạn tránh tắc nghẽn trong cơ chế điều khiển lưu lượng
- Threshold : Ngưỡng chuyển đổi từ giai đoạn khởi động chậm sang giai đoạn tránh tắc nghẽn
1.2 Điều khiển lưu lượng trong TCP
Việc sử dụng ACK để xác nhận gói tin đã đến đích hay chưa, ảnh hướng lớn đến hiệu suất mạng vì nhiều gói số liệu sẽ có nhiều gói ACK
Giao thức TCP cung cấp dịch vụ trao đổi dữ liệu tin cậy sử dụng cơ chế điều khiển lưu lượng kiểu đầu cuối - đầu cuối (end-to-end) không phục thuộc vào cơ chế điều khiển tắc nghẽn của mạng ở các mức thấp thấp hơn Giao thức này điều khiển tần suất truyền bằng cách giới hạn số gói xác nhận ACK được truyền Trong mỗi phiên làm việc, độ lớn cửa sổ phát W là số gói dữ liệu có thể truyền đi liên tiếp mà chưa có gói xác nhận ACK trả lời tương ứng Xét về mặt lý thuyết thì độ lớn cửa sổ phát càng lớn càng tốt, tuy nhiên thực tế thì không như vậy, độ lớn của sổ truyền ban đầu là thấp khi một kết nối được thiết lập, sau đó tăng dần lên
Trang 37Trang 39
nhằm tránh tắc nghẽn (cơ chế khởi động chậm) Quá trình sẽ tăng lên liên tục cho đến khi W đạt đến giá trị tối đa, tức là khi gặp lỗi hay khi nhận được gói xác nhận ACK yêu cầu phát lại, hay quá thời gian chờ tối đa cho phép, gọi chung là tình trạng mất dữ liệu, tắc nghẽn đã xảy ra Khi đó, độ lớn cửa sổ phát sẽ được giảm và quá trình truyền lại bắt đầu một chu kỳ mới
Khi bộ đệm kênh nhận có kích cỡ đủ lớn để có thể không cần quan tâm đến độ lớn của sổ nhận và kênh phát có bộ đệm rất lớn và có một kết nối, dữ liệu được ghi vào bộ đệm phát thành các đơn vị có độ dài cao nhất SMSS trước khi được truyền cho lớp mạng Tại thời điểm đầu tiên W(t) = SMSS, độ lớn một gói dữ liệu TCP gửi gói dữ liệu đầu tiên sau đó chờ gói xác nhận ACK tương ứng Nếu gói ACK đến trước thời điểm cho phép (timeout), độ lớn cửa sổ phát tăng lên một với mỗi gói xác nhận ACK nhận được và quá trình lặp lại cho đến khi W(t) bằng giá trị ngưỡng tránh tắc nghẽn (threshold)
Độ lớn cửa sổ phát tăng nhanh theo hàm mũ trong pha khởi động chậm, khi độ lớn cửa sổ phát tăng vượt quá giá trị ngưỡng threshold đặt trước thì giá trị W(t) sẽ tăng tuyến tính và theo công thức : W(t) = W(t) + 1/W(t) và chuyển sang pha tránh lỗi Như vậy, độ lớn của sổ phát tăng lên một sau khi phát hết các gói dữ liệu trong cửa sổ phát và khi giá trị W(t) càng lớn, thì tốc độ tăng càng chậm Khi gặp lỗi hoặc timeout cho mỗi gói xác nhận ACK thì độ lớn cửa sổ phát được đặt về một, đồng thời giá trị ngưỡng threshold bằng W(t)/2 ( theo chuẩn TCP Reno) Ta thấy trong giai đoạn này, cửa sổ phát tăng rất chậm nhưng giảm rất nhanh - theo cấp
số nhân
Cơ chế điều khiển lưu lượng ở trên là nguyên lý chung của cơ chế điều khiển lưu lượng trong TCP Hai chuẩn đang được ứng dung rộng rãi hiện nay là Tahoe TCP và Reno TCP Khác với chuẩn Tahoe TCP, Reno TCP có một số sửa đổi khi dữ liệu bị mất hay thời gian chờ gói ACK quá
Trang 381.3 Điều khiển lưu lượng động
Xét 2 khái niệm căn bản
- Thời gian phát một đối tượng: là thời gian cần thiết để phát đối tượng đó lên đường truyền bằng tích độ lớn gói dữ liệu và tốc độ phát trên kênh tương ứng
- Thời gian truyền một đối tượng: là thời gian cần thiết để truyền đối tượng đó từ thiết bị gửi sang thiết bị nhận có tính đến tính chất giới hạn của độ lớn cửa sổ phát Thời gian truyền một đối tượng bằng thời gian phát đối tượng đó cộng tổng thời gian chậm trễ do cơ chế truyền theo cửa sổ
Lúc mới bắt đầu phát thông lượng tăng lên rất nhanh, trong giai đoạn tránh tắc nghẽn độ lớn cửa sổ phát tăng tuyến tính và thay đổi sau mỗi chu kỳ phát toàn phần và chu kỳ có tính lặp lại từ khi bắt đầu phát cho tới khi gặp lỗi
TCP điều khiển lưu lượng động bằng cách tự điều chỉnh tần suất phát dữ liệu thông qua các cơ chế tự xác định thông số cần thiết tuỳ theo trạng thái kênh truyền, phụ thuộc vào băng thông và tần suất xuất hiện lỗi Từ đó tự thiết lập các thông số phục vụ cho việc trao đổi số liệu
TCP có hai cách sử dụng cửa sổ Với việc sử dụng khung cửa sổ cố định thì độ lớn cửa sổ phát sẽ không thay đổi từ lúc bắt đầu đến khi kết thúc phiên làm việc giữa hai thực thể cần trao đổi số liệu Trong mạng mà tình trạng tắc nghẽn không xẩy ra, các kết nối TCP không phải phân chia băng thông có ràng buộc sau :
Trang 39Trang 41
1 Cửa sổ tắc nghẽn giới hạn số byte mỗi thiết bị gửi
2 Không có gói dữ liệu phải gửi lại (do không có tình trạng tắc nghẽn)
3 Tất các các tiêu đề của TCP, IP và tầng liên kết là nhỏ và không đáng
kể
4 Mỗi đối tượng được truyền có kích thước đủ lớn, gồm một số gói dữ liệu ( bội của SMSS)
5 Các gói xác nhận ACK nhỏ và có thời gian truyền là không đáng kể
6 Giá trị ngưỡng ban đầu đặt đủ lớn để giá trị của cửa sổ tắc nghẽn không bao giờ đạt được
Nếu :
Độ lớn của mỗi một đối tượng (là khối dữ liệu cần truyền, có thể được chia thành một số gói tin để gửi đi) được truyền là O bit
Độ lớn tối đa một gói dữ liệu là S bit
Tốc độ truyền trên đường liên kết là R bps
ELT (elapsed time) thời gian trễ của một gói dữ liệu trên đường truyền, không bao gồm thời gian phát gói dữ liệu đó
Với mạng có khả năng bị tắc nghẽn, giá trị R thể hiện độ lớn băng thông ở trạng thái ổn định trong mỗi kết nối TCP, ELT phản ánh độ trễ trên mạng,
Xem ELT là thời gian thiết lập một kết nối thì 2 * ELT là thời gian thực hiện thiết lập và bắt tay một kết nối Nếu đối với mỗi phiên làm việc không có hạn chế về thời gian kết thúc phiên làm việc đó ta thấy sau khoảng thời gian 2 *ELT, quá trình phát một đối tượng được bắt đầu và kết thúc sau O/R giây Do đó như khái niệm đã trình bày ở trên, tổng thời gian phát một đối tượng sẽ là 2*ELT + O/R
Gọi W là độ lớn của sổ phát cố định tức là tối đa số gói dữ liệu chờ được phát tại mỗi thời điểm Khi máy chủ nhận được tín hiệu phát, nó phát cả W gói dữ liệu cho máy yêu cầu Khi nhận được một gói xác nhận ACK, thể hiện rằng gói dữ liệu đã đến đích, máy chủ gửi tiếp một gói dữ
Trang 40dữ liệu, máy chủ tiếp tục phát các gói dữ liệu còn lại trong cửa sổ phát Chú ý rằng trong quá trình phát , tốc độ truyền là không đổi và duy trì ở mức R Tổng thời gian truyền trong trường hợp này là 2*ELT + O/R Trường hợp 2: Máy chủ nhận được gói xác nhận ACK sau khi đã gửi hết W gói dữ liệu đầu tiên, tức là W*S/R < ELT + S/R Với W=2, sau 2*ELT + O/R giây, đối tượng O được phát hết từ máy chủ sang máy trạm, nhưng lúc này máy chủ không nhận được gói xác nhận ACK đầu tiên sau khi đã gửi tất cả W gói dữ liệu Như vậy, máy chủ phải chờ gói xác nhận ACK này trước khi tiếp tục phát các gói dữ liệu tiếp theo trong cửa sổ thứ hai Nếu đặt K = ceiling(O/W*S) (ceiling() là hàm làm tròn lên) là số cửa sổ cần thiết để truyền đối tượng cỡ O Vì trong mỗi chu kỳ (thời gian truyền hết một cửa sổ) W*S /R < ELT + S/R nên thời gian chờ phát không quá ELT + S/R – W*S/R, khi đó thời gian truyền đối tượng O
sẽ không vượt quá :
2*ELT + O/R + (K-1) [S/R + ELT - W*S/R]
Trong đó (K-1) [S/R + ELT - W*S/R] là tổng thời gian chờ phát của các gói dữ liệu trong O và 2*ELT + O/R là thời gian phát hết các đối tượng trong O dựa trên tốc độ vật lý (cửa sổ đầu tiên được phát sau thời gian bắt tay để thiết lập kết nối, không cần chờ; với (K-1) cửa sổ tiếp theo, cần tính thêm thời gian chờ biên nhận)