Khi đú, ta cú bảng sau, tương ứng của giỏ trị đầu vào và đầu ra
Input 0 0 1 0 1 0 0 0 1 1
Output 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1
3.3.4.2 Kỹ thuật yờu cầu trả lời tự động ARQ
Cú ba kỹ thuật yờu cầu trả lời tự động cơ bản:
a) Stop and Wait ARQ:
Trong kỹ thuật này, dữ liệu được chia thành cỏc khối hay gúi, được đỏnh số. Tại đầu thu, bờn thu kiểm tra số thứ tự cỏc gúi nhận được. Nếu đỳng thứ tự thỡ nú gửi trở lại tớn hiệu biờn nhận ACK và chờ gúi được bờn gửi phỏt tiếp theo. Cũn nếu bờn thu nhận gúi tin bị lỗi, nú sẽ gửi tớn hiệu NAK bỏo cho nơi phỏt biết rằng dữ liệu đó bị lỗi và yờu cầu nơi phỏt phỏt lại gúi dữ liệu đú.
Nhược điểm của kỹ thuật Stop and Wait là nú phải gửi xỏc nhận cho mọi gúi, nếu cự ly truyền dẫn xa thỡ làm tăng đỏng kể thời gian truyền dẫn.
b) Go back N ARQ:
1100010100 0 0 0 1 x x2
x2 1
71
Để khắc phục nhược điểm của Stop and Wait người ta đưa ra phương phỏp Go back N ARQ. Với phương phỏp này nơi phỏt cú thể phỏt liờn tiếp nhiều gúi, mỏy thu cú thể gửi tớn hiệu xỏc nhận ACK hoặc NAK cho cỏc gúi đú.
Mỗi lần mỏy thu gửi tớn hiệu NAK kốm theo số thứ tự một gúi tin nào đú, thỡ mỏy phỏt phỏt lại tất cả cỏc gúi từ gúi cú số thứ tự được xỏc định bởi tớn hiệu NAK. Vớ dụ mỏy phỏt gửi cỏc gúi từ 1-5, giả sử gúi số 2 bị lỗi và bờn nhận gửi lại tớn hiệu NAK thỡ bờn gửi phải gửi lại cỏc gúi từ 2-5.
Nhược điểm của Go back N ARQ là nú phải gửi lại tất cả cỏc gúi kể từ gúi bị lỗi, điều này làm giảm tớnh hiệu quả vỡ khi chỉ cú một gúi bị lỗi, vẫn phải loại tất cả cỏc gúi khụng bị lỗi nhưng cú số thứ tự lớn hơn gúi bị lỗi khi đến đớch.
c) Continuous ARQ:
Để khắc phục nhược điểm của Go back N ARQ người ta đưa ra phương phỏp Continuous ARQ. Trong phương phỏp này, cỏc gúi tin được truyền nếu bị lỗi thỡ chỉ phải truyền lại riờng cỏc gúi bị lỗi chứ khụng phải truyền lại tất cả cỏc gúi tin từ gúi tin lỗi như trong phương phỏp Go back N. Phương phỏp này cho phộp tăng đỏng kể tốc độ truyền dẫn nhưng thuật toỏn phức tạp, cần nhiều bộ nhớ đệm tại bờn thu.
3.3 Sử dụng đường thuờ bao số trong mạng mỏy tớnh.
Hiện nay việc sử dụng đường dõy thuờ bao số để kết nối mạng mỏy tớnh đang phỏt triển mạnh mẽ trờn thế giới cũng như ở Việt Nam. Trong tương lai kỹ thuật này cũn được ứng dụng rộng rói hơn nữa, do vậy việc nghiờn cứu đỏnh giỏ hiệu suất của mạng dựng đường truyền này là cần thiết. Chỳng tụi đưa ra một số giải phỏp đỏnh giỏ hiệu suất mạng khi dựng đường thuờ bao số
72
Chương 3: Đỏnh giỏ hiệu suất mạng và mụ phỏng mạng bằng chương trỡnh ns.
3.1 Giới thiệu chung về đỏnh giỏ hiệu suất mạng
Trong thực tế núi chung và trong lĩnh vực mạng mỏy tớnh núi riờng, đỏnh giỏ hiệu suất là một trong những việc hết sức cần thiết khi thiết kế, vận hành một hệ thống. Hiệu suất hoạt động của một hệ thống thường gắn liền với năng suất làm việc của nú. Trong mạng mỏy tớnh, cỏc nhõn tố chớnh quyết định hiệu suất là: tớnh sẵn sàng để dựng (availability), thụng lượng (throughput) và thời gian đỏp ứng (response time). Ngoài ra, nhiều ứng dụng trờn mạng cần một số nhõn tố khỏc quyết định hiệu suất như: thời gian trễ (delay), độ tin cậy (reliability), tỉ suất lỗi (error rate), hiệu suất của ứng dụng v.v. Vỡ vậy, đỏnh giỏ hiệu suất trong thực tế là làm sao để hệ thống hoạt động đạt hiệu quả cao nhất cú thể.
Để hiểu được và cải thiện đặc trưng giỏ - hiệu suất (cost-perormance) khi thiết kế triển khai hoạt động một mạng mỏy tớnh người ta thường đỏnh giỏ hiệu suất mạng. Cụng việc này được thực hiện thường xuyờn từ khi thiết kế kiến trỳc đến khi mạng đó được lắp đặt và hoạt động. Khi thiết kế đầu tiờn người đỏnh giỏ thường phải đưa ra cỏc dự đoỏn về khả năng đỏp ứng của mạng khi sử dụng cỏc ứng dụng chạy trờn mạng đú. Sau đú, dựa trờn kết quả trờn để thiết kế về kiến trỳc, lựa chọn phần cứng, phần mềm đó cú hoặc sẽ cú trong giai đoạn triển khai thực hiện.
Việc đỏnh giỏ hiệu suất mạng sẽ rừ ràng hơn khi kiến trỳc mạng đó được xỏc định. Cụng việc đỏnh giỏ sẽ giỳp cho người thiết kế thấy được cỏc lỗi, cỏc khiếm khuyết trong khi thiết kế để cú thể tinh chỉnh thiết kế cho phự hợp để giảm thiểu cỏc sai sút khi triển khai thực hiện. Cỏc đặc tớnh vật lý của đường truyền cũng như cỏc phần mềm dựng trờn mạng cú ảnh hưởng lớn tới
73
hiệu suất mạng. Cụng việc đỏnh giỏ hiệu suất rất đa dạng, sử dụng nhiều dạng cụng cụ khỏc nhau. Cú khi chỉ đỏnh giỏ thụng qua cỏc tớnh toỏn bằng tay với cỏc mạng nhỏ và đơn giản. Nhưng cú khi phải dựng cỏc mụ phỏng lớn với cỏc mạng phức tạp. Ngày nay, việc dự đoỏn và đỏnh giỏ hiệu suất thường được người ta coi là một phần khụng thể thiếu được của cụng việc thiết kế và triển khai thực hiện hệ thống.
Để cú thể tớnh được hiệu suất mạng người ta thường sử dụng cỏc độ đo hiệu suất. Cú thể phõn cỏc độ đo hiệu suất thành hai loại: cỏc độ đo hướng tới người sử dụng và cỏc độ đo hướng tới hệ thống.
Với độ đo hướng tới người sử dụng, thời gian đỏp ứng (response time) thường được sử dụng trong cỏc hệ thời gian thực hoặc cỏc mụi trường hệ thống tương tỏc. Đú là khoảng thời gian từ khi cú một yờu cầu (request) đến hệ thống cho đến khi nú được hệ thống thực hiện xong. Trong cỏc hệ thống tương tỏc, đụi khi người ta sử dụng độ đo thời gian phản ứng của hệ thống (system reaction time) thay cho thời gian đỏp ứng. Đú là khoảng thời gian tớnh từ khi input đến hệ thống cho đến khi yờu cầu chứa trong input đú nhận được khe thời gian phục vụ đầu tiờn. Độ đo này đo mức độ hiệu dụng của bộ lập lịch của hệ thống trong việc nhanh chúng cung cấp dịch vụ cho một yờu cầu mới đến. Trong cỏc hệ thống mạng mỏy tớnh, cỏc đại lượng thời gian đỏp ứng, thời gian phản ứng của hệ thống đều được xem là cỏc biến ngẫu nhiờn, vỡ vậy người ta thường núi về phõn bố, kỳ vọng, phương sai... của chỳng [2].
Cỏc độ đo hướng tới hệ thống điển hỡnh là thụng lượng (throughtput) và thời gian trễ (delay time, delay). Thụng lượng được định nghĩa là số đơn vị thụng tin tớnh trung bỡnh được vận chuyển qua mạng trong một đơn vị thời gian. Đơn vị thụng tin ở đõy cú thể là bit, byte hay gúi số liệu... Nếu cỏc đơn vị thụng tin đi vào mạng theo một cơ chế độc lập với trạng thỏi của mạng, thỡ
74
năng vận chuyển, khụng dẫn đến trạng thỏi bị tắc nghẽn. Thời gian trễ là thời gian trung bỡnh để vận chuyển một gúi số liệu qua mạng, từ nguồn tới đớch.
Cú nhiều phương phỏp đỏnh giỏ hiệu suất mạng mỏy tớnh, cú thể chia chỳng làm ba loại: Mụ hỡnh giải tớch (Analytic Models), Mụ hỡnh mụ phỏng (Simulation Models) và Đo hiệu suất.
Mụ hỡnh giải tớch: thường sử dụng cỏc mụ hỡnh trong xỏc suất thống kờ
cũng như lý thuyết hàng đợi. Sau khi sử dụng cỏc mụ hỡnh để thực hiện đỏnh giỏ hiệu suất chỳng ta sẽ xõy dựng nờn một quan hệ dạng hàm với cỏc tham số sẽ là cỏc đặc trưng riờng của hệ thống mạng cũng như cỏc yờu cầu của ứng dụng (thời gian trễ, băng thụng, thời gian đỏp ứng,...) cỏc quan hệ này lập thành cỏc phương trỡnh cú thể giải được bằng giải tớch.
Mụ hỡnh mụ phỏng: việc diễn lại một số đặc tớnh của sự vật cú thực, sao
cho càng giống thực càng tốt. Mụ phỏng là phương phỏp đó được sử dụng trong nghiờn cứu từ lõu. Khi mỏy tớnh điện tử ra đời, vỡ tốc độ thực hiện cỏc cụng việc trờn mỏy tớnh nhanh hơn rất nhiều so với dựng cỏc cụng cụ khỏc, nờn đối với cỏc bài toỏn mụ phỏng cú sử dụng một khối lượng tớnh toỏn lớn, người ta thường sử dụng mỏy tớnh như là cụng cụ trợ giỳp trong quỏ trỡnh mụ phỏng. Đối với mụ phỏng mạng mỏy tớnh, vỡ lượng tớnh toỏn rất lớn cho một mụ phỏng, do đú người ta chỉ thực hiện mụ phỏng trờn mỏy tớnh. Mỗi một mụ phỏng mạng như là một thớ nghiệm về hoạt động của mạng theo thời gian. Trong cỏc thời điểm khỏc nhau, mạng sẽ cú những trạng thỏi khỏc nhau. Thường khi mụ phỏng mạng, người nghiờn cứu cần quan tõm đến cỏc độ đo của mạng và đỏnh giỏ nú trong trạng thỏi dừng. Bộ mụ phỏng là hệ thống chương trỡnh mỏy tớnh, thường được xõy dựng cú cấu trỳc, được mụ-đun húa, cú tớnh mở để cho phộp người nghiờn cứu thay đổi bổ sung cỏc thành phần đảm bảo phục vụ cho nhiều nghiờn cứu khỏc nhau. Ngoài ra, tốc độ thực hiện mụ phỏng của chương trỡnh mụ phỏng cũng là vấn đề cần quan tõm.
75
Đo hiệu suất: là việc giỏm sỏt hoạt động của mạng khi hoạt động qua
đú thu thập cỏc số liệu, dựa vào đú tớnh ra cỏc độ đo hiệu suất mạng trong thời gian hoạt động, rỳt ra cỏc quy luật, lập mụ hỡnh rồi đưa vào mụ hỡnh giải tớch hoặc mụ phỏng để sử dụng cho việc đỏnh giỏ hiệu suất. Ngoài ra, đo hiệu suất cũn cú chức năng kiểm chứng lại cỏc đỏnh giỏ bằng cỏc mụ hỡnh khỏc. Thường thỡ việc đo hiệu suất hệ thống mạng được thực hiện thường xuyờn trong cả giai đoạn triển khai thực hiện, lắp đặt hệ thống và đưa vào sử dụng. Khi xõy dựng cỏc hệ thống mạng, người ta thường tớch hợp bờn trong nú cỏc cụng cụ để đo hiệu suất. Vỡ vậy cú thể đo hiệu suất bất cứ lỳc nào trong suốt vũng đời hoạt động của hệ thống.
So sỏnh cỏc phương phỏp đỏnh giỏ hiệu suất
Phương phỏp sử dụng mụ hỡnh giải tớch là phương phỏp tốt nhất, vỡ cỏc tham số hệ thống cũng như cấu hỡnh mạng cú thể thay đổi trong một miền rộng với chi phớ thấp mà vẫn cú thể đạt được kết quả tốt. Tuy nhiờn, cỏc mụ hỡnh giải tớch khi ỏp dụng cho thực tế thường là khụng giải được nếu khụng được giản lược cỏc yếu tố ớt ảnh hưởng đến hệ thống. Hệ thống sau khi loại bỏ cỏc yếu tố này sẽ như một hệ thống hoạt động trong tỡnh trạng lý tưởng, khỏc nhiều so với thực tế, cho nờn người ta thường dựng phương phỏp này trong giai đoạn đầu tiờn của quỏ trỡnh thiết kế hệ thống mạng. Cỏc kết quả sẽ giỳp cho người thiết kế dự đoỏn về giới hạn hiệu suất của hệ thống. Cỏc kết quả này sẽ được kiểm nghiệm lại bằng phương phỏp khỏc như đo hiệu suất hoặc mụ phỏng.
Nhiều trường hợp khi đó giản lược cỏc yếu tố phụ nhưng vẫn khụng giải được bằng Toỏn học, khi đú phương phỏp mụ phỏng là lựa chọn duy nhất. Phương phỏp mụ phỏng cú ưu điểm là cú thể sử dụng trong tất cả cỏc giai đoạn của quỏ trỡnh xõy dựng mạng. Đũi hỏi chi phớ cao trong quỏ trỡnh
76
xõy dựng và kiểm chứng bộ mụ phỏng. Tuy nhiờn, sau khi đó xõy dựng được bộ mụ phỏng, người nghiờn cứu cú thể tiến hành mụ phỏng với số lần khụng hạn chế, và với độ chớnh xỏc cú thể thay đổi được và chi phớ cho việc thực hiện một mụ phỏng thường là rất thấp. Cỏc kết quả của phương phỏp mụ phỏng thường được kiểm chứng bằng phương phỏp giải tớch hoặc đo. Hai phương phỏp giải tớch và mụ phỏng cú vai trũ đặc biệt quan trọng trong giai đoạn đầu của quỏ trỡnh thiết kế và triển khai thực hiện hệ thống mạng.
Khi đó xõy dựng được mạng và đưa vào hoạt động thỡ cú thể sử dụng phương phỏp đo. Phương phỏp này cũng đũi hỏi chi phớ cho cỏc cụng cụ đo và cho việc tiến hành đo. Cụng việc đo, để cú kết quả chớnh xỏc, tin cậy và phản ỏnh đỳng thực tế cần phải thực hiện tại nhiều điểm khỏc nhau trờn mạng thực, ở những thời điểm khỏc nhau và phải thực hiện nhiều lần trong thời gian đủ lớn. Người nghiờn cứu cần phải cú kiến thức về Lý thuyết thống kờ và kinh nghiệm thỡ mới cú thể rỳt ra được cỏc kết luận hữu ớch từ cỏc số liệu thu được. Tuy nhiờn, dự cú thực hiện tất cả cỏc yờu cầu trờn, phương phỏp đo cú thể vẫn khụng phỏt hiện và dự đoỏn được một số trạng thỏi đặc biệt của mạng.
3.2 Sơ lược về bộ mụ phỏng mạng NS-2 (Network Simulator 2)
3.2.1 Giới thiệu bộ mụ phỏng mạng NS-2
NS là một chương trỡnh mỏy tớnh dựng để mụ phỏng mạng, người ta thường gọi là bộ mụ phỏng NS, được phỏt triển bởi dự ỏn VINT (Virtual InterNetwork Testbed) của Bộ Quốc phũng Mỹ. VINT đó chọn bộ mụ phỏng NS, do nhúm nghiờn cứu ở phũng thớ nghiệm quốc gia Lawrence Berkeley, Hoa Kỳ, xõy dựng và phỏt triển. Mục đớch của dự ỏn này là xõy dựng một bộ mụ phỏng cụng cộng với một tập rất lớn cỏc mụ hỡnh để nghiờn cứu về mạng, cung cấp cho cỏc nhà nghiờn cứu nhiều khả năng mới trong thực nghiệm, giỳp cỏc nhà nghiờn cứu đỏnh giỏ được cỏc giao thức trong cỏc điều kiện khỏc
77
nhau. NS được phỏt triển từ bộ mụ phỏng REAL (Realistic and Large) của S.Keshav năm 1989. Cỏc phiờn bản 2.xx của NS ra đời sau năm 1997. Từ đõy người ta thường gọi là bộ mụ phỏng NS-2. Phiờn bản này khỏc nhiều so với cỏc phiờn bản trước (1.xx). Khi mụ phỏng mạng thỡ mỏy mụ phỏng vận hành theo cơ chế sử dụng cỏc sự kiện rời rạc, tuần tự. Người sử dụng cú thể thay đổi cấu hỡnh và mở rộng mụ hỡnh mạng rất dễ dàng bằng cỏch lập trỡnh thờm vào một số mụ-đun chương trỡnh. Lỳc đầu, NS chỉ chạy được trờn Unix/Linux, cỏc phiờn bản sau này mới cú bản chạy được trờn mụi trường Windows. Hiện nay NS đó cú phiờn bản 2.29 [9].
NS là hệ thống mụ phỏng cú cấu trỳc hướng đối tượng. Nú được xõy dựng dựa trờn hai ngụn ngữ là C++và Otcl và xõy dựng theo cỏch cú thể được mở rộng bởi người dựng hay người dựng cú thể lập trỡnh được trờn nền của hệ mụ phỏng NS. Với cỏch tiếp cận này thỡ mỗi một mụ phỏng được xem như là một chương trỡnh hơn là cỏc mụ hỡnh tĩnh, khụng thể thay đổi. Một mụ phỏng gồm cỏc đối tượng cú thể cấu hỡnh theo ý muốn để cú thể đạt được mục đớch đó đề ra.
Trong NS cú hai loại kịch bản mụ phỏng, kịch bản chạy theo vết (trace- driven) và kịch bản chạy tự động. Vết ở đõy là dóy cỏc sự kiện chớnh của mạng đang hoạt động, và thời gian xảy ra cỏc sự kiện đú. Sau khi ghi lại được vết người ta dựng nú để làm đầu vào cho mụ hỡnh mụ phỏng NS. Trong mụ phỏng chạy tự động, chớnh NS sẽ sinh ra dóy cỏc yờu cầu tài nguyờn cú tớnh xỏc suất. Ưu điểm của mụ phỏng chạy tự động so với mụ phỏng chạy theo vết là: luồng cỏc sự kiện được sinh ra theo cỏch nhõn tạo, do đú, nhà nghiờn cứu nắm được và cú thể chủ động điều khiển được quỏ trỡnh sinh ra luồng sự kiện này. Sau khi đó xõy dựng mụ hỡnh mụ phỏng, người nghiờn cứu sẽ cho nú hoạt động lặp đi lặp lại với cỏc tham số và cấu hỡnh hệ thống khỏc nhau, rồi so
78
sỏnh cỏc kết quả hiệu suất; bằng cỏch đú xỏc định được cỏc tham số và cấu hỡnh tối ưu [2].
Trong NS, người dựng cú thể mụ phỏng cỏc mạng LAN, mạng khụng dõy, mạng hỗn hợp cú dõy và khụng dõy, mạng vệ tinh,... và cú thể dựng cỏc ứng dụng như là FTP, HTTP, Webcache, Telnet... dựa trờn cỏc Agent của tầng giao vận, trờn cỏc mụ phỏng về kỹ thuật chọn đường, hoặc cú thể thiết kế cỏc giao thức mới, kỹ thuật chọn đường mới,...