Tải bản đầy đủ (.pdf) (137 trang)

Bài giảng mạng máy tính nâng cao it54 Đại học mở hà nội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.46 MB, 137 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 1</small>

<b>BÀI 1 </b>

<b>QUẢN LÝ TRUY CẬP ĐƯỜNG TRUYỀN </b>

<i><b>A. Mục tiêu </b></i>

<i><small>Sau khi học xong chương này, anh/ chị sẽ nắm được: </small></i>

 <small>Các phương pháp quản lý đường truyền</small> <small>Giao thức định tuyến Ipv6</small>

 <small>Quản lý thơng tin với gói tin TCP</small>

<i><b>C. Tài liệu tham khảo </b></i>

<i><b>[1] TCP Illustrated – Volume 1, Kevin R. Fall, W. Richard Stevens, Pearson Education Inc, 2012 </b></i>

<i><b>[2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011 [3] Computer Networking A top-down approach, Kurose, Ross, 2017 </b></i>

<i><b>[4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014. </b></i>

<i><b>[5] A brief introduction and analysis of the Gnutella protocol, Gayatri Tribhuvan, University of Freiburg </b></i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 2</small>

<b>QUẢN LÝ TRUY CẬP ĐƯỜNG TRUYỀN </b>

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:

<small>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 </small>

<small>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. </small>

Để 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). Q 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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 3</small>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 q 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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 4</small>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 tố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.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 5</small>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).

<b>1. Phương pháp ALOHA </b>

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.

<i>a. ALOHA thuần túy: </i>

Ý 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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 6</small>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.

<i>b. ALOHA chia khe (Slotted ALOHA) </i>

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.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 7</small>

<b>2. Phương pháp CSMA/CD truyền thống </b>

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 tố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ì

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 8</small>hỗn q 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ì hỗ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à q 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 hồn thành q 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ỏ q 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 t<sub>0</sub>, 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 t<sub>0</sub>, một nút bắt đầu truyền tin, tại thời

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 9</small>điểm t<small>0 + </small> , 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.

<b>3. Các giao thức đụng độ tự do </b>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 10</small>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 qt, 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 q 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ự đó ln 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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 11</small>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 q 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.

<b>4. Quản lý truy cập đường truyền với 802.11 MAC </b>

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 số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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 12</small>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 ngồ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 tồ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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 13</small>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 q 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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 14</small>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 đó.

<b>5. Kiến trúc 802.11 và chồng giao thức </b>

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 15</small>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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 16</small>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ó hồ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ó hồ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 tồ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

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 17</small>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 hồn tồ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ì hỗ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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 18</small>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 hồn thành q 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ì hỗn q trình truyền tin cho đến khi A hồn thành xong. D khơng nhận được tín hiệu RTS do nằm ngồ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ì hỗn q 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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 19</small>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)<sup>n</sup>.

VD: Với p = 10<small>-4</small>, 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ì hỗn. Sự trì hỗn sẽ dẫn đến q 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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 20</small>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:

<small> 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. </small>

<small> 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 </small>

<small> 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. </small>

<small> 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. </small>

<small> 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. </small>

<b>6. Giao thức ARP </b>

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:

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 21</small>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.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 22</small>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ẽ

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b><small>Mạng nâng cao – Bài 1</small></b> <small> Trang 23</small>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í ở ngồ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.

<i><b>---- Hết --- </b></i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 1 </small>

<b>BÀI 2 CÁC GIAO THỨC ĐỊNH TUYẾN </b>

<i><b>A. Mục tiêu </b></i>

<i><small>Sau khi học xong chương này, anh/ chị sẽ nắm được: </small></i>

 <small>Nắm được các phương pháp định tuyến trên IP</small> <small>Nắm được kiến trúc của Ipv4 và Ipv6</small>

 <small>Quản lý thông tin với TCP</small>

<i><b>B. Nội dung </b></i>

1 Định tuyến trên giao thức IP ... 21.1 Multicast routing ... 21.2 Anycast routing ... 62 Ipv4 và Ipv6 ... 82.1 Cấu trúc gói tin Ipv4 ... 82.2 Ipv6 ... 93 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

<i><b>C. Tài liệu tham khảo </b></i>

<i><b><small>[1] TCP Illustrated – Volume 1, Kevin R. Fall, W. Richard Stevens, Pearson Education Inc, 2012 [2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011 </small></b></i>

<i><b><small>[3] Computer Networking A top-down approach, Kurose, Ross, 2017 </small></b></i>

<i><b><small>[4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014. </small></b></i>

<i><b><small>[5] A brief introduction and analysis of the Gnutella protocol, Gayatri Tribhuvan, University of Freiburg </small></b></i>

<i><b> </b></i>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 2 </small>

<b>CÁC GIAO THỨC ĐỊNH TUYẾN 1 Định tuyến trên giao thức IP </b>

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)

<i><b>1.1 Multicast routing </b></i>

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ỏ, q 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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 3 </small>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á tồ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 tồ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 tồ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.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 4 </small>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 tồ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 hồ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

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 5 </small>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 tố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

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 6 </small>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 tố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. Ngồ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).

<i><b>1.2 Anycast routing </b></i>

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

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 7 </small>đượ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 tồ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ủ.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 8 </small>

<b>2 Ipv4 và Ipv6 </b>

<i><b>2.1 Cấu trúc gói tin Ipv4 </b></i>

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:

<small>Version: đánh dấu phiên bản của gói tin IP. </small>

<small>Header length: độ dài vùng header của gói tin IP </small>

<small> 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. </small>

<small> Total length: độ dài gói tin IP. </small>

<small>Identifier, flags, fragment offset: ba trường dùng để định danh mảnh (fragment) của gói tin IP. </small>

<small> 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. </small>

<small>Protocol: xác định loại giao thức tầng giao vận. </small>

<small>Header Checksum: xác định lỗi trên gói tin IP nhận được. </small>

<small>Source Address, Destination Addess: địa chỉ IP nguồn và địa chỉ IP đích. </small>

<small> Options, tùy chọn cho phép mở rộng vùng header của gói tin IP. </small>

<small> Data (payload): dữ liệu của gói tin IP được đóng gói trong Transport Segment. </small>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 9 </small>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.

<i><b>2.2 Ipv6 </b></i>

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ư:

<small> 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. </small>

<small>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 tốn độ dài header cho mỗi gói tin nhận được. </small>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 10 </small>

<small>Đá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. </small>

<small> Traffic class: tương tụ như trường TOS trong Ipv4 </small>

<small>Flow Label: định danh và đánh dấu luồng dữ liệu </small>

<small> Next header: tương tự trường Protocol trong Ipv4 </small>

<small>Hop limit: tương tự TTL </small>

<small>Source Address, Destination Addres: địa chỉ trong Ipv6 được mở rộng lên 128 bit </small>

<small> 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. </small>

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.

<b>3 Quản lý thông tin với TCP </b>

<i><b>3.1 Định dạng gói tin TCP </b></i>

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 q 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

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 11 </small>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 (link-layer).

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.

<small> 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. </small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 12 </small>

<small> 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. </small>

<small> 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 </small>

<small> Header length (4 bit): quy định độ dài của vùng TCP Header tính theo đơn vị words (32 bit) </small>

<small>Flags: trường cờ (6 bit): quy định loại gói tin TCP </small>

<small>o Bit ACK: được sử dụng chỉ định giá trị trong trường Acknowledgement là hợp lệ. </small>

<small>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 </small>

<small>đá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 </small>

<i><b>3.2 Điều khiển luồng dữ liệu </b></i>

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ì hỗ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. Ngồ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ự.

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 13 </small>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:

<small> 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 </small>

<small> 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 </small>

Bởi vì TCP khơng được phép làm tràn vùng đệm, nên ta có

<b>LastByteRcvd – LastByteRead ≤ RcvBuffer </b>

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

<b>rwnd= RcvBuffer – [LastByteRcvd – LastByteRead] </b>

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

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 14 </small>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 q trình truyền

<b>LastByteSent -LastByteAcked ≤ rwnd </b>

Có một vấn đề nhỏ với kỹ thuật này. Giả sử khi bộ đệm nhận Host B bị đầy, lúc này rwnd = 0. Sau khi gửi giá trị rwnd = 0 tới Host A, đồng nghĩa với việc B khơng có gì để gửi cho A. Khi ứng dụng xử lý hết dữ liệu tại bộ đệm B, TCP khơng gửi gói tin mới với giá trị rwnd mới tới Host A, thay vào đó TCP chỉ gửi một gói tin tới Host A hoặc dữ liệu hoặc một ACK. Do vậy Host A, sẽ khơng nhận được thơng tin 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.

<i><b>3.3 Điều khiển tắc nghẽn </b></i>

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

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 15 </small>

<b>LastByteSent – LastByteAcked ≤ min {cwnd, rwnd} </b>

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)

<small>a) Xuất phát chậm </small>

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

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 16 </small>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.

<small>b) Tránh tắc nghẽn </small>

Sau khi tính tố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.

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<b><small>Mạng Nâng Cao – Bài 2</small></b> <small> Trang 17 </small>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)

<small>c) Khôi phục nhanh </small>

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]

<small>-- Hết --- </small>

</div>

×