ĐƯỜNG TRUYỀN A. Mục tiêu Sau khi học xong chương này, anh/ chị sẽ nắm được: ü Các phương pháp quản lý đường truyền ü Giao thức định tuyến Ipv6 ü Quản lý thông tin với gói tin TCP B. Nội dung 1. Phương pháp ALOHA 2. Phương pháp CSMA/CD truyền thống 3. Các giao thức đụng độ tự do 4. Quản lý truy cập đường truyền với 802.11 MAC 5. Kiến trúc 802.11 và chồng giao thức 6. Giao thức ARP C. Tài liệu tham khảo [1] TCP Illustrated – Volume 1, Kevin R. Fall, W. Richard Stevens, Pearson Education Inc, 2012 [2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011 [3] Computer Networking A top-down approach, Kurose, Ross, 2017 [4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014. [5] A brief introduction and analysis of the Gnutella protocol, Gayat
Trang 1Mạng nâng cao – Bài 1 Trang 1
BÀI 1 QUẢN LÝ TRUY CẬP ĐƯỜNG TRUYỀN
A Mục tiêu
Sau khi học xong chương này, anh/ chị sẽ nắm được:
Các phương pháp quản lý đường truyền
Giao thức định tuyến Ipv6
Quản lý thông tin với gói tin TCP
C Tài liệu tham khảo
[1] TCP Illustrated – Volume 1, Kevin R Fall, W Richard Stevens, Pearson Education Inc, 2012
[2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011
[3] Computer Networking A top-down approach, Kurose, Ross, 2017
[4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014
[5] A brief introduction and analysis of the Gnutella protocol, Gayatri Tribhuvan, University of Freiburg
Trang 2Mạng nâng cao – Bài 1 Trang 2
QUẢN LÝ TRUY CẬP ĐƯỜNG TRUYỀN
Tầng liên kết dữ liệu sử dụng các dịch vụ của tầng vật lý để gửi và nhận các bits dữ liệu thông qua các kênh truyền thông Tầng liên kết dữ liệu thực hiện một số chức năng chính bao gồm:
1 Cung cấp một giao diện dịch vụ chuẩn giao tiếp với tầng mạng
2 Xử lý lỗi truyền thông
3 Chuẩn hóa luồng truyền dữ liệu giữa bên gửi và bên nhận khi tốc độ phát không đồng bộ cùng với tốc độ nhận
Để thực hiện được mục tiêu này, tầng liên kết dữ liệu đưa các gói dữ liệu nhận được từ tầng mạng và đóng gói chúng trong các khung dữ liệu (frames) trước khi truyền Mỗi khung dữ liệu bao gồm vùng tiêu đề, trường thông tin tải trọng (payload) dùng để kiểm soát gói tin, và trường thông tin kết thúc khung (trailer) Quá trình truyền thông tin giữa tầng liên kết dữ liệu giữa 2 thiết bị đầu cuối được mô phỏng qua sơ đồ sau:
Liên kết mạng có thể phân chia làm 2 nhóm chính: nhóm sử dụng giao thức mạng điểm – nối – điểm và nhóm sử dụng kênh truyền quảng bá Trong các mạng quảng
bá, vấn đề chính là xác định được nút nào đang sử dụng kênh truyền khi có nhiều nút cùng có yêu cầu tới kênh này Ví dụ trực quan của vấn đề này, giả sử trong mạng điện thoại có 6 nút truyền sử dụng trên cùng 1 kênh truyền thông Khi có 1 nút dừng hội thoại, ngay lập tức có từ 2, 3 hoặc nhiều hơn nút yêu cầu kênh truyền, điều này dẫn đến sự tranh chấp đường truyền Nếu đây là kênh truyền hội thoại trực tiếp như trong các buổi thảo luận thì việc này sẽ dẫn đến hỗn loạn, gây ra nhiều tạp âm và làm gián đoạn hội thoại của các nút truyền Nhưng thực tế, đối với các buổi thảo
Trang 3Mạng nâng cao – Bài 1 Trang 3
luận trực tiếp, người ta đã đưa ra các quy tắc cơ bản để tránh được điều này như: sẽ
có người chủ tịch điều khiển quá trình thảo luận (chair man), người phát biểu được đưa lên bục phát biểu và làm chủ cuộc thảo luận (key speaker), người tham gia thảo luận (attend chỉ được phát biểu bằng cách giơ tay và được người chủ hội thoại đồng
ý Trong mạng truyền thông, các kênh truyền quảng bá được gọi chung là kênh truyền đa truy cập hoặc các kênh truyền truy cập ngẫu nhiên Tầng liên kết dữ liệu cung cấp một số giao thức dùng để giải quyết vấn đề phân chia đường truyền trong kênh truyền đa truy cập Các giao thức này thuộc về lớp con trong tầng liên kết dữ liệu được gọi là lớp Kiểm soát truy cập đường truyền (Media Access Control) – MAC Trong mạng LAN, lớp MAC rất quan trọng, đăc biệt là trong các kênh truyền wi-fi do các kênh truyền wi-fi thực hiện truyền thông dạng quảng bá Đối với mạng WAN thì ngược lại, các giao thức WAN đều sử dụng giao thức điểm – nối – điểm (ngoại trừ kênh truyền sóng vệ tinh) Trong chương này, chúng ta sẽ tìm hiểu kỹ hơn các vấn đề quản lý đường truyền của lớp MAC
Định vị đơn kênh tĩnh
Phương pháp truyền thống để truyền tin là sử dụng đơn kênh như đường truyền điện thoại, hoặc trong môi trường đa người dùng thì sử dụng một phần năng lực của đường truyền để phân chia cho người dùng như phương pháp phân chia tần
số FDM (Frequency Division Multiplexing) Nếu có N người dùng và bằng thông được phân bố đều cho N người, mỗi người dùng sẽ được phân bố một tỉ lệ băng thông như nhau Như khi người dùng được gán mọt tần số riêng, sẽ không có sự giao tiếp tương tác trực tiếp giữa các người dùng này trong cùng kênh truyền Khi chỉ có một số lượng nhỏ người dùng, cố định, với lưu lượng hoặc tải tăng đột biến, cách phân chia là phương pháp đơn giản và hiệu quả nhất Ứng dụng của phương pháp này là sóng FM trên các kênh truyền radio Mỗi trạm nhận được một tỉ lệ băng tần của sóng FM và người dùng đều phát quảng bá dữ liệu trên kênh truyền này Tuy nhiên khi số lượng người dùng lớn và lưu lượng tải tăng lên cao, băng thông dễ trở nên cạn kiệt, phương pháp phân chia tần số FDM đã bộ lộ nhiều hạn chế Nếu băng thông được phân chia cho N vùng và có ít hơn N người dùng sử dụng kệnh truyền, lúc này sẽ có một số lượng lớn kênh truyền không được sử dụng dẫn đến sự lãng phí tài nguyên Ngược lại, nếu có nhiều hơn N người dùng muốn truyền tin trên
N kênh truyền này sẽ có một số người dùng sẽ bị từ chối vì không đủ kênh truyền
Trang 4Mạng nâng cao – Bài 1 Trang 4
hoặc thiếu băng thông, thậm chí nếu một số người dùng đã được gán băng tần cũng rất khó để gửi và nhận thông tin do tài nguyên băng thông hạn hẹp Phân chia kênh tĩnh là phương pháp kém hiệu quả đối với phần lớn các hệ thống máy tính trong đó
số lượng tải tăng đột biến, lưu lượng dữ liệu thường xuyên đột ngột biến động đến mức đỉnh của băng thông hoặc giảm xuống về mức trung bình Hãy xem xét độ trễ trung bình T là khoảng thời gian để gửi một khung dữ liệu lên đường truyền với năng lực C kpbs Giả thiết rằng các khung dữ liệu đến ngẫu nhiên với tỉ lệ đến trung bình là λ khung dữ liệu / giây, và các khung dữ liệu có độ dài trung bình là 1/μ bít Với những tham số trên tỉ suất phục vụ của một kênh truyền là μC khung/giây Thời giam trễ sẽ được tính theo công thức sau:
VD: C = 100 Mbps, kích thước trung bình của khung 1/ μ là 10,000 bít và tỉ lệ khung dữ liệu λ là 500 khung/giây thì T = 200μsec Chú ý rằng nếu chúng ta bỏ qua thời gian chờ trong hàng đợi, chỉ quan tâm đến khoảng thời gian truyền 10,000 bít trên đường truyền 100Mbps, ta có thể tính ra được khoảng thời gian truyền cỡ 100μsec Kết quả là đường truyền vẫn bị chiếm giữ trong khoảng thời gian này ngay
cả khi không còn khung dữ liệu để truyền
Nếu ta phân chia đơn kênh truyền thành N kênh độc lập, mỗi kênh nhận năng lực vận chuyển là C/N bps Tỉ lệ trung bình mỗi kênh sẽ là λ /N Thực hiện việc tính toán theo công thức trên ta có được:
Như vậy khi N tăng lên đột biến, thời gian trễ để truyền tin tăng theo cấp số nhân do vậy việc phân chia đường truyền theo năng lực của kênh không phù hợp với
số lượng người dùng lớn trong kênh Trong trường hợp sử dụng phân chia theo thời gian truyền TDM (Time Division Multiplexing) mỗi người dùng được phân chia một khoảng thời gian được truyền tin trong N khe thời gian truyền trên kênh, nếu người dùng không sử dụng truyền tin trong khe thời gian này, đường truyền vẫn bị chiếm giữ
Tương tự như ví dụ trên, nếu thay thế mạng 100 Mbps thành 10 mạng 10 Mpbs mỗi mạng định vị tĩnh một số người dùng riêng, độ trễ trung bình sẽ tăng từ
200 λsec lên 2msec
Trang 5Mạng nâng cao – Bài 1 Trang 5
Cách thay thế hiệu quả trong trường hợp mạng có số lượng người dùng lớn như hệ thống mạng máy tính là sử dụng cách thức phân chia kênh truyền động Các phương pháp phân chia kênh truyền động được gọi chung là các giao thức đa truy cập (Multiple Access Protocols)
1 Phương pháp ALOHA
ALOHA là phương pháp kiểm soát đa truy cập đầu tiên được thiết kế tại Hawaii trong nhưng năm đầu của thập kỷ 1970 do nhà nghiên cứu Norman Abramson và các đồng nghiệp tại Đại học Hawaii thiết kế dùng để kết nối các người dùng tại các đảo nhỏ với hệ thống máy tính chủ ở Honolulu Nghiên cứu của nhóm Norman Abranson được pháp triển từ các nghiên cứu của Schwartz và Abramson năm 2009, với ý tưởng cơ bản là có khả năng đăng ký cho bất kỳ hệ thống nào mà trong đó các người dùng không đồng bộ hoặc cạnh tranh nhau để sử dụng một kênh truyền chung ALOHA có 2 phương pháp: ALOHA thuần túy và ALOHA phân khe
a ALOHA thuần túy:
Ý tưởng của ALOHA ban đầu khá đơn giản: khi người dùng có dữ liệu cần truyền, người dùng đó thực hiện việc truyền tin ngay khi có dữ liệu Điều này có thể dẫn đến đụng độ và làm hỏng các khung dữ liêu Bên gửi cần xác định được khi nào
có đụng độ xảy ra Trong hệ thống ALOHA, sau mỗi lần truyền một khung dữ liệu đến hệ thông máy tính trung tâm, hệ thống máy tính trung tâm sẽ quảng bá lại một khung dữ liệu đến tất cả các trạm Một nút trạm do vậy có thể lắng nghe gói tin quảng bá từ bộ tập trung để xác định khung dữ liệu của nút đó có bị mất hay không Trong các hệ thông khác như mạng LAN, nút gứi có thể lắng nghe đụng độ trong quá trình truyền tin
Nếu một khung dữ liệu bị mất, bên gửi sẽ chờ đợi một khoảng thời gian ngẫu nhiên trước khi gửi lại nó Thời gian chờ đợi là ngẫu nhiên để hạn chế việc các khung dữ liệu tiếp tục lại đụng độ nhau ở cùng pha Hệ thống với đa người dùng sử dụng chung kênh truyền theo cách này sẽ dẫn đến hiện tượng xung đột về mặt dữ liệu và được gọi là hệ thống tranh chấp (contention)
Hệ thống ALOHA hoạt động được mô tả trong hình sau Giả thiết các khung dữ liệu có cùng độ dài, khi có 2 khung dữ liệu cố gắng xuất hiện trên đường truyền cùng một thời điểm, đụng độ sẽ xảy ra và cả 2 khung dữ liệu này sẽ bị hủy Nếu bit đầu tiền của một khung dữ liệu mới trùng lặp với bit cuối cùng của một khung dữ liệu đang truyền, cả 2 khung dữ liệu này đều bị coi là đụng độ và bị hủy, như vậy các nút truyền sẽ phải truyền lại 2 khung này tại một thời điểm sau đó Vùng tổng
Trang 6Mạng nâng cao – Bài 1 Trang 6
kiểm tra (check sum) sẽ không chỉ ra được cùng đụng độ là hoàn toàn hay chỉ là 1 vùng nhỏ, vì thế hệ thống đều coi 2 khung dữ liệu này là đụng độ, sẽ bị hỏng và được hủy trên đường truyền
b ALOHA chia khe (Slotted ALOHA)
Năm 1972, Robert công bố một phương pháp cải tiến năng lực của hệ thống ALOHA Theo đề xuất của Robert, thời gian truyền được phân chia và các vòng lặp nhỏ độc lập được gọi là các khe (slots), mỗi khe truyền tải được một khung dữ liệu Cách tiếp cận này yêu cầu người dùng đồng thuận về các đường biên của khe Một cách tiếp cận để đạt được đồng bộ giữa các trạm là phát ra các một tín hiêu pip tại thời điểm bắt đầu của khe dữ liệu, các tín hiệu xung nhịp này tương tự như tín hiệu đồng hồ trong hệ thống máy tính Phương pháp này đối lập với ALOHA thuần túy
nó cho phép nhiều trạm cùng được sử dụng đường truyền thay vì chỉ 1 trạm được sử dụng đường truyền Tuy khắc phục được nhược điểm của ALOHA nhưng phương pháp ALOHA chia khe vẫn xảy ra hiện tượng đụng độ khi cách nút cùng phát tin tại cùng thời điểm bắt đầu của một khe (ban đầu khe thời gian này rảnh chưa có nút nào
sử dụng) Điều này làm hiệu suất của phương pháp ALOHA không cao, thống kê trung bình cho thấy có 37% khe rỗng, 37% khe được truyền tin và 26% khe xảy ra đụng độ Vì vậy hiệu suất của ALOHA chia khe cũng chỉ đạt ngưỡng truyền tin 37% thành công
Trang 7Mạng nâng cao – Bài 1 Trang 7
2 Phương pháp CSMA/CD truyền thống
CSMA là phương pháp cảm nhận sóng mang để phát hiện đụng độ xảy ra trên mạng trong quá trình truyền tin Giao thức đầu tiên của CMSA còn được gọi là 1-persistent CSMA hay còn gọi là giao thức CSMA “kiên trì” Đây là giao thức đơn giản nhất trong họ giao thức CSMA Khi một trạm có dữ liệu truyền, đầu tiên nó lắng nghe trên kênh truyền nếu không có dữ liệu được phát trên kênh truyền, nó sẽ thực hiện truyền dữ liệu tại thời điểm đó Ngược lại, nếu kênh truyền bận, nút trạm
sẽ chờ cho đến khi kênh truyền được giải phóng Khi đó nút mạng sẽ truyền tiếp dữ liệu của nó Nếu phát hiện đụng độ, nút trạm sẽ chờ đợi 1 khoảng thời gian ngẫu nhiên và bắt đầu truyền lại Giao thức này được gọi là CSMA “kiên trì” (1-persistent CSMA) bởi vì quá trình truyền lại chỉ xảy ra khi chắc chắn (xác xuất = 1) nút trạm nhận được thông tin về đường truyền rảnh Trên thực thế với CSMA kiên trì vẫn có xác suất xảy ra tranh chấp, đụng độ dữ liệu trong trường hợp 2 nút trạm cùng truyền
dữ liệu sau khi đã chờ đợi xong 1 nút thứ 3 vừa hoàn tất quá trình truyền dữ liệu Hơn nữa quá trình lan truyền trễ có ảnh hưởng rất quan trọng đối với đụng độ Khi một trạm bắt đầu quá trình gửi dữ liệu, tại thời điểm đó một trạm khác cũng thực hiện lắng nghe kênh truyền, nó nhận thấy tại thời điểm này kênh truyền đang rảnh nên cũng bắt đầu thực hiện quá trình truyền dữ liệu Và kết quả là đụng độ tiếp tục xảy ra Trường hợp xảy ra đụng độ dạng này phụ thuộc vào số lượng khung dữ liệu xuất hiện trên đường truyền hoặc do độ trễ băng thông trên kênh truyền Nếu chỉ có một tỉ lệ nhỏ các khung dữ liệu xuất hiện trên kênh truyền, độ trễ lan truyền sẽ nhỏ, khi đó khả năng xuất hiện đụng độ cũng giảm đi Đối với các hệ thống có độ trễ băng thông cao, mức độ ảnh hưởng quan trọng này cũng tăng lên và hiệu suất của giao thức sẽ giảm xuống nhanh chóng Tuy nhiên phương pháp truyền thông kiên trì này vẫn có hiệu quả cao hơn các phương pháp ALOHA
Giao thức truyền thông thứ 2 trong nhóm CSMA là giao thức truyền thông không kiên trì (nonpersitent CSMA) Cũng giống như CSMA kiên trì, một nút trạm sẽ lắng nghe, cảm nhận đường truyền trước khi truyền tin Tuy nhiên, trong trường hợp kênh sẵn sàng, nút trạm sẽ không tiếp tục lắng nghe đường truyền để phát hiện quá trình kết thúc truyền của các nút trước đó Thay vào đó, nút trạm đó sẽ chờ đợi một khoảng thời gian ngẫu nhiên và lặp lại thuật toán này Kết quả là thuật toán này cho phép tiện ích hóa kênh truyền tốt hơn nhưng độ trễ sẽ lớn hơn CMSA kiên trì
Để cân bằng giữa 2 phương pháp trên, giao thức CSMA kiên trì – p (p-persistent CSMA) đã áp dụng cả trong phương pháp chia kênh và chia luồng Khi một nút trạm sẵn sàng truyền dữ liệu, nó cảm nhận kênh truyền Nếu kênh truyền rảnh, nút trạm
đó thực hiện truyền tin với xác suất p Với một xác suất q = 1-p, nút trạm này trì
Trang 8Mạng nâng cao – Bài 1 Trang 8
hoãn quá trình truyền cho đến khe tiếp theo Nếu khe đó tiếp tục rảnh, nút trạm vừa truyền dữ liệu và thực hiện trì hoãn lặp lại với xác suất p và q tương ứng Quá trình này được lặp lại cho đến khi hoặc khung dữ liệu đã được truyền xong hoặc một trạm khác bắt đầu truyền tin Nếu xảy ra đụng độ trong trường hợp thứ 2, khi một trạm khác bắt đầu truyền trong khi nút trạm này chưa kết thúc, sẽ xảy ra đụng độ, khi đó các nút lại quay lại trạng thái chờ đợi với một khoảng thời gian ngẫu nhiên và khởi động lại quá trình truyền tin
Phương pháp này cho hiệu quả tối ưu thông lượng cao hơn so với các giao thức trước đây Kết quả được biểu diễn trong sơ đồ sau:
CSMA/CD (CSMA with Collision Detection) là phương pháp cải tiến từ CSMA, thay vì khi phát hiện đụng độ, các nút trạm đang phát sẽ thực hiện truyền nốt khung
dữ liệu bị đung độ rồi chuyển sang chờ đợi ở một khoảng thời gian ngẫu nhiên, giao thức CSMA/CD sẽ dừng và hủy khung dữ liệu này ngay lập tức Với cách tiếp cận này sẽ tiết kiệm được băng thông và thời gian truyền tin, CSMA/CD là thành phần
cơ bản của Ethernet LAN Phát hiện đụng độ là quá trình analog, trong đó các thiết
bị phần cứng của máy trạm lắng nghe kênh truyền trong khi nút trạm đó truyền tin Nếu tín hiệu phản hồi khác so với tín hiệu gửi, nút trạm đó xác định đã xảy ra đụng
độ CSMA/CD sửu dụng mô hình ngữ cảnh như hình… Tại điểm đánh dấu t0, một nút trạm hoàn thành quá trình truyền các khung dữ liệu Bất kỳ trạm nào có khung
dữ liệu để truyền đều có thể cố gắng truyền tin Nếu hai hay nhiều trạm quyết định truyền đồng thời, đụng độ sẽ xảy ra Nếu một nút trạm phát hiện đụng độ, nó sẽ hủy
bỏ quá trình truyền tin, chờ đợi một khoảng thời gian ngẫu nhiên và sẽ thử truyền lại sau đó Do vậy với một chu kỳ truyền tin theo phương pháp CSMA/CD sẽ bao gồm các khoảng thời gian truyền tin (contention), thời gian truyền khung tin (transmission periods) với khoảng thời gian nghỉ (idle), tất cả các các nút trạm sẽ tạm dừng phát tin
Giả thiết rằng tồn tại 2 nút truyền đồng thời cùng tại thời điểm t0, trong kịch bản xấu nhất xảy ra 2 gói tin xảy ra đụng độ Với thời gian tín hiệu phản hồi để các nút phát hiện ra đụng độ là Tại thời điểm t0, một nút bắt đầu truyền tin, tại thời
Trang 9Mạng nâng cao – Bài 1 Trang 9
điểm t0 + , một tín hiệu trước đó đã được gửi đến đường truyền từ một nút khác, do nút này xác định đường truyền còn đang rảnh Lúc này đụng độ xảy ra và nút truyền tại thời điểm t0 xác định được đụng độ và sẽ tạm dừng truyền tin, nhưng
có do khoảng cách truyền tin nên phát sinh ra độ nhiêu vì vậy thông tin về đụng độ chỉ được gửi về nút truyền đầu tiên sau một khoảng thời gian là Mặt khác, trong trường hợp xấu nhất một nút không thể xác định được quyền điều khiển kênh truyền hay không cho đến khi nó nhận được tín hiệu phản hồi sau một khoảng thời gian là
Do vậy hệ thông CSMA/CD cũng có thể coi như là hệ thống ALOHA chia khe với độ dài của một khe thời gian là Với khoảng cách 1 km cáp, giá trị của
Sự khác biệt giữa CSMA/CD với ALOHA chia khe nằm ở chỗ trong CSMA/CD sẽ chỉ có một nút được truyền tin và nút này chiếm kênh truyền trong khoảng thời gian truyền một khung dữ liệu Cải tiến này đã làm tăng hiệu quả của quá trình truyền tin nếu khung thời gian dài hơn thời gian phản hồi
3 Các giao thức đụng độ tự do
Mặc dù đụng độ không xuất hiện với CSMA/CD tại một lần khi mà một nút đang chiếm giữ kênh truyền, nhưng nó vẫn xuất hiện trong khoảng thời gian truyền tin Các đụng độ này làm giảm hiệu xuất của hệ thống, đặc biệt là khi độ trễ băng thông lớn hoặc khoảng cách kết nối xa (lớn hơn và các khung tin ngắn Đụng độ không những làm giảm băng thông mà còn làm tăng thời gian gửi của các khung dữ liệu gây ra ảnh hưởng lớn đến các ứng dụng xử lý thời gian thưc như voiceIP CSMA/CD do đó không hẳn là một giao thức được chấp nhận hoàn toàn trong các
hệ thống mạng máy tính
Một số giao thức giải quyết vấn đề tranh chấp kênh truyền mà không xuất hiện đụng độ ngay cả trong khoảng thời gian truyền tin Phần lớn các giao thức này hiện tại đều đã không được sử dụng trong các hệ thống chính, nhưng trong một lĩnh vực cập nhật, thay đổi thường xuyên như giao thức mạng, các giao thức này vẫn có nhiều đặc điểm thừa kế cho các hệ thống trong tương lai
Giả thiết rằng có N nút trạm, mỗi nút được lập trình với một địa chỉ tuyến tính đánh số từ 0 ÷ (N-1) và thời gian phản hồi là không đáng kể Mục tiêu của các giao thức này nhằm đảm bảo một nút truyền tin sẽ nắm quyền điều khiển và truyền dữ liệu trên kênh truyền cho đến khi truyền xong một khối dữ liệu
a) Giao thức Bit-Map:
Mỗi khoảng thời gian truyền tin sẽ bao gồm N khe Nếu nút 0 có dữ liệu cần truyền, nó sẽ truyền 1 bít trong khe số 0 Các nút khác sẽ không được phép truyền
Trang 10Mạng nâng cao – Bài 1 Trang 10
tin trong thời gian khe này đang thực thi, tiếp theo đó nút 1 sẽ được phép truyền tin
1 bit trong thời gian khe 1 khi và chỉ khi nút 1 đang có khung dữ liệu chờ trong hàng đợi Nói một cách tổng quát, nút thứ j chỉ có thể truyền 1 bít tại khe thứ j nếu nó có khung dữ liệu đang được xếp tại hàng đợi Sau khi N được gửi, mỗi nút xác định được các nút nào trong hệ thống có như cầu truyền dữ liệu Tại điểm đó, các nút bắt đầu truyền khung dữ liệu theo thứ tự của các khung dữ liệu đã các định tại các khe truyền tin theo sơ đồ sau
Khi tất cả cá nút đều đồng thuật về thứ tự truyền trong các khe của thời gian truyền tin, sẽ không xuất hiện đụng độ Một nút chỉ sẵn sàng truyền tin sau khi đến lượt khe bit được thông báo tới nó, nếu quá thời gian này nút đó sẽ chờ đợi cho đến khi bit map được quay lại vòng tiếp theo
Các giao thức dạng này được thiết kế truyền tin dạng quản bá trước khi quá trình truyền tin thực được bắt đầu và được gọi là các giao thức đảo ngược bởi vì chúng luân phiên thay đổi quyền điều khiển đường truyền để gnawn chặn đụng độ xảy ra
b) Token Passing
Giao thức bit-map thiết lập các trạm truyền một khung dữ liệu theo từng lượt với trật tự đã được thiết lập trước Một phương pháp tiếp cận khác cũng tương tự đó luân chuyển một thông điệp nhỏ giữa các nút gọi là token (thẻ bài) từ nút này sang nút khác theo trật tự xác định Thẻ bài quyết định quyền được truyền tin Nếu một nút có khung dữ liệu trong hàng đợi, khi nó nhận được thẻ bài, nó sẽ gửi khung dữ liệu đó trước khi thẻ bài được chuyển tới nút trạm kế tiệp Nếu không có dữ liệu trong hàng chờ, nút đó sẽ tiếp tục chuyển thẻ bài sang nút trạm lân cận
Trong giao thức token ring, cấu hình của mạng (topology of network) được sử dụng để định nghĩa trật trự truyền của các nút trạm Các trạm được kết nối điểm điểm trong 1 vòng tròn đơn Luân chuyển thẻ bài chỉ đơn giản là việc nhận các thẻ bài từ một trạm và chuyển nó tới trạm tiếp theo Các khung dữ liệu cũng được truyền theo hướng của thẻ bài Phương pháp này sẽ tạo một vòng lặp trong đó nút trạm cuối là nút đầu tiên xuất phát của thẻ bài Tuy nhiên, để kết thúc một khung dữ liệu được gửi trên đường truyền, một nút trạm sẽ phải chịu trách nhiệm xóa nó ra
Trang 11Mạng nâng cao – Bài 1 Trang 11
khỏi mạng Nút trạm này có thể là nút đầu tiên gửi gói tin này hoặc là nút đích của quá trình truyền dữ liệu
Kênh truyền kết nối các trạm này với nhau có thể thay thế bằng một đường truyền công cộng (bus) dài Mỗi nút trạm sử dụng đường truyền bus để gửi thẻ bài sang nút trạm kế tiếp theo một trật tự xác định trước Sở hữu thẻ bài, nút đó sẽ được truyền một khung dữ liệu lên đường truyền Giao thức này còn được gọi là giao thức Token Bus
Hiệu suất của giao thức token bus cũng tương tự như giao thức bit-map với số lượng khe truyền tin và các khung dữ liệu trong một chu kỳ được đan xen lẫn nhau Sau khi gửi một khung dữ liệu, mỗi nút phải đợi đủ N các nút trạm đó gửi thẻ bài đến các nút lân cận và N-1 khe thời gian để truyền xong một khung dữ liệu, trong trường hợp tất cả các nút đề có dữ liệu
4 Quản lý truy cập đường truyền với 802.11 MAC
Các hệ thống máy tính xách tay và các thiêt bị di động hiện nay đều giao tiếp với cá tín hiệu không dây được gọi là mạng LAN không dây (wireless LAN) Mạng LAN không dây là một mạng LAN đặc biệt trong đó các nút mạng sử dụng kênh truyền quản bá để giao tiếp với nhau do vậy trong việc kiểm soát truy cập đường truyền cũng có sự khác biệt so với mạng LAN thông thường Các mạng không dây được IEEE đưa ra bộ tiêu chuẩn 802.11 (WiFi) và được tìm hiểu trong phần tiếp sau của môn học
Một nút trạm của mạng LAN không dây không có khả năng truyền khung dữ liệu hoặc nhận dữ liệu từ tất cả các nút trạm khác bới giới hạn của vùng có tín hiệu sóng Trong mạng LAN, khi một nút trạm gửi một khung dữ liệu, tất các nút trạm đều nhận được nó Đặc tính này không tồn tại trên mạng LAN không dây bởi nhiều
Trang 12Mạng nâng cao – Bài 1 Trang 12
yếu tố phức tạp như giới hạn của vùng phủ sóng, độ nhiễu của môi trường truyền tin, các vật cản sóng, hấp thụ sóng truyền tin v.v…
Cách tiếp cận đầu tiên trong việc điều khiển đường truyền là sử dụng CSMA: lắng nghe đường truyền từ các nút truyền khác và chỉ truyền khung dữ liệu khi đường truyền rảnh Vấn đề đặt ra, giao thức này không thực sự hiệu quả trong mội trường không dây bởi vì vấn đề nhiễu xảy ra ở nút nhận chứ không xuất hiện tại nút gửi Để hiểu rõ vấn đề này chúng ta theo dõi sơ đồ sau:
Vùng phủ sóng bao gồm A và B do vậy các nút A, B có thể giao tiếp được trong cùng vùng sóng đó, C có vùng phủ sóng đạt tới được B và A nhưng C không
có tín hiệu sóng kết nối được tới A Đầu tiên hãy xem xét đến trường hợp A và C gửi dữ liệu tới B theo hình (a) Nếu A gửi và ngay sau đó C cảm nhận trên kênh truyền, C không phát hiện được A gửi dữ liệu vì A nằm ngoài vùng phủ sóng của C
Do vậy C cọi là đường truyền an toàn và đang rảnh và C có thể truyền dữ liệu đến B Nếu C bắt đầu truyền, nó sẽ gửi liệu được đến B, xóa sạch toàn bộ các khung dữ liệu
từ A Ở đây, ta cần một giao thức MAC ngăn chặn đụng độ này xảy ra vì nó gây lãng phí băng thông Vấn đề một nút trạm không nhận diện được một đối tượng khác trên cùng đường truyền bởi vì nút mạng nó ở quá xa vùng phủ sóng của nó được gọi chung là vấn đề thiết bị ẩn (hidden terminal problem)
Tiếp tục với tình huống B gửi dữ liệu đến A tại cùng thời điểm C muốn gửi
dữ liệu đến D như hình (b) Nếu C cảm nhận được đường truyền, nó sẽ lắng nghe đường truyền và đưa ra kết kết luận sai rằng nó sẽ không gửi dới D Nhưng thực tế, một quá trình truyền tin có thể gây nên lỗi nhận chỉ xuất hiện trong vùng sóng giữa
B và C, nơi các thiết bị nhận dự kiến được định vị Vấn đề này được gọi là vấn đề tiếp xúc của thiết bị (exposed terminal problem)
Một giao thức sớm đã được phát triển để giải quyết các vấn đề trên đối với mạng LAN không dây là MACA (Multiple Access with Collision Avoidance) do Karn đề xuất năm 1990 Ý tưởng cơ bản của giao thức này là bên gửi kích hoạt bên nhận vào
Trang 13Mạng nâng cao – Bài 1 Trang 13
trong cùng một vùng tại một khung dữ liệu ngắn, do vậy các nút gần nó có thể phát hiện được quá trình truyền tin này và tránh truyền tin trong khoảng thời gian của khung dữ liệu Kỹ thuật này sử dụng để thay thế cho việc cảm nhận đường truyền
MACA được mô phỏng trong sơ đồ sau Hãy xem xét cách thức A gửi khung
dữ liệu cho B A bắt đầu gửi bằng một khung dữ liệu RTS (Request To Send) đến B Khung dữ liệu này chỉ bao gồm 30 bytes dữ liệu chứa kèm thông tin về độ dài khung
dữ liệu sắp gửi Sau đó B phản hồi bằng khung dữ liệu CTS (Clear To Send) Khung
dữ liệu CTS bao giồm độ dài vùng dữ liệu (sao chép từ RTS) Dựa vào khung CTS được nhận, A bắt đầu quá trình truyền dữ liệu
Hãy xem xét cách thức các nút trạm lắng nghe các khung dữ liệu này và phản hồi lại chúng Bất kỳ trạm nào nhận được tín hiệu RTS đều ở gần A và phải tạm dừng đủ lâu để nhận được tính hiêu CTS phản hồi về A để tránh việc đụng độ Bất
kỳ nút trạm nào nhận được tín hiệu CTS đều gần B và phải tạm dừng trong quá trình truyền dữ liệu cho đến khi hết độ dài khung dữ liệu được báo trong khung CTS
Trong sơ đồ trên, C nằm trong vùng phủ sóng của A nhưng không nằm trong vùng phủ sóng của B Do vậy, nó lắng nghe tín hiệu RTS từ A nhưng không nhận được CTS từ B Khi khoảng thời gian chờ đợi đủ lâu để nhận được tín hiệu CTS, C
có thể tự do truyền dữ liệu trong khi đó đang có dữ liệu xuất hiện trên đường truyền Ngược lại, D nằm trong vùng phủ sóng của B và không thuộc vùng của A Nó không nhận được tín hiệu RTS nhưng lại nhận được tín hiệu CTS Tín hiệu CTS báo rằng các nút lân cận nhận được nó sẽ tạm dừng trong một khoảng thời gian bằng độ dài khung dữ liệu (được ghi trong CTS), do vậy D tiếp tục dừng trong khoảng thời gian khung dữ liệu này và coi như là B đã nhận một khung dữ liệu Nút E nhận được cả 2 tín hiệu RTS và CTS, cũng như D, nút E sẽ tạm dừng truyền tin cho đến khi khung
dữ liệu đã được truyền xong
Trang 14Mạng nâng cao – Bài 1 Trang 14
Mặc dù đã đưa ra các phương pháp điều khiển trên, đụng độ vẫn có thể xảy ra
Ta lấy ví dụ khi B và C cùng gửi khung dữ liệu RTS đến A cùng thời điểm Đụng độ
sẽ xảy ra và các tín hiệu này đều bị mất Trong kịch bản đụng độ xảy ra, nút truyền không thành công (là nút không nhận được CTS trong một khoảng thời gian chờ đợi) sẽ tiến hành chờ đợi trong một khoảng thời gian ngẫu nhiên và sẽ thực hiện lại sau đó
5 Kiến trúc 802.11 và chồng giao thức
Các mạng không dây 802.11 có thể được sử dụng trong hai chế độ Chế độ phổ biến nhất là kết nối tới các thiết bị khách như laptop, điện thoại hoặc các mạng khác như Internet Trong chế độ cơ sở hạ tầng mỗi thiết bị khách được kết hợp với một điểm tập trung Access Point (AP) là điểm dùng để liên kết tới các mạng khác Các máy trạm gửi và nhận dữ liệu thông qua AP Một vài AP có thể liên kết với nhau thông qua các mạng có dây được gọi là hệ thống phân tán (dùng để mở rọng mạng không dây) Trong trường hợp này, các máy trạm gửi các khung dữ liệu tới các máy trạm khác thông qua các AP
Chế độ thứ hai được gọi là mạng ad hoc network (mạng không dây kết nối trực tiếp) Chế độ này là một tập hợp cacs máy tính liên kết trực tiếp với nhau và các nút mạng gửi khung dữ liệu trực tiếp cho nhau không thông qua các thiết bị tập trung khác Không có Access Point không kiến trúc mạng này Kiến trúc mạng này cũng ít phổ biến do sự phát triển mạnh mẽ của các mạng không dây trên nền tảng Internet
Các giao thức chuẩn 802 của IEEE nói chung (bao gồm cả Ethernet và Wireless) đều có cấu trúc tương tự nhau Hình… dưới đây biểu diễn chồng giao thức 802.11, chồng giao thức cũng tương tư sử dụng cho cả các thiết bị máy khách (client) và các AP Lớp vật lý thực hiện các chức năng của lớp vật lý trong mô hình
Trang 15Mạng nâng cao – Bài 1 Trang 15
OSI, nhưng lớp liên kết dữ liệu của tất cả các giao thức 802 đều tách thành 2 lớp con Trong 802.11 là lớp MAC (Medium Access Control) lớp quản lý truy cập đường truyền và trên đó là lớp LLC (Logical Link Control) lớp điều khiển liên kết với vai trò được ẩn đi giữa các giao thức 802 khác nhau và tạo ra sức khách biệt khi kết nối với lớp mạng
Các giao thức 802.11, phòng tránh đụng độ các gói tin trên đường truyền bằng một giao thức gọi là CSMA/CA (CSMA – with Collision Avoidance) Giao thức có
cơ chế hoạt động tương tự như CSMA/CD với việc cảm nhận kênh truyền trước khi gửi dữ liệu và tạm dừng một khoảng thời gian ngẫu nhiên khi phát hiện đụng độ xảy
ra Số khe để dừng chờ đợi (backoff) được chọn từ 0 đến 15 khe trong trường hợp của tầng vật lý OFDM Nút trạm chờ cho đến khoản thời gian kênh truyền được rảnh, bằng cách cảm nhận không có tín hiệu trên đường truyền trong một khoảng thời gian ngắn gọi là DIFS và đếm lùi số khe rảnh, tạm dừng khi các khung dữ liệu được gửi Nút trạm đó sẽ gửi khung dữ liệu khi bộ đếm về đến 0 Nếu khung dữ liệu được gửi thông, nút nhận sẽ ngay lập tức phản hồi bằng một thông điệp ACK (acknwoledgement) Nếu không nhận được tín hiểu phản hồi ACK, bên gửi sẽ coi là khung dữ liệu đó bị lỗi, bị đụng độ.v.v… và không thể đến được đích Trong trường hợp này, nút gửi sẽ tăng gấp đôi thời gian chờ đợi và sẽ thử lại sau đó, tương tự như vậy trong Ethernet thời gian chờ sẽ tăng theo cấp số mũ cho đến khi khung dữ liệu
đó gửi thành công hoặc đạt được số lần truyền lại tối đa cho phép trên đường truyền
Trang 16Mạng nâng cao – Bài 1 Trang 16
Trong ví dụ trên Nút A đầu tiên gửi một khung dữ liệu Khi A đang gửi dữ liệu, trạm B và C cũng có yêu cầu truyền dữ liệu Chúng nhận thấy kênh truyền đang bận và chuyển sang trạng thái chờ Khi A nhận được tín hiệu ACK, nó hoàn thành việc truyền 1 khung dữ liệu và đường truyền tại thời điểm này được rảnh Khoảng thời gian kênh truyền rảnh ngắn hơn khoảng thời gian chờ của cả B và C (thời gian chờ của B và C là ngẫu nhiên) nên trong khoảng thời gian rất nhỏ này, kênh truyền được rảnh Tiếp theo đó C chọn thời gian chờ một cách ngẫu nhiên nhỏ hơn thời gian chờ của B nó sẽ thực hiện gửi dữ liệu trước B tiếp tục tạm dừng và chờ đợi C
sử dụng kênh truyền cho đến khi C nhận được tín hiệu ACK, nó hoàn thành thời gian chờ đợi và bắt đầu gửi khung dữ liệu So sánh với Ethernet hai phương pháp này hoàn toàn khác nhau Thứ nhất, khởi động thời gian nghỉ (backoff) sớm giúp tránh được đụng độ xảy ra Việc tránh đụng độ này sẽ làm giảm chi phí truyền thông nhiều hơn sơ với việc phát hiện đụng độ vì các lỗi khung dữ liệu xảy ra khi có đụng
độ Thứ hai, tín hiệu ACK sẽ thông báo cho các nút tránh được đụng độ, vì trong hệ thống mạng không dây, đụng độ không thể phát hiện được
Chế độ này được gọi là DCF (Distributed Coordination Function) bởi vì mỗi nút thực thi một cách độc lập không có sự can thiệp điều khiển từ trung tâm Ngoài
ra trong tiêu chuẩn ban hành của 802.11 còn một chế độ tùy chọn gọi là PCF (Point Coordination Function) trong đó AP điều khiển toàn bộ các hoạt động của các phần
tử do nó quản lý Tuy nhiên PCF không áp dụng trong thực tế bởi vì không có phương pháp để ngăn các nút trạm từ các mạng khác truyền dữ liệu trong vùng phủ sóng của các AP đó
Vấn đề thứ hai là vùng phủ sóng của các trạm khác nhau có thể khách nhau Trong các hệ thống mạng có dây, hệ thống được xây dựng liên kết với nhau do vậy các nút trạm có thể lắng nghe được lẫn nhâu Với sự phức tạp của lan truyền sóng
Trang 17Mạng nâng cao – Bài 1 Trang 17
RF nên vấn đề này không quản được bới các nút trạm không dậy Hậy quả là các nút trạm không nằm trong vùng phủ sóng được coi là các nút ẩn (đã đề cập ở trên) lại xuất hiện Trong ví dụ sau, nút C đang truyền dữ liệu tới B Nếu nút A cảm nhận kênh truyền, nó sẽ không lắng nghe được bất kỳ tín hiệu gì và sẽ coi là an toàn và bắt đàu truyền dữ liệu tới B Quyết định truyền tin này sẽ dẫn tới đụng độ trên đường truyền
Một tình huống ngược lại là vấn đề để lệ thiết bị đầu cuối, (biểu diễn hình….)
Ở đây, B muốn gửi dữ liệu đến C, do vậy nó lắng nghe đường truyền Khi nó phát hiện được có dữ liệu truyền, B quyết định không truyền dữ liệu tới C, trên thực tế kênh truyền bận là do A đang thực hiện truyền tin với một ẩn D nào đó Vấn đề này làm lãng phí thời gian chờ đợi của B trong khi B hoàn toàn có thể gửi dữ liệu sang C
vì kênh truyền giữa B và C đang được rảnh
Đề giảm thiểu các tình huống nhập nhằng trên, 802.11 định nghĩa cảm nhận kênh truyền bao gồm cả cảm nhận tín hiệu vật lý và cảm nhận kênh ảo Cảm nhận tín hiệu vật lý chỉ đơn thuần là kiểm tra đường truyền xem có tín hiệu hợp lệ tồn tại hay không Với cảm nhận kênh ảo, mỗi nút trạm giữ một bản ghi logic khi kênh truyền được sử dụng bằng giá trị NAV (Network Allocation Vector) Mỗi khung dữ liệu đính kèm thêm một trường NAV xác định khoảng thời gian để hoàn thành truyền khung dữ liệu này Các nút trạm sẽ đọc thông tin này và xác định kênh truyền
sẽ bận trong khoảng thời gian ban lâu dựa trên giá trị của NAV bất kể việc nó có cảm nhận kênh vật lý hay không Ví dụ, trường NAV của một khung dữ liệu bao gồm thời gian cần thiết để gửi một tín hiệu ACK Tất cả các nút trạm lắng nghe khung dữ liệu này sẽ trì hoãn trong khoảng thời gian gửi tín hiệu ACK bất kể chúng
có nhận được tín hiệu ACK hay không
Một tùy chọn khác của cơ chế RTS/CTS sử dụng NAV để ngăn chặn các nút đầu cuối gửi các khung dữ liệu tại cùng thời điểm, ngăn chặn trường hợp các trạm
Trang 18Mạng nâng cao – Bài 1 Trang 18
thu phát ẩn Trong hình… dưới dây, A muốn gửi đến B C là một nút trạn không trong vùng sóng của A D là nút trạm trong vùng sóng của B nhưng không trong vùng sóng của A
Giao thức bắt đầu khi A quyết định gửi dữ liệu sang cho B A bắt đầu bằng việc gửi tín hiệu RTS đến B yêu cầu quyền để gửi dữ liệu cho B Nếu B nhận được yêu cầu này, B phản hồi bằng tín hiệu CTS xác định rằng kênh truyền đã sẵn sàng để nhận dữ liệu Dựa trên tín hiệu CTS, A gửi khung dữ liệu và thời gian ACK Dựa trên khung dữ liệu nhận, B phản hồi 1 khung ACK hoàn thành quá trình trao đổi thông tin Nếu thời gian ACK của A hết hạn trước khi ACK phản hồi tới A, nó coi rằng đã có đụng độ xảy ra vào thực thi lại giao thức trên sau một khoảng thời gian chờ đợi
Tiếp tục với trường hợp nút C và D C trong vùng phủ sóng của A, do vậy nó nhận được tín hiệu RTS Từ tín hiện RTS với NAV, C xác định được khoảng thời gian truyền tin cho đến khi có tín hiệu ACK phản hồi Vì vậy C tạm trì hoãn quá trình truyền tin cho đến khi A hoàn thành xong D không nhận được tín hiệu RTS do nằm ngoài vùng của A, nhưng nó lại nhận được tín hiệu CTS vì vậy nó cập nhật lại NAV và sẽ trì hoãn quá trình truyền tin cho đến khi khoảng thời gian truyền trong NAV hoàn thành
CSMA/CA với cảm nhận kênh vật lý và kênh ảo là cốt lõi của giao thức 802.11 Tuy nhiên có một vài cơ chế khác phát triển trên nền tảng này, mỗi một cơ chế được điểu khiển bằng một thao tác thực Chúng gồm một số cơ chế như sau: Thứ nhất về tính tin cậy Đối lập với mạng có dây, mạng không dây có nhiều tín hiệu nhiễu do ảnh hưởng của các thiết bị không dây khác và không tin cậy Việc sử dụng ACK và truyền lại chỉ có tác dụng hiệu quả thấp khi xác suất nhận được khung
dữ liệu nhỏ tại điểm đầu tiên Do vậy chiến lược để tăng xác suất truyền tin thành công là giảm tỉ suất truyền tin Giảm tỉ suất truyền là tăng cường điều chế (modulations) để nhận được dữ liệu chính xác hơn trong điều kiện tỉ lệ nhiễu tín hiệu cho trước Nếu có quá nhiều khung dữ liệu bị mất, nút trạm có thể giảm tỉ suất
Trang 19Mạng nâng cao – Bài 1 Trang 19
truyền tin Nếu có nhiều khung dữ liệu gửi với số lượng mất khung thấp, nút trạm có thể thử tăng dần tỉ suất truyền tin để đánh giá số lượng mất và duy trì một tỉ suất hợp
lý Một chiến lược khác nhằm tăng cường việc nhận khung dữ liệu mà không bị lỗi khung là gửi các khung dữ liệu có kích thước nhỏ hơn Nếu xác suất của bất kỳ bít nào bị lỗi là p, xác suất của n-bit trong khung dữ liệu nhận được chính xác sẽ là (1 – p)n
VD: Với p = 10-4, xác suất nhận được một khung Ethernet (12,144 bits) chuẩn chỉ đạt dưới 30% Phần lớn các khung dữ liệu sẽ bị mất Nếu kích thước của khung
dữ liệu giảm xuống 1/3 (4048 bits), hoặc 2/3 tỉ lệ nhận được khung dữ liệu chuẩn sẽ tăng lên Do vậy số lượng khung dữ liệu gửi thành công sẽ nhiều hơn và số lần truyền lại sẽ ít hơn
Vấn đề thứ hai đối với các thiết bị không dây là năng lượng Pin nhiên liệu luôn là vấn đề của các thiết bị không dây Chuẩn 802.11 tập trung vào vấn đề năng lượng để giảm thiểu năng lượng lãng phí của các máy trạm khi nó có dữ liệu cần truyền hoặc nhận Các nút trạm có thể thiết lập chế độ quản lý năng lượng trong các bit của khung dữ liệu mà chúng gửi đến AP để báo với AP rằng nút trạm chuyển sang chế độ tiết kiệm năng lượng (power-save mode) Trong chế độ này, các nút trạm có thể chuyển sang trạng thái ngủ động và AP sẽ đưa các lưu lượng gói tin dự định gửi cho nó vào vùng đệm Để kiểm tra có dữ liệu đến hay không, nút trạm tỉnh dậy sau mỗi khung dữ liệu quảng bá định kỳ từ AP và kiểm tra bản đồ lưu lượng trong khung dữ liệu quảng bá đó Nếu có thông tin dữ liệu từ bản đồ, nút trạm sẽ gửi một yêu cầu đến AP, khi đó AP gửi vùng đệm chờ cho nút trạm để xử lý Ngay sau khi xử lý xong, nút trạm quay về chế độ ngủ đông và chờ tín hiệu đánh thức bằng 1 khung quảng bá dữ liệu từ AP trong lần kế tiếp
Chế độ tiết kiệm năng lượng tiếp theo được gọi là APSD (Automatic Power Save Delivery), được đưa vào 802 11 năm 2005 Với cơ chế này, vùng đệm khung dữ liệu từ AP được gửi cho nút trạm ngay sau khi nút trạm gửi một khung dữ liệu đến Server Nút trạm sau đó chuyển sang chế độ ngủ đông nếu nó không có dữ liệu gửi hoặc nhận Cơ chế này hoạt động tốt trong một số ứng dụng như VoIP, ứng dụng có tần suất trao đổi theo cả 2 chiều dữ liệu cao
Thứ ba là vấn đề tăng cường chất lượng dịch vụ (QoS) Khi lưu lượng VoIP có sự cạnh tranh với lưu lượng của các mạng ngang hàng trong cùng hệ thống mạng, thông thường các lưu lượng của VoIP sẽ bị trì hoãn Sự trì hoãn sẽ dẫn đến quá trình truyền với băng thông cao ưu tiên cho các ứng dụng ngang và không quan tâm đến băng thông dành cho VoIP hiện tại có thể cũng đang rất thấp Điều này làm cho các cuộc gọi VoIP sẽ bị ngắt quãng và ứng dụng sẽ không đạt được hiệu quả mong muốn Để ngăn chăn trường hợp này, chúng ta cần đặt các lưu lượng VoIP có độ ưu
Trang 20Mạng nâng cao – Bài 1 Trang 20
tiên cao hơn IEEE 802.11 có cơ chế cung cấp QoS được đưa vào theo chuẩn 802.11e năm 2005 Chuẩn này làm việc bằng cách mở rộng CSMA/CA với các vòng lặp được định nghĩa cẩn thận trong các khung dữ liệu Sau khi một khung dữ liệu được gửi, một khoảng thời gian rảnh được yêu cầu trước khi bất kỳ nút trạm nào gửi khung dữ kiểm tra đường truyền rảnh Mẹo này định nghĩa 5 lần lặp cho các loại khung dữ liệu khác nhau gồm:
DIFS (DCF InterFrame Spacing): bất kỳ nút trạm này yêu cầu kênh truyền để gửi một khung dữ liệu mới đều phải đợi một khoảng thời gian DIFS
SIFS (Short InterFrame Spacing): được sử dụng cho phép các phần của hội thoại đơn được gửi trước Nút trạm gửi khung dữ liệu tiếp theo sau khoảng thời gian SIFS này ngăn chặn việc các nút trạm khác chen ngang trong thời gian chuyển khung dữ liệu tiếp theo
AIFS (Airbitration InterFrame Space), có vòng lặp ngắn hơn DIFS nhưng dài hơn SIFS Nó có thể sử dụng AP để ưu tiên các khung dữ liệu âm thanh hoặc các khung dữ liệu có độ ưu tiên cao hơn lên đường truyền
EIFS (Extended InterFrame Spacing), chỉ được sử dụng bởi các nút trạm nhận được khung dữ liệu lỗi hoặc không xác định, để phản hồi lỗi tới AP
TXOP (Transmission Opportunity), cơ chế của CSMA/CA nguyên thủy cho phép các nút trạm gửi một khung dữ liệu trong một thời điểm
6 Giao thức ARP
Các nút mạng trên Internet đều được gán bởi địa chỉ IP, tuy nhiên địa chỉ này chưa đủ đề gửi các gói tin đến đúng vị trí đích Giao diện mạng tại tầng liên kết dữ liệu (NICs) như các card mạng Ethernet không có khả năng giao tiếp với giao thức Internet nên không hiểu được địa chỉ IP Trong trường hợp Ethernet, tất cả các card mạng từ các nhà sản xuất đều sử dụng một địa chỉ Ethernet duy nhất có độ dài 48-bit Các nhà sản xuất card mạng Ethernet yêu cầu một khối địa chỉ Ethernet từ IEEE
để đảm bảo rằng sẽ không tồn tại 2 NIC có cùng địa chỉ (tránh trường hợp trùng địa chỉ NIC trong mạng LAN) Các NIC gửi và nhận khung dữ liệu dựa trên 48-bit địa chỉ Ethernet Chúng không liên quan và không hề biết sự tồn tại của địa chỉ IP
Để hiểu rõ hoạt động của NIC Ethernet và địa chỉ IP, chúng ta hãy xem ví dụ qua sơ
đồ hoạt động ở hình sau:
Trang 21Mạng nâng cao – Bài 1 Trang 21
Giả thiết rằng bên gửi (host 1) biết được tên của bên nhận có thể là một địa chỉ như eagle.cs.uni.edu (ví dụ tài liệu gốc) Bước đầu tiên là nó tìm địa chỉ IP cho host 2 Việc tra cứu địa chỉ này được thực hiện bởi DNS, trong trường hợp này giả thiết rằng việc tìm kiếm là thành công và DNS sẽ trả về địa chỉ IP của host 2 là 192.32.65.5
Các ứng dụng ở host 1 sẽ đóng gói một gói tin với địa chỉ 192.32.65.5 vào trường Destination address vào gói tin IP để truyền đi Các ứng dụng trên giao thức
IP có thể đọc địa chỉ IP và tìm địa chỉ đích đến trên hệ thống mạng CS network Tuy nhiên, nó vẫn cần một cách thức nào đó để xác định địa chỉ Ethernet của đích đến để gửi các khung dư liệu (vì Ethernet không hiểu được địa chỉ IP) Giải pháp đưa ra là tạo một tệp tin ở đâu đó trong hệ thống mà có thể ánh xạ địa chỉ IP sang địa chỉ của Ethernet Với giải pháp này thì với mỗi tổ chức có hàng nghìn máy thì việc cập nhật các tệp tin này sẽ có thể phát sinh lỗi hoặc tốn nhiều thời gian xử lý
Giải pháp tối hơn là đối với host 1 gửi một gói tin quảng bá đến Ethernet tìm kiếm nút mạng sở hữu địa chỉ IP 192.32.65.5 Gói tin quảng bá này sẽ gửi đến tất cả các nút trong mạng CS Ethernet, mỗi nút sẽ kiểm tra địa chỉ IP của nó Host 2 sẽ phản hồi với địa chỉ Ethernet của mình (E2) Bằng cách này, host 1 sẽ nhận biết rằng, địa chỉ IP 192.32.65.5 là đang thuộc về host với địa chỉ Ethernet là E2 Giao thức được sử dụng để truy vấn và nhận phản hồi này được gọi là giao thức Phân giải địa chỉ ARP (Address Resolution Protocol) Hầu hết các nút mạng sử dụng giao thức
IP hiện nay đều sử dụng giao thúc này Giao thức ARP được định nghĩa trong RFC
826
Trang 22Mạng nâng cao – Bài 1 Trang 22
Mặt tích cực của việc sử dụng ARP là cấu hình các tệp tin là đơn giản Hệ thống quản lý không cần thực thi nhiều thao tác đăng ký địa chỉ IP cho mỗi nút và quyết định subnetmask tương đương ARP sẽ thực thi nhiệm vụ này
Tại thời điểm này, các ứng dụng IP trên host 1 sẽ tạo một khung dữ liệu Ethernet đến địa chỉ E2, đóng gói vào gói tin IP có địa chỉ 192.32.65.5 và ghi vào trường payload trong khung dữ liệu Card mạng (NIC) của host 2 phát hiện được khung dữ liệu này, nó nhận ra khung dữ liệu này được gửi tói nó và nhận khung dữ liệu này Trình điều khiển Ethernet tách gói tin IP khỏi khung dữ liều và chuyển cho các ứng dụng IP để kiểm tra địa chỉ IP có đúng không và xử lý gói tin đó
Một số các phương pháp tối ưu hóa ARP đến nay được đưa ra nhằm cải tiến giao thức ARP làm việc hiệu quả hơn Phương pháp đầu tiên là mỗi nút mạng khi thực thi giao thức ARP, nó lưu trữ tạm thời kết quả này trong trường hợp nó cần thiết phải liên lạc lại với đúng thiết bị đó trong khoảng thời gian ngắn Lần liên lạc tiếp theo thay vì gửi gói tin quảng bá, nó tìm kiếm trong vùng dữ liệu đệm trước tiên Trong ví dụ trên, host 2 cần liên lại nhiều lần và phàn hồi với host 1, và việc quảng bá gói tin ARP có thể tránh được bằng cách lưu trữ địa chỉ IP – Ethernet của host 1 vào gói tin ARP Khi gói tin ARP quảng bá đến host 2, cặp địa chỉ IP-Ethernet (192.32.65.5, E1) được lưu vào vùng đệm lưu trữ của ARP host 2 (ARP cache host 2) Trên thực tế, tất cả các nút trên mạng Ethernet có thể ttruy xuất ánh xạ vùng đệm ARP của chính nó
Để cho phép ánh xạ cập nhật lại bản ghi ARP, khi một host được cấu hình với địa chỉ IP mới (địa chỉ Ehter không đổi), một bản ghi trong ARP cache sẽ hết hạn sau vài phút Một cách tối ưu hơn để giữ các bản ghi trong vùng lưu trữ và để tối ưu hóa hiệu xuất là tất cả các nút mạng quảng bá lại chính thông tin của mình mỗi khi
có cấu hình thay đổi Việc quảng bá này thay thế cho một phản hồi ARP thông thường bới lý do trên hệ thống mạng cần nhiều nút sẽ cập nhật lại ARP của nút mới thay đổi như vậy về mặt thời gian sẽ tối ưu hơn việc phản hồi tới từng nút đã có giao tiếp với nút này Trường hợp này được gọi là thông báo ARP (gratuitous ARP)
Tiếp tục với ví dụ trên, giả sử rằng tại một thời điểm host 1 muốn gửi dữ liệu đến host 4 (192.32.63.8) thuộc mạng EE network Host 1 sẽ nhận thấy rằng địa chỉ
IP đích không thuộc mạng CS network Nó biết rằng sẽ gửi gói tin đến default gateway (cổng mặc định) là một router để thực hiện việc tìm kiếm địa chỉ IP đích Thông thường, defaul gateway là địa chỉ thấp nhất của mạng đó (198.31.65.1) Để gửi dữ liệu đến router, host 1 sẽ phải biết địa chỉ Ethernet của router đó trên mạng
CS network Host 1 sẽ tìm kiếm địa chỉ Ehternet này bằng cách quảng bá gói tin ARP cho địa chỉ IP 198.31.65.1 và nhận được địa chỉ E3 của router Sau đó host 1 sẽ
Trang 23Mạng nâng cao – Bài 1 Trang 23
gửi khung dữ liệu đến router Có chế tìm kiếm tương tự cũng diễn ra trên router đến các router khác trên Internet
Khi NIC Ethernet của router nhận được khung dữ liệu này, nó sẽ bóc gói tin
IP và chuyển cho ứng dụng IP Xác định được địa chỉ đích đến sẽ phải gửi qua mạng
EE network để đến được host 4, lúc này ARP lại được sử dụng Bảng dữ liệu trên hình liệu kêt địa chỉ nguồn và địa chỉ đích Ethernet và địa chỉ IP được đính kèm trong gói tin thu được trên mạng CS và EE network Nhận thấy rằng, địa chỉ Ethernet thay đổi với khung dữ liệu trên mỗi mạng trong khi địa chỉ IP là hằng số
Có một khả năng gửi gói tin từ host 1 đến host 4 mà không xác định được host 4 nằm trên mạng khác Giải pháp là router phản hồi được ARP trên mạng CS cho host 4 và gửi địa chỉ Ethernet (địa chỉ E3), trong phản hồi Khi đó host 4 có thể phản rồi thực tiếp bởi vì nó không ARP Request (router không chuyển tiếp các gói tin Ethernet dạng quảng bá) Router sau đó sẽ nhận được khung dữ liệu gửi đến địa chỉ 192.32.63.8 và chuyển tiếp chúng đến mạng EE network Giải pháp này được gọi là proxy ARP Nó được sử dụng trong trường hợp đặc biệt khi host muốn xuất hiện trên mạng thậm chí ở ngoài mạng của nó Trong các tình huống thông thường,
ví dụ như thiết bị di động muốn các nút khác nhận các gói tin của nó không cùng mạng
Hết -
Trang 24Mạng Nâng Cao – Bài 2 Trang 1
BÀI 2 CÁC GIAO THỨC ĐỊNH TUYẾN
A Mục tiêu
Sau khi học xong chương này, anh/ chị sẽ nắm được:
Nắm được các phương pháp định tuyến trên IP
Nắm được kiến trúc của Ipv4 và Ipv6
Quản lý thông tin với TCP
B Nội dung
1 Định tuyến trên giao thức IP 21.1 Multicast routing 21.2 Anycast routing 6
2 Ipv4 và Ipv6 82.1 Cấu trúc gói tin Ipv4 82.2 Ipv6 9
3 Quản lý thông tin với TCP 103.1 Định dạng gói tin TCP 103.2 Điều khiển luồng dữ liệu 123.3 Điều khiển tắc nghẽn 14
C Tài liệu tham khảo
[1] TCP Illustrated – Volume 1, Kevin R Fall, W Richard Stevens, Pearson Education Inc, 2012 [2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011
[3] Computer Networking A top-down approach, Kurose, Ross, 2017
[4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014
[5] A brief introduction and analysis of the Gnutella protocol, Gayatri Tribhuvan, University of Freiburg
Trang 25
Mạng Nâng Cao – Bài 2 Trang 2
CÁC GIAO THỨC ĐỊNH TUYẾN
1 Định tuyến trên giao thức IP
Chức năng chính của tầng mạng là định tuyến các gói tin từ nút nguồn đến nút đích Trong hầu hết các mạng, các gói tin sẽ yêu cầu nhiều hops để di chuyển theo hành trình xác định được Chỉ có duy nhất 1 ngoại lệ được phép không thông qua định tuyến là trường hợp các mạng quảng bá, trong trường hợp nút nguồn và nút đích không cùng phân đoạn mạng Các giải thuật định tuyến lựa chọn các tuyến đường và cấu trúc dữ liệu mà chúng sử dụng phần lớn trong lớp mạng
Giải thuật định tuyến là một phần của lớp ứng dụng mạng chịu trách nhiệm quyết định đường vào, ra của các gói tin khi đi qua bộ định tuyến (router) Nếu mạng sử dụng gói tin nội bộ, giải thuật sẽ thực hiện lặp lại đối với các gói tin đến theo định tuyến đã được chọn trong lần gần nhất Nếu mạng sử dụng chuyển mạch
ảo, giải thuật định tuyến chỉ được tạo ra khi có chuyển mạch mới được thiết lập Sau
đó, các gói tin được chuyển tiếp trên tuyến đã được thiết lập bởi bộ định tuyến Trường hợp trên đôi lúc gọi là định tuyến phiên (session routing) bởi vì bộ định tuyến duy trì hiệu lực cho mỗi phiên làm việc (VD: Khi đăng nhập bằng VPN) Các giải thuật định tuyến cơ bản đã được đề cập trong môn học Mạng truyền thông, trong phần này chúng ta sẽ tìm hiểu thêm về cơ chế quảng quá định tuyến là định tuyến nhiều nút (multicast routing) và định tuyến nút bất kỳ (anycast routing)
1.1 Multicast routing
Trong một vài ứng dụng như trò chơi trực tuyến nhiều người chơi hoặc truyền hình trực tiếp các sự kiện thể thao có rất nhiều người theo dõi ở các địa điểm khác nhau, các gói tin sẽ phải gửi đến nhiều người nhận Trừ khi nhóm người nhận rất nhỏ, quá trình gửi các gói tin riêng biệt đến từng nút sẽ làm tiêu tốn nhiều chi phí về băng thông và thời gian Mặt khác, nếu sử dụng các gói tin quảng bá lại gây lãng phĩ tài nguyên nếu các nút nhận trong một thời điểm lại giảm xuống (vd chỉ còn 1,000 nút mạng đang theo dõi trong khi cả hệ thống mạng lên đến 1,000,000 nút), vì vậy
Trang 26Mạng Nâng Cao – Bài 2 Trang 3
các nút mạng còn lại không có nhu cầu để nhận các bản tin mà 1,000 nút mạng kia đang theo và yêu cầu nhận Để giải quyết yêu cầu này, chúng ta cần gửi các gói tin đến các nhóm nút mạng đã được xác định trước thay vì phải thực hiện quảng bá toàn
bộ hệ thông mạng Phương pháp gửi gói tin đến nhóm các nút mạng được gọi là định tuyến nhiều nút (multicasting) và giải thuật định tuyến được gọi là giải thuật định tuyến nhiều nút (multicasting routing) Tất cả các nút định tuyến theo nhóm đều có cơ chế để tạo và hủy nhóm và địa chỉ của nhóm gồm cả các thành viên đều
có khả năng định danh được bởi bộ định tuyến
Cơ chế định tuyến nhiều nút được xây dựng dựa trên định tuyến quảng bá mà chúng ta đã đề cập đến trước đây, các gói tin được gửi thông qua một cây khung để chuyển tiếp các gói tin để các thành viên trong nhóm mà không ảnh hưởng đến băng thông chung của toàn mạng Tuy nhiên, cây khung tốt nhất được sử dụng sẽ phụ thuộc vào thời điểm nhóm được tạo gồm nhiều nút dày đặc hoặc thưa nút, điều này
sẽ làm cho phần lớn các nút đều yêu cầu được nhận như mạng quảng bá hoặc chỉ có một vài nút có yêu cầu nhận tin
Nếu trong một nhóm lớn, thay vì sử dụng định tuyến nhiều nút, định tuyến quảng bá được kiến nghị sử dụng bởi vì hiệu quả của nó sẽ gửi đến toàn bộ hệ thống mạng và chỉ ảnh hưởng nhỏ đến các nút không có nhu cầu nhận tin (vì số lượng các nút này nhỏ) Nhưng quảng bá sẽ gửi đến các bộ định tuyến không nằm trong cùng nhóm, điều này sẽ gây lãng phí băng thông Giải pháp được khám phá bởi 2 nhà khoa học Deering và Cheriton (1990) là sử dụng truyền quảng bá trên cây khung đã được cắt tỉa các đường liên khết không liên quan đến các thành viên trong nhóm Kết quả làm tăng được hiệu quả quảng bá nhiều nút với cây khung
Trang 27Mạng Nâng Cao – Bài 2 Trang 4
Ví dụ với hình trên, ta có hai nhóm 1 và 2 trong hệ thống mạng (a) Một vài
bộ định tuyến đính kèm các nút mạng thuộc một nhóm mạng 1 hoặc 2, trong khi đó một vài bộ định tuyến thuộc cả 2 nhóm Ta xây dựng một cây khung cho phần lớn các bộ định tuyến theo hình bên trái (a) để tạo được cây khung với nhóm mạng trên
ở hình (b) Cây khung này các thể được sử dụng để quảng bá nhưng như vậy thì không còn tồn tại định tuyến nhiều nút tại hệ thống mạng này nữa (vì đã quảng bá đến toàn mạng) Trong hình (c), cây khung chỉ tạo cho với các nút mạng thuộc nhóm
1, các đường liên kết có nhóm 2 đều bị loại bỏ Kết quả là cây khung này chỉ quảng
bá cho nhóm 1 thay vì quảng bá toàn mạng như cây khung (b) Kết quả tương tự với cây khung (d) chỉ quảng bá tới các nút mạng thuộc nhóm 2
Có nhiều cách để cắt tỉa một cây khung Cách đơn giản nhất được sử dụng nếu các liên kết định tuyến trạng thái liên kết được sử dụng, nó cần thêm thông tin hoàn chỉnh về cấu hình mạng trong đó chứa thêm thông tin các nút mạng nào thuộc
về nhóm nào Khi đã có thông tin từng nút mạng, mỗi bộ định tuyến có thể tự tạo
Trang 28Mạng Nâng Cao – Bài 2 Trang 5
một cây khung và cắt tỉa nó cho mỗi nút gửi đến nhóm bằng cách loại bỏ liên kết của các nút không thuộc nhóm đó MOSPF (Multicast OSPF) là một ví dụ về giao thức định tuyến nhiều nút theo phương pháp trên, giao thức được đề xuất bởi Moy (1994)
Với định tuyến vector khoảng cách, một phương pháp cắt tỉa khác được sử dụng Ý tưởng của giải thuật tìm đường chuyển tiếp ngược Tuy nhiên, khi một bộ định tuyến với không có nút mạng quan tâm trong các nhóm riêng biệt và không có liên kết tới các bộ định tuyến khác sẽ nhận được các gói tin dạng multicast, nó sẽ phản hồi bằng một thông điệp “cắt tỉa” (PRUNE) thông báo với các nút lân cận rằng gói tin không được gửi đến bất kỳ nhóm multicast nào từ nút gửi cho nó Khi bộ định tuyến không có thành viên nào của nhóm thuộc về máy chủ của nó nhận được thông điệp trên, nó cũng phản hồi thông điệp PRUNE Theo cách này, cây khung được cắt tỉa theo giải thuật đệ quy DVMRP (Distance Vector Multicast Routing Protocol) là một ví dụ về giao thức định tuyến đa nút nhận hoạt động theo giải thuật trên (Waitzman et al., 1988)
Một trong những nhược điểm của cây khung là tiêu tốn tài nguyên của bộ định tuyến, đặc biệt là trong các hệ thống mạng lớn Giả sử rằng một mạng có n nhóm, mỗi nhóm có m nút Tại mỗi bộ định tuyến và đối với mỗi nhóm, m cây khung cắt tỉa sẽ phải được lưu trữ, do vậy tổng số cây sẽ lên đến m * n cây
Một các thiết kế thay thế khác là sử dụng cây cơ sở (core-based tree) để tính toán mỗi cây khung đơn cho từng nhóm (Ballardie et al., 1993) Tất cả các bộ định tuyến đồng thuận tại nút gốc gọi là nút core hoặc rendezvous point và bắt đầu xây dựng cây bằng cách gửi các gói tin từ các thành viên đến nút gốc Cây là sự hợp nhất của các đường đi mà đã được dò vết bởi các gói tin này Hình (a) dưới đây biểu diễn cây cơ sở cho nhóm 1 Để gửi đến nhóm này, nút gửi sẽ gửi một gói tin đến nút gốc Khi gói tin đến nút gốc, nó được chuyển tiếp xuống dưới cây Hình (b) biểu diễn nút gửi ở phía bên phải của mạng Để tối ưu hóa hiệu suất, các gói tin đích của nhóm sẽ không cần phải gửi đến nút gốc trước khi chúng được gửi multicast Ngay khi các
Trang 29Mạng Nâng Cao – Bài 2 Trang 6
gói tin đến được cây, nó được chuyển tiếp đến nút gốc, sau đó tiếp tục được chuyển tiếp về các nhánh
Một cây được chia sẻ không phải là tối ưu cho tất cả các nguồn Ví dụ như hình (b), gói tin từ nút gửi bên phải chuyển đến đỉnh trên cùng bên phải nhóm các thành viên thông qua nút core bằng 3 hops, thay vì chuyển đến trực tiếp Sự kém hiệu quả phụ thuốc vào vị trí của điểm core, nhưng thông thường điểm lõi core sẽ được đặt ở vị trí giữa so với nút gửi Khi chỉ có một nút gửi đơn, như trong các ứng dụng video trực tuyến, sử dụng chính nút gửi làm nút core là một cách tối ưu nhất Cũng cần lưu ý rằng các cây chia sẻ có thể tiết kiệm được phần lớn chi phí lưu trữ, gửi bản tin và khả năng tính toán Mỗi bộ định tuyến chỉ lưu trữ duy nhất một cây cho mỗi nhóm, thay vì phải lưu trữ m cây Ngoài ra, các bộ định tuyến không thuộc cây được giải phóng để thực thi nhiệm vụ riêng không liên quan đến nhóm Chính vì lý do đó, cách tiếp cận cây chia sẻ như là cây lõi cơ sở được sử dụng cho định tuyến đa điểm đến các nhóm thưa trên Internet như là giao thức phổ biến PIM (Protocol Independent Multicast) (Ferner et al., 2006)
1.2 Anycast routing
Một mô hình vận chuyển gói tin khác gọi là định tuyến nút bất kỳ (anycast) cũng được sử dụng trong nhiều trường hợp Trong định tuyến nút bất kỳ, một gói tin
Trang 30Mạng Nâng Cao – Bài 2 Trang 7
được chuyển tới thành viên gần nhất của nhóm (Partdge et al., 1993) Cơ chế tìm đường theo hướng này được gọi là định tuyến nút bất kỳ
Giả sử rằng, chúng ta muốn định tuyến bất kỳ đến các thành viên trong nhóm
số 1 Chúng sẽ được gán địa chỉ là “1” thay vì mỗi thành viên có một địa chỉ riêng Định tuyến vector khoảng cách sẽ phân phối các vector đường đi bình thường và các nút sẽ chọn đường ngắn nhất tới địa chỉ 1 Kết quả là nút phát sẽ gửi gói tin tới nút đích gần nhất đại diện cho nhóm 1 Bộ định tuyến trong hình (a) biểu diễn ý nghĩa này Thủ tục này hoạt động bởi vì giao thức định tuyến không nhận ra có nhiều địa chỉ 1 trên mạng thay vào đó nó chỉ nhận diện ra một nút có địa chỉ “1” gần nó nhất
Do vậy, bộ định tuyến sẽ coi toàn bộ các nút có địa chỉ 1 là một nút duy nhất, trong hình (b)
Đối với định tuyến trạng thái liên kết cũng tương tự, mặc dù có một sự cân nhắc rằng giao thức định tuyến chưa phải là đường ngắn nhất đi qua nút 1 Điều này có thể dẫn đến bước nhảy siêu không gian từ nút 1 thực sự gần nút gửi nhất mà thay vào đó nó định tuyến tới nút 1 nằm ở mạng khác Tuy nhiên, giao thức định tuyến trạng thái liên két săn sàng tạo các đường liên kết duy nhất giữa các bộ định tuyến
và máy chủ
Trang 31Mạng Nâng Cao – Bài 2 Trang 8
2 Ipv4 và Ipv6
2.1 Cấu trúc gói tin Ipv4
Cấu trúc và hoạt động của bản tin Ipv4 đã được nghiên cứu trong giáo trình Mạng máy tính trong phần này chúng ta sẽ nhắc lại các thành phần của gói tin Ipv4, địa chỉ Ipv4 trước khi chuyển sang so sánh và tìm hiểu kiến trúc của Ipv6 Kiến trúc header của gói tin Ipv4 bao gồm các trường như sau:
Version: đánh dấu phiên bản của gói tin IP
Header length: độ dài vùng header của gói tin IP
ToS (Type of Service): phân biệt loại dịch vụ của tầng trên và mức ưu tiên của dịch vụ được cung cấp
Total length: độ dài gói tin IP
Identifier, flags, fragment offset: ba trường dùng để định danh mảnh (fragment) của gói tin IP
TTL (Time-to-live) quy định số bước nhảy hops của mỗi gói tin IP khi di chuyển trên mạng
Protocol: xác định loại giao thức tầng giao vận
Header Checksum: xác định lỗi trên gói tin IP nhận được
Source Address, Destination Addess: địa chỉ IP nguồn và địa chỉ IP đích
Options, tùy chọn cho phép mở rộng vùng header của gói tin IP
Data (payload): dữ liệu của gói tin IP được đóng gói trong Transport Segment
Trang 32Mạng Nâng Cao – Bài 2 Trang 9
Các nghiên cứu về hoạt động và phân mảnh của Ipv4 đã được tìm hiểu trong các môn học trước, chúng ta sẽ so sanh với Ipv6 để thấy được các nâng cấp, cải tiến trong công nghệ hiện nay
2.2 Ipv6
Nhưng năm 1990, sự ra đời của Ipv4 đã tạo ra thành công của giao thức IP, song song với đó việc nghiên cứu phát triển các giao thức mở rộng tiếp tục được thực hiện nhằm mở rộng giới hạn của Ipv4 Năm 2011, IANA thông báo đã cạn kiệt nguồn tài nguyên địa chỉ Ipv4 cung cấp cho các khu vực và chuyển sang sử dụng Ipv6 Kiến trúc của Ipv6 header tương tự như Ipv4 đã được biểu diễn ở trên, chỉ có một số điểm khác biệt như:
Mở rộng vùng địa chỉ: vùng địa chỉ được mở rộng từ 32 bit lên 128 bits cung cấp một không gian địa chỉ cực lớn cho các ứng dụng và thiết bị sử dụng sau này Ipv6 cung cấp loại địa chỉ mới gọi là anycast address, cho phép các gói tin được chuyển đến nút gấn nhất trong một nhóm
Tăng kích thước vùng header: để chứa nhiều thông tin quản lý gói tin và cố định tại 40 byte Điều này làm giảm việc tính toán độ dài header cho mỗi gói tin nhận được
Trang 33Mạng Nâng Cao – Bài 2 Trang 10
Đánh nhãn luồng: Ipv6 có một đinh nghĩa về trạng thái luồng [RFC 2460] cho phép gán nhãn các gói tin thuộc từng luồng của mỗi nút gửi
Traffic class: tương tụ như trường TOS trong Ipv4
Flow Label: định danh và đánh dấu luồng dữ liệu
Next header: tương tự trường Protocol trong Ipv4
Hop limit: tương tự TTL
Source Address, Destination Addres: địa chỉ trong Ipv6 được mở rộng lên 128 bit
Phân mảnh và gộp gói tin: Ipv6 không cho phép phân mảnh và gộp mảnh tại các router, thao tác này chỉ được thực hiện tại nguồn phát và đích nhận
Với kiến trúc không có nhiều thay đổi nhưng lại có nhiều cải tiến trong phương pháp tổ chức, định tuyến và quản lý gói tin, Ipv6 hiện tại đã là giao thức phổ biến trên nền tảng Internet hiện nay Không gian địa chỉ mở rộng, tính hiệu quả trong định tuyến sẽ là yếu tố để các ứng dụng hiện đại sẽ chuyển dịch từ Ipv4 sang Ipv6
3 Quản lý thông tin với TCP
3.1 Định dạng gói tin TCP
TCP là giao thức truyền thông hướng kết nối bởi vì các ứng dụng phải thiết lập giai đoạn “bắt tay” trước khi thực hiện truyền tin Thủ tục bắt tay ba bước là yêu cầu đặc trưng của truyền thông tin cây TCP Trong thủ tục này cả hai bên truyền thông đều phải khởi tạo các biến trạng thái kết hợp với kết nối TCP để quản lý thông tin và điều khiển luồng tin
Khi kết nối TCP được thiết lập, hai ứng dụng đầu cuối TCP có thể trao đổi dữ liệu với nhau Khi dữ liệu được gửi qua lớp TCP xuống bộ đệm TCP với kích thước được khởi tạo trong phiên bắt tay Ở đầu nhận, TCP liên tục thu thập các gói tin TPC
và lưu vào vùng đệm trước khi chuyển lên tầng ứng dụng Trong quá trình truyền tin kích thước của mỗi bản tin được đặt giới hạn bằng giá trị MTU (maximum transmission unit) để đảm bảo rằng gói tin TCP sau khi đóng gói cũng sẽ không
Trang 34Mạng Nâng Cao – Bài 2 Trang 11
vượt quá kích thước của một khung dữ liệu quy định tại lớp liên kết mạng layer)
(link-Khi các segment về đến đầu nhận, chúng được đặt tại bộ đệm nhận trước khi chuyển lên cho ứng dụng Mỗi đầu kết nối đều thiết lập một vùng đệm gọi là bộ đệm gửi và bộ đệm nhận được sử dụng để điều khiển luồng truyền trên TCP Trước khi tìm hiểu về cơ chế điều khiển luồng, chúng ta hãy ôn lại kiến trúc của một gói tin TCP như sau
Source Port, Destination Port (32 bit): địa chỉ cổng nguồn, đích được sử dụng để tách và dồn kênh cho các ứng dụng lớp trên, nó được sử dụng để định danh dịch
vụ tầng ứng khi truyền dữ liệu qua các cổng tầng giao vận
Trang 35Mạng Nâng Cao – Bài 2 Trang 12
Sequence Number, Acknowledgement number (32 bit): được sử dụng bởi đầu gửi
và nhận của TCP để thực thực hiện các cơ chế truyền thông tin cậy
Receive widnow (16 bit): được dùng trong điều khiển luồng, quy định kích thước tối đa dữ liệu bộ đệm nhận có thể chấp nhận được
Header length (4 bit): quy định độ dài của vùng TCP Header tính theo đơn vị words (32 bit)
Flags: trường cờ (6 bit): quy định loại gói tin TCP
o Bit ACK: được sử dụng chỉ định giá trị trong trường Acknowledgement là hợp lệ
o RST, SYN, FIN: là các bit được sử dụng để thiết lập, hủy kết nối
o PSH: yêu cầu bên nhận chuyển giao dữ liệu ngay lập tức cho ứng dụng
o URG bit được sử dụng chỉ định vùng dữ liệu khi gửi cho ứng dụng được đánh dấu là “khẩn cấp” Địa chỉ của byte cuối của vùng dữ liệu khẩn cấp được đặt trong 16 bit của trường Urgen data Pointer
3.2 Điều khiển luồng dữ liệu
Khi kết nối TCP nhận được các bytes dữ liệu và sắp xếp thành chuỗi thứ tự, chúng được đặt trong bộ đệm Ứng dụng truy cập dữ liệu sẽ đọc dữ liệu từ vùng đệm này, và không yêu cầu đọc đồng thời ngay khi dữ liệu vừa đến vùng đệm Trên thực
tế, các ứng dụng nhận có thể bị trì hoãn bởi các nhiệ vụ khác và không có khả năng nhận dữ liệu sau một khoảng thời gian đủ lớn khi dữ liệu đã về đến bộ đệm nhận Nếu tốc độ đọc dữ liệu giảm xuống, bên gửi có thể sẽ làm tràn bộ đệm nhận khi tốc
độ gửi quá nhanh và nhiều
Do vậy TCP cung cấp cơ chế kiểm soát luồng để loại bỏ khả năng làm tràn bộ đệm nhận Điều khiển luồng là cơ chế khớp tốc độ truyền của các dịch vụ gửi và nhận theo mộ tỉ lệ cân đối Ngoài ra bên gửi TCP cũng có thể điều tiết vấn đề đụng
độ tại mạng IP, cơ chế bên gửi điều khiển luồng này được gọi là kiểm soát tắc nghẽn
sẽ đề cập tới phần sau Trong phần này chúng ta nghiên cứu tới khả năng điều khiển luồng dữ liệu của TCP, để đơn giản chúng ta bỏ qua trường hợp bên nhận hủy bỏ các segment đến sai thứ tự
Trang 36Mạng Nâng Cao – Bài 2 Trang 13
TCP điều khiển luồng bằng cách bên gửi duy trì một giá trị gọi là receive window (cửa sổ nhận) Một cách không chính thức, của sổ nhận được sử dụng để cho phép bên gửi dự kiến dung lượng vùng đệm còn trống ở bên nhận Bởi vì TCP
là truyền song công hai chiều, bên gửi tại mỗi đầu kết nối đều phải duy trì các giá trị của sổ nhận khác nhau Xem xét ví dụ truyền tin sau Giả thiết Host A đang gửi một tệp tin lớn cho Host B thông qua kết nối TCP Host B định vị bộ đếm nhận cho kết nối này, ký hiệu là RcvBuffer Sau một khoảng thời gian, ứng dụng xử lý bên Host
B đọc dữ liệu từ bộ đêm Ký hiệu:
LastByteRead: số byte của byte cuối cùng trong dòng dữ liệu đọc từ bộ đệm bởi ứng dụng tại B
LastByteRcvd: số byte của byte cuối cùng trong dòng dữ liệu đến từ mạng và sẽ thay thế vùng đệm nhận tại B
Bởi vì TCP không được phép làm tràn vùng đệm, nên ta có
LastByteRcvd – LastByteRead ≤ RcvBuffer
Cửa sổ nhận, ký hiệu là rwnd được thiết lập kích thước vùng trống trong bộ đệm
rwnd= RcvBuffer – [LastByteRcvd – LastByteRead]
Do vùng trống thay đổi theo thời gian nên giá trị rwnd là động Biến rwnd được biểu diễn ở hình trên Host B sẽ thông báo tới Host A vùng trống mà nó còn trong
Trang 37Mạng Nâng Cao – Bài 2 Trang 14
bộ độ bằng cách đặt giá trị hiện thời của rwnd vào trong trường receive window của mỗi segment nó tửi tới A Khi khởi tạo, Host B thiết lập giá trị rwnd = RcvBuffer Host B sẽ phải theo dõi các giá trị kết nối đặc biệt này Đến lượt Host A theo dõi hai biến LastByteSent và LastByteAcked, giá trị LastByteSent – LastByteAcked là lượng dữ liệu A gửi tới kết nối Bằng cách giữ lưu lượng nhỏ hơn giá trị rwnd Host
A đảm bảo rằng sẽ không tràn bộ đệm tại Host B Do vậy, Host A đảm bảo rằng trong suốt quá trình truyền
về vùng trống còn lại tại bộ đệm của Host B, Host A sẽ bị khóa và không truyền dữ liệu tiếp theo Để giải quyết vấn đề này, TCP yêu cầu đặc biêt Host A tiếp tục gửi dữ liệu tới Host B với mỗi gói tin chỉ chứa 1 bytes dữ liệu khi kích thước vùng đệm nhận còn lại của B bằng 0 Bằng cách đó, các gói tin này sẽ được phản hồi bởi bên nhận ngay cả khi bộ đệm nhận bắt đầu rỗng nó vẫn duy trì một giá trị rwnd khác không
3.3 Điều khiển tắc nghẽn
Tắc nghẽn xảy ra khi bên gửi phát liên tục dữ liệu mà bên nhận không thực hiện và xử lý kịp TCP sẽ thực hiện giới hạn tỉ lệ truyền xuống đường truyền như là chức năng phát hiện tắc nghẽn Nếu TCP phát hiện tắc nghẽn xảy ra nhỏ hoặc không
có, TCP sẽ tăng tỉ lệ truyền tin, ngược lại nếu tắc nghẽn xảy ra trên đoạn truyền dài, bên gửi sẽ giảm tốc độ truyền Cơ chế điều khiển bên gửi theo dõi tắc nghẽn luồng được thực hiện bằng cách theo dõi một biến gọi là cửa sổ đụng độ, congestion window (ký hiệu cwnd), là giá trị ràng buộc tỉ lệ truyền của bên gửi Như vậy lượng tin truyền phải thoản mãn điều kiện
Trang 38Mạng Nâng Cao – Bài 2 Trang 15
LastByteSent – LastByteAcked ≤ min {cwnd, rwnd}
Tại thời điểm bắt đầu của RTT (Round Trip Time, thời gian từ lúc client gửi request cho đến khi nó nhận được gói tin), ràng buộc cho phép bên gửi gửi byte cwnd xuống đường truyền, đến cuối chu kỳ RTT bên gửi nhận được thông điệp ACK Như vậy, bên gửi gửi tỉ lệ là cwnd/RTT byte/sec Bằng cách điều chỉnh giá trị cwnd, bên gửi có thể điều chỉnh tỉ lệ bit gửi xuống đường truyền TCP phát hiện được tắc nghẽn xảy ra khi nó nhận được nhiều hơn một tín hiệu ACK về cùng một gói tin từ bên nhận Tắc nghẽn xảy ra tại router là kết quả của nhiều tình huống mà trong đó router quyết định hủy (drop) gói tin này, khi đó bên nhận sau khi hết time-out sẽ yêu cầu lại gói tin bị mất Kết quả là bên gửi nhận được liên tục các gói tin ACK về gói tin bị mất ám chỉ việc tắc nghẽn đã xảy ra trên đường truyền
Các thuật toán điều khiền luồng chống tắc nghẽn được nghiên cứu và phát triển bởi Jacobson (1988) được chuẩn hóa trong [RFC 5681] Giải thuật gồm ba thành phần chính: Xuất phát chậm (slow start), tránh tắc nghẽn (congestion avoidance), và khôi phục nhanh (Fast recovery)
a) Xuất phát chậm
Khi một kết nối TCP bắt đầu, giá trị cwnd được khởi tạo với một giá trị nhỏ của 1 MSS (Maximum Segment Size, kích thước tối đa của một phân mảnh TCP), kết quả là tỉ lệ của MSS /RTT Ví du, nếu MSS = 500 bytes và RTT = 200 ms thì tỉ
lệ truyền cwnd = 500/200 ≈ 20 kbps Sau đó băng thông của bên gửi TCP có thể tăng dần và lớn hơn giá trị MSS / RTT và TCP muốn tìm được băng thông sẵn sàng nhanh nhất Do vậy trong giai đoạn “xuất phát chậm”, giá trị của cwnd bắt đầu tại 1 MSS và tăng lên mỗi 1 MSS sau khi nhận được ACK
Trang 39Mạng Nâng Cao – Bài 2 Trang 16
Như vậy số lượng các segment được truyền sau mỗi RTT tăng gấp 2 lần Cho đến ngưỡng nhất định để đạt được trạng thái ổn định mà không rơi vào tắc nghẽn TCP sử dụng một biến trạng thái ssthresh (slow start threshold, ngưỡng trạng thái)
= cwnd / 2 bằng một nửa giá trị của cửa sổ tắc nghẽn khi phát hiện ra tắc nghẽn Khi phát hiện tắc nghẽn, giá trị ssthresh sẽ là giá trị để khôi phục lại cwnd và quá trình truyền quay về trạng thái ổn định
b) Tránh tắc nghẽn
Sau khi tính toán giá trị ssthresh và cwnd, TCP sẽ phải không tiếp tục tăng MSS liên tục nữa mà sẽ chuyển sang trạng thái thứ 2 là phòng tránh tắc nghẽn Khi chuyển sang trạng thái tắc nghẽn, giá trị của cwnd là xấp xỉ ½ giá trị của nó trong lần tắc nghẽn gần đây nhất Thay vì tiếp tục nhân đôi giá trị cwnd (trong pha slow-start), TCP sẽ chuyển sang cách tiếp cận khác là tăng lần lượt giá trị cwnd lên một đơn vị bằng cách tăng lần lượt số segment +1 trong các lần gửi tiếp theo Một cách tiếp cận khác thay vì tăng lần lượt tuyến tính, số lượng segment tăng sẽ theo tỉ lệ MSS / cwnd cho mỗi lần gửi thành công Ví dụ nếu MSS là 1,460 bytes và cwnd =
14, 600 bytes thì mỗi lượt gửi trong một RTT sẽ bao gồm 10 sengments
Trang 40Mạng Nâng Cao – Bài 2 Trang 17
Tuy nhiên dù việc tăng tỉ lệ truyền một cách tuyến tính hoặc dựa trên tỉ lệ MSS/cwnd thì sau một khoảng thời gian đủ lớn, tắc nghẽn vẫn xảy ra, cwnd lại bị khôi phục về giá trị ssthresh (bằng ½ giá trị cwnd khi xảy ra tắc nghẽn) Đến lúc này TCP chuyên sang giai đoạn thứ ba, khôi phục nhanh (fast recovery)
c) Khôi phục nhanh
Trong giai đoạn khôi phục nhanh, giá trị của cwnd tăng tuần tự lên 1 MSS cho mỗi ACK trùng nhau bơi hiện tượng mất segment, khi đó TCP chuyển sang trạng thái khôi phục nhanh, Thậm chí khi ACK thông báo về mất segment được gửi đến, TCP chuyển sang trạng thái tránh tắc nghẽn sau khi giải phóng cwnd Nếu hết thời gian, khôi phục nhanh sẽ chuyển về trạng thái slow-star sau khi thực hiện các hành động lặp liên tục như slow start và congestion avoidance: giá trị của cwnd lại thiết lập về 1 MSS, và giá trị của ssthresh lại bằng ½ giá trị cwnd khi sự kiện mất xảy ra Khôi phục nhanh được khuyến nghị sử dụng chứ không phải là thành phần bắt buộc, chi tiết tham khảo tại [RFC 5681]
Hết -