Định nghĩa Mạng Máy Tính: Mạng máy tính là một nhóm các máy tính, thiết bị ngoại vi được kết nối với nhau thông quacác phương tiện truyền dẫn như cáp, sóng điện từ, tia hồng ngoại…giúp c
Trang 1Phần 1: Tổng quan về mạng máy tính
I Định nghĩa Mạng Máy Tính:
Mạng máy tính là một nhóm các máy tính, thiết bị ngoại vi được kết nối với nhau thông quacác phương tiện truyền dẫn như cáp, sóng điện từ, tia hồng ngoại…giúp cho các thiết bị này
có thể trao đổi dữ liệu với nhau một cách dễ dàng
II Tại sao cần có mạng?
Ngày nay với một lượng lớn về thông tin, nhu cầu xử lý thông tin ngày càng cao Mạng máytính hiện nay trở nên quá quen thuộc đối với chúng ta, trong mọi lĩnh vực như khoa học, quân
sự, quốc phòng, thương mại, dịch vụ, giáo dục Hiện nay ở nhiều nơi mạng đã trở thànhmột nhu cầu không thể thiếu được Người ta thấy được việc kết nối các máy tính thànhmạng cho chúng ta những khả năng mới to lớn như:
Sử dụng chung tài nguyên : Những tài nguyên của mạng (như thiết bị, chương trình,
dữ liệu) khi được trở thành các tài nguyên chung thì mọi thành viên của mạng đều có thể tiếpcận được mà không quan tâm tới những tài nguyên đó ở đâu
Tăng độ tin cậy của hệ thống: Người ta có thể dễ dàng bảo trì máy móc và lưu trữ
(backup) các dữ liệu chung và khi có trục trặc trong hệ thống thì chúng có thể được khôi phụcnhanh chóng Trong trường hợp có trục trặc trên một trạm làm việc thì người ta cũng có thể
sử dụng những trạm khác thay thế
Nâng cao chất lượng và hiệu quả khai thác thông tin: Khi thông tin có thể được dùng
chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các công việc với những thayđổi về chất như:
Đáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại
Cung cấp sự thống nhất giữa các dữ liệu
Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán
Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thếgiới
III Phân loại mạng máy tính:
1 Mạng cục bộ LAN (Local Area Network):
Mạng LAN là một nhóm các máy tính và các thiết bị truyền thông mạng được nối kết với nhautrong một khu vực nhỏ như một toà nhà cao ốc, khuôn viên trường đại học, khu giải trí…
Các mạng LAN thường có các đặc điểm sau đây:
Trang 2 Băng thông lớn có khả năng chạy các ứng dụng trực tuyến như xem phim, hội thảoqua mạng.
Kích thước mạng bị giới hạn bởi các thiết bị
Chi phí các thiết bị mạng LAN tương đối rẻ
Quản trị đơn giản
Hình 1.1
2 Mạng đô thị MAN (Metropolitan Area Network):
Mạng MAN gần giống như mạng LAN nhưng giới hạn của nó là một thành phố hay mộtquốc gia Mạng MAN nối kết các mạng LAN lại với nhau thông qua các phương tiện truyềndẫn khác nhau (cáp quang, cáp đồng, sóng…) và các phương thức truyền thông khácnhau
Đặc điểm của mạng MAN :
Băng thông mức trung bình, đủ để phục vụ các ứng dụng cấp thành phố hay quốc gianhư chính phủ điện tử, thương mại điện tử, các ứng dụng của các ngân hàng…
Do MAN nối kết nhiều LAN với nhau nên độ phức tạp cũng tăng đồng thời việc quản
lý sẽ khó khăn hơn
Chi phí các thiết bị mạng MAN tương đối đắt tiền
3 Mạng diện rộng WAN (Wide Area Network):
Mạng WAN bao phủ vùng địa lý rộng lớn có thể là một quốc gia, một lục địa hay toàn cầu.Mạng WAN thường là mạng của các công ty đa quốc gia hay toàn cầu điển hình là mạngInternet Do phạm vi rộng lớn của mạng WAN nên thông thường mạng WAN là tập hợp cácmạng LAN, MAN nối lại với nhau bằng các phương tiện như: vệ tinh (satellites), sóng viba(microwave), cáp quang, cáp điện thoại
Đặc điểm của mạng WAN:
Trang 3 Băng thông thấp, dễ mất kết nối thường chỉ phù hợp với các ứng dụng online nhưe-mail, web, ftp…
Phạm vi hoạt động rộng lớn không giới hạn
Do kết nối của nhiều LAN, MAN lại với nhau nên mạng rất phức tạp và có tính toàncầu nên thường là các tổ chức quốc tế đứng ra qui định và quản lý
Chi phí cho các thiết bị và các công nghệ mạng WAN rất đắt tiền
Hình 1.2
4 Mạng Internet:
Mạng Internet là trường hợp đặc biệt của mạng WAN, nó chứa các dịch vụ toàn cầu nhưMail, Web, Chat, FTP và phục vụ miễn phí cho mọi người
IV Sự phân biệt giữa mạng cục bộ và mạng diện rộng:
Mạng cục bộ và mạng diện rộng có thể được phân biệt bởi: địa phương hoạt động, tốc độđường truyền và tỷ lệ lỗi trên đường truyền, chủ quản của mạng, đường đi của thông tin trênmạng, dạng chuyển giao thông tin
Địa phương hoạt động: Liên quan đến khu vực địa lý thì mạng cục bộ sẽ là mạng liên kết
các máy tính nằm ở trong một khu vực nhỏ Khu vực có thể bao gồm một tòa nhà hay làmột khu nhà Điều đó hạn chế bởi khoảng cách đường dây cáp được dùng để liên kếtcác máy tính của mạng cục bộ (hạn chế đó còn là hạn chế của khả năng kỹ thuật củađường truyền dữ liệu) Ngược lại mạng diện rộng là mạng có khả năng liên kết các máytính trong một vùng rộng lớn như là một thành phố, một miền, một đất nước, mạng diện rộngđược xây dựng để nối hai hoặc nhiều khu vực địa lý riêng biệt
Tốc độ đường truyền và tỷ lệ lỗi trên đường truyền : Do các đường cáp của
mạng cục bộ được xây dựng trong một khu vực nhỏ cho nên nó ít bị ảnh hưởng bởi tác độngcủa thiên nhiên (như là sấm chớp, ánh sáng ) Điều đó cho phép mạng cục bộ có thể truyền
dữ liệu với tốc độ cao mà chỉ chịu một tỷ lệ lỗi nhỏ Ngược lại với mạng diện rộng do phảitruyền ở những khoảng cách khá xa với những đường truyền dẫn dài có khi lên tới hàng
Trang 4ngàn km Do vậy mạng diện rộng không thể truyền với tốc độ quá cao vì khi đó tỷ lệ lỗi
sẽ trở nên khó chấp nhận được
Mạng cục bộ thường có tốc độ truyền dữ liệu từ 4 đến 16 Mbps và đạt tới 100 Mbps nếudùng cáp quang Còn phần lớn các mạng diện rộng cung cấp đường truyền có tốc độ thấp hơnnhiều như T1 với 1.544 Mbps hay E1 với 2.048 Mbps (Ở đây bps (Bit Per Second) là mộtđơn vị trong truyền thông tương đương với 1 bit được truyền trong một giây, ví dụ như tốc độđường truyền là 1 Mbps tức là có thể truyền tối đa 1 Megabit trong 1 giây trên đường truyềnđó)
Thông thường trong mạng cục bộ tỷ lệ lỗi trong truyền dữ liệu vào khoảng 1/107- 108 còntrong mạng diện rộng thì tỷ lệ đó vào khoảng 1/106 - 107
Chủ quản và điều hành của mạng: Do sự phức tạp trong việc xây dựng, quản lý, duy trì
các đường truyền dẫn nên khi xây dựng mạng diện rộng người ta thường sử dụng các đườngtruyền được thuê từ các công ty viễn thông hay các nhà cung cấp dịch vụ truyền số liệu Tùytheo cấu trúc của mạng những đường truyền đó thuộc cơ quan quản lý khác nhau như các nhàcung cấp đường truyền nội hạt, liên tỉnh, liên quốc gia Các đường truyền đó phải tuân thủ cácquy định của chính phủ các khu vực có đường dây đi qua như: tốc độ, việc mã hóa
Còn đối với mạng cục bộ thì công việc đơn giản hơn nhiều, khi một cơ quan cài đặt mạngcục bộ thì toàn bộ mạng sẽ thuộc quyền quản lý của cơ quan đó
Đường đi của thông tin trên mạng: Trong mạng cục bộ thông tin được đi theo con đường
xác định bởi cấu trúc của mạng Khi người ta xác định cấu trúc của mạng thì thông tin sẽ luônluôn đi theo cấu trúc đã xác định đó Còn với mạng diện rộng dữ liệu cấu trúc có thể phức tạphơn nhiều do việc sử dụng các dịch vụ truyền dữ liệu Trong quá trình hoạt động các điểm nút
có thể thay đổi đường đi của các thông tin khi phát hiện ra có trục trặc trên đường truyền haykhi phát hiện có quá nhiều thong tin cần truyền giữa hai điểm nút nào đó Trên mạng diệnrộng thông tin có thể có các con đường đi khác nhau, điều đó cho phép có thể sử dụng tối đacác năng lực của đường truyền hay nâng cao điều kiện an toàn trong truyền dữ liệu
Dạng chuyển giao thông tin: Phần lớn các mạng diện rộng hiện nay được phát triển cho
việc truyền đồng thời trên đường truyền nhiều dạng thông tin khác nhau như: video, tiếngnói, dữ liệu Trong khi đó các mạng cục bộ chủ yếu phát triển trong việc truyền dữ liệuthông thường Điều này có thể giải thích do việc truyền các dạng thông tin như video, tiếngnói trong một khu vực nhỏ ít được quan tâm hơn như khi truyền qua những khoảng cách lớn.Các hệ thống mạng hiện nay ngày càng phức tạp về chất lượng, đa dạng về chủng loại vàphát triển rất nhanh về chất Trong sự phát triển đó số lượng những nhà sản xuất từ phầnmềm, phần cứng máy tính, các sản phẩm viễn thông cũng tăng nhanh với nhiều sản phẩm đadạng Chính vì vậy vai trò chuẩn hóa cũng mang những ý nghĩa quan trọng Tại các nước các
Trang 5cơ quan chuẩn quốc gia đã đưa ra các những chuẩn về phần cứng và các quy định về giao tiếpnhằm giúp cho các nhà sản xuất có thể làm ra các sản phẩm có thể kết nối với các sản phẩm
1 Mô hình xử lý mạng trung tâm:
Toàn bộ các tiến trình xử lý diễn ra tại máy tính trung tâm Các máy trạm cuối(Terminals) được nối mạng với máy tính trung tâm và chỉ hoạt động như những thiết bị nhậpxuất dữ liệu cho phép người dùng xem trên màn hình và nhập liệu bàn phím Cácmáy trạm đầu cuối không lưu trữ và xử lý dữ liệu Mô hình xử lý mạng trên có thể triển khaitrên hệ thống phần cứng hoặc phần mềm được cài đặt trên Server
Ưu điểm: dữ liệu được bảo mật an toàn, dễ backup và diệt virus Chi phí các thiết bị thấp Khuyết điểm: khó đáp ứng được các yêu cầu của nhiều ứng dụng khác nhau, tốc độ truy
xuất chậm
Hình 1.3
2 Mô hình xử lý mạng phân phối:
Các máy tính có khả năng hoạt động độc lập, các công việc được tách nhỏ và giao cho nhiềumáy tính khác nhau thay vì tập trung xử lý trên máy trung tâm Tuy dữ liệu được xử lý và lưutrữ tại máy cục bộ nhưng các máy tính này được nối mạng với nhau nên chúng có thể traođổi dữ liệu và dịch vụ
Ưu điểm: truy xuất nhanh, phần lớn không giới hạn các ứng dụng.
Khuyết điểm: dữ liệu lưu trữ rời rạc khó đồng bộ, backup và rất dễ nhiễm virus.
Trang 6Hình 1.4
3 Mô hình xử ký mạng công tác:
Mô hình xử lý mạng cộng tác bao gồm nhiều máy tính có thể hợp tác để thực hiện một côngviệc Một máy tính có thể mượn năng lực xử lý bằng cách chạy các chương trình trêncác máy nằm trong mạng
Ưu điểm: rất nhanh và mạnh, có thể dùng để chạy các ứng dụng có các phép toán lớn
Khuyết điểm: các dữ liệu được lưu trữ trên các vị trí khác nhau nên rất khó đồng bộ và
backup, khả năng nhiễm virus rất cao
VI Các mô hình quản lý mạng:
VII Các mô hình ứng dụng mạng:
1 Mạng ngang hang (Peer to Peer):
Mạng ngang hàng cung cấp việc kết nối cơ bản giữa các máy tính nhưng không có bất kỳmột máy tính nào đóng vai trò phục vụ Một máy tính trên mạng có thể vừa là Client vừa làServer Trong môi trường này người dùng trên từng máy tính chịu trách nhiệm điềuhành và chia sẻ tài nguyên của máy tính mình Mô hình này chỉ phù hợp với tổ chức nhỏ, sốngười giới hạn (thông thường nhỏ hơn 10 người) và không quan tâm đến vấn đề bảo mật
Trang 7Mạng ngang hàng thường dùng các hệ điều hành sau: Win95, Windows forWorkgroup, WinNT Workstation, Win2000 Proffessional, OS/2…
Ưu điểm: Do mô hình mạng ngang hàng đơn giản nên dễ cài đặt, tổ chức và quản trị, chi phí
thiết bị cho mô hình này thấp
Khuyết điểm: Không cho phép quản lý tập trung nên dữ liệu phân tán, khả năng bảo mật
thấp rất dễ bị xâm nhập Các tài nguyên không được sắp xếp nên rất khó định vị và tìm kiếm
Hình 1.5
2 Mạng khách chủ (Client-Server)
Trong mô hình mạng khách chủ có một hệ thống máy tính cung cấp các tài nguyên và dịch
vụ cho cả hệ thống mạng sử dụng gọi là các máy chủ (Server) Một hệ thống máytính sử dụng các tài nguyên và dịch vụ này được gọi là máy khách (Client) CácServer thường có cấu hình mạnh (tốc độ xử lý nhanh, kích thước lưu trữ lớn) hoặc là các máychuyên dụng
Hệ điều hành mạng dùng trong mô hình Client - Server là WinNT, Novell Netware,Unix,Win2K…
Ưu điểm: Do các dữ liệu được lưu trữ tập trung nên dễ bảo mật, backup và đồng bộ với
nhau Tài nguyên và dịch vụ được tập trung nên dễ chia sẻ và quản lý và có thể phục vụ chonhiều người dùng
Khuyết điểm: Các Server chuyên dụng rất đắt tiền, phải có nhà quản trị cho hệ
thống
Hình 1.6
Trang 8VIII Kiến trúc mạng cục bộ:
1 Hình trang mạng (Network Topology):
Topology mạng: Cách kết nối các máy tính với nhau về mặt hình học mà ta gọi là tô pô của
mạng
Có 2 kiểu nối mạng chủ yếu đó là:
Nối kiểu điểm – điểm (point – to – point)
Nối kiểu điểm – nhiều điểm (point – to – multipoint hay broadcast)
Point to Point: Các đường truyền nối từng cặp nút với nhau và mỗi nút đều có trách
nhiệm lưu trữ tạm thời sao đó chuyển tiếp dữ liệu đi cho tới đích Do cách làm việc nhưvậy nên mạng kiểu này còn được gọi là mạng “lưu và chuyển tiếp“ (store and forward)
Point to multipoint: Tất cả các nút phân chia nhau một đường truyền vật lý
chung Dữ liệu gửi đi từ một nút nào đó sẽ được tiếp nhận bởi tất cả các nút còn lại trênmạng, bởi vậy chỉ cần chỉ ra địa chỉ đích của dữ liệu để căn cứ vào đó các nút tra xem dữliệu đó có phải gửi cho mình không
2 Mạng hình sao (Star):
Mạng hình sao có tất cả các trạm được kết nối với một thiết bị trung tâm có nhiệm vụ nhậntín hiệu từ các trạm và chuyển đến trạm đích Tuỳ theo yêu cầu truyền thông trênmạng mà thiết bị trung tâm có thể là Switch, router, hub hay máy chủ trung tâm Vai tròcủa thiết bị trung tâm là thiết lập các liên kết Point to Point
Ưu điểm: Thiết lập mạng đơn giản, dễ dàng cấu hình lại mạng (thêm, bớt các trạm),
dễ dàng kiểm soát và khắc phục sự cố, tận dụng được tối đa tốc độ truyền của đường truyềnvật lý
Khuyết điểm: Độ dài đường truyền nối một trạm với thiết bị trung tâm bị hạn chế (trong
vòng 100m, với công nghệ hiện nay)
Hình 1.7
3 Mạng trục tuyến tính (Bus):
Tất cả các trạm phân chia một đường truyền chung (bus) Đường truyền chính được
Trang 9giới hạn hai đầu bằng hai đầu nối đặc biệt gọi là terminator Mỗi trạm được nối với trục chínhqua một đầu nối chữ T (T-connector) hoặc một thiết bị thu phát (transceiver).
Mô hình mạng Bus hoạt động theo các liên kết Point to Multipoint hay Broadcast
Ưu điểm: Dễ thiết kế, chi phí thấp.
Khuyết điểm: Tính ổn định kém, chỉ một nút mạng hỏng là toàn bộ mạng bị ngừng hoạt
Mạng hình vòng có ưu, nhược điểm tương tự như mạng hình sao, tuy nhiên mạng hình vòngđòi hỏi giao thức truy nhập mạng phức tạp hơn mạng hình sao
Ngoài ra còn có các kết nối hỗn hợp giữa các kiến trúc mạng trên như: Star Bus, Star Ring
Trang 10Chương này sẽ trình bày về cách thức để nối kết những mạng không đồng nhất lại với nhau.
Có hai vấn đề quan trọng cần phải quan tâm khi nối kết các mạng: tính không đồng nhất(heterogeneity) và phạm vi (scale) khác nhau của chúng Giải thích một cách đơn giản, tínhkhông đồng nhất là khi người dùng trên hai mạng khác kiểu nhau muốn giao tiếp với nhau.Phức tạp hơn một chút, ta có thể thấy việc nối kết các host trên các mạng khác nhau có thể sẽđòi hỏi việc duyệt qua nhiều mạng trung gian, mà các mạng trung gian này lại có thể có kiểukhác nhau Chúng có thể là mạng Ethernet, Token Ring hay mạng dạng điểm nối điểm, hoặcnhiều kiểu mạng hoán chuyển (switch) khác nhau, và chúng lại sử dụng các phương thức đánhđịa chỉ riêng, các phương pháp truy cập đường truyền riêng và cả mô hình dịch vụ riêng nữa.Thách thức đối với vấn đề không đồng nhất là làm sao cung cấp cho người dùng một dịch vụnối kết host-host dễ hiểu xuyên qua mớ hỗn độn các mạng không đồng nhất Để hiểu về vấn
đề phạm vi mạng, ta lấy một ví dụ có giá trị là sự phát triển của mạng Internet, mạng có tốc
độ phát triển gần gấp đôi sau mỗi năm trong vòng 20 năm qua Kiểu phát triển chóng mặt nàybuộc chúng ta phải đối mặt với nhiều thách thức Một trong số đó là việc vạch đường: Làmsao để tìm ra một đường đi hữu hiệu xuyên qua một mạng gồm cả triệu nút mạng? Thêm mộtvấn đề có liên quan đến vạch đường là phương pháp đánh địa chỉ, là cách gán cho mỗi núttrên mạng một định danh duy nhất
Tầng mạng có nhiệm vụ đưa các gói tin từ máy gởi qua các chặn đường để đến được máynhận
Để đến được đích đến, gói tin có thể phải đi từng bước một qua nhiều router trung gian.Điều này thì trái ngược với tầng liên kết dữ liệu vốn chỉ chịu trách nhiệm truyền tải các khung
đi từ đầu này đến đầu kia của một kênh truyền vật lý
Để thực hiện được nhiệm vụ này, tầng mạng phải biết được hình trạng của mạng đường trục(subnet) và chọn đường thích hợp để cho gói tin đi Nó phải chú ý đến việc chọn đường saocho tránh được tình trạng tắc nghẽn trên một số đường truyền và router trong khi số khác thì
Trang 11đồ thị tương ứng với các đường nối kết mạng Mỗi cạnh có một chi phí đính kèm, là thông sốchỉ ra cái giá phải trả khi lưu thông trên nối kết mạng đó.
Vấn đề cơ bản của việc vạch đường là tìm ra đường đi có chi phí thấp nhất giữa hai nútmạng bất kỳ, trong đó chi phí của đường đi được tính bằng tổng chi phí khi đi qua tất cả cáccạnh làm thành đường đi đó Nếu không có một đường đi giữa hai nút, thì độ dài đường đigiữa chúng được xem như bằng vô cùng
2 Mục tiêu của giải thuật chọn đường:
Xác định đướng đi nhanh chóng, chính xác
Khả năng thích nghi được với những thay đổi về hình trạng mạng
Khả năng thích nghi được với những thay đổi về tải đường truyền
Khả năng tránh được các nối kết bị tắt nghẽn tạm thời
Chi phí tính toán để tìm ra được đường đi phải thấp
3 Phân loại giải thuật chọn đường:
Giải thuật chọn đường có thể được phân thành những loại sau:
Chọn đường tập trung (Centralized routing): Trong mạng có một Trung tâm điềukhiển mạng (Network Control Center) chịu trách nhiệm tính toán và cập nhật thông tin
về đường đi đến tất cả các điểm khác nhau trên toàn mạng cho tất cả các router
Chọn đường phân tán (Distributed routing): Trong hệ thống này, mỗi router phải tự
Trang 12tính toán tìm kiếm thông tin về các đường đi đến những điểm khác nhau trên mạng.
Để làm được điều này, các router cần phải trao đổi thông tin quan lại với nhau
Chọn đường tĩnh (Static routing): Trong giải thuật này, các router không thể tự cậpnhật thông tin về đường đi khi hình trạng mạng thay đổi Thông thường nhà quảnmạng sẽ là người cập nhật thông tin về đường đi cho router
Chọn đường động (Dynamic routing): Trong giải thuật này, các router sẽ tự động cậpnhật lại thông tin về đường đi khi hình trạng mạng bị thay đổi
4 Các giải thuật tìm đường tối ưu:
Đường đi tối ưu từ A đến B là đường đi “ngắn” nhất trong số các đường đi có thể Tuy nhiênkhái niệm “ngắn” nhất có thể được hiểu theo nhiều ý nghĩa khác nhau tùy thuộc vào đơn vịdùng để đo chiều dài đường đi Đối với các router, các đại lượng sau có thể được sử dụng để
đo độ dài đường đi:
Số lượng các router trung gian phải đi qua (HOP)
Độ trì quản trung bình của các gói tín
Cước phí truyền tin
Mỗi giải thuật chọn đường trước tiên phải chọn cho mình đơn vị đo chiều dài đường đi
Để xác định được đường đi tối ưu, các giải thuật chọn đường sử dụng phương pháp đồ thị đểtính toán Trước tiên, nó mô hình hóa hình trạng mạng thành một đồ thị có các đặc điểm nhưsau:
Nút là các router
Cạnh nối liền 2 nút là đường truyền nối hai router
Trên mỗi cạnh có giá đó là chiều dài đường đi giữa 2 router thông qua đường truyềnnối hai router
Chiều dài đường đi từ nút A đến nút B là tổng tất cả các giá của các cạnh nằm trênđường đi Nếu không có đường đi giữa 2 router thì xem như giá là vô cùng Trên đồthị này sẽ thực hiện việc tính toán tìm đường đi ngắn nhất
Hình 2.2 Mô hình hóa mạng thành đồ thị
a Giải thuật tìm đường đi ngắn nhất Dijkstra:
Mục đích là để tìm đường đi ngắn nhất từ một nút cho trước trên đồ thị đến các nút còn lại
Trang 13trên mạng.
Giải thuật được mô tả như sau:
S là nút nguồn cho trước
N: là tập hợp tất cả các nút đã xác định được đường đi ngắn nhất từ S
Di: là độ dài đường đi ngắn nhất từ nút nguồn S đến nút i
lij: là giá của cạnh nối trực tiếp nút i với nút j, sẽ là ∞ nếu không có cạnh nối trựctiếp giữa i và j
Pj là nút cha của của nút j
Bước 1: Khởi tạo
Nếu N chứa tất cả các nút của đồ thị thì dừng Ngược lại sang Bước 3
Bước 3: Tính lại giá đường đi nhỏ nhất
Với mỗi nút j không thuộc N: Tính lại Dj= min{ Dj, Di+ l ij} ; Pj=i;
5, 6, bước kế tiếp router 1 cần gởi gói tin đến là router số 3 (next hop)
Chú ý, đường ngắn nhất này chỉ đúng theo hướng từ nút số 1 về các nút còn lại và chỉ đúngcho nút số 1 mà thôi
Thông thường giải thuật Dijkstra được sử dụng theo mô hình chọn đường tập trung Trong
Trang 14đó, Trung tâm điều khiển mạng sẽ tìm cây đường đi ngắn nhất cho từng router trên mạng và
từ đó xây dựng bảng chọn đường tối ưu cho tất cả các router
Hình 2.3 Đường đi ngắn nhất từ nút 1
b Giải thuật chọn đường tối ưu Ford-Fulkerson:
Mục đích của giải thuật này là để tìm đường đi ngắn nhất từ tất cả các nút đến một nút đíchcho trước trên mạng
Giải thuật được mô tả như sau:
oVới i≠d: gán Di= ∞; Ci= -1;
Bước 2: Cập nhật giá đường đi ngắn nhất từ nút i đến nút d
oDi= min{ lij+ Dj} với j≠i => Ci = j;
oLặp lại cho đến khi không còn Di nào bị thay đổi giá trị
Ví dụ, cho sơ đồ mạng có hình trạng như đồ thị hình H6.8 Hãy tìm đường đi ngắn nhất từ nútkhác trên đồ thị đến nút 6
Trang 15Từ kết quả trên ta vẽ lại được cây đường đi ngắn nhất từ các nút khác nhau về nút đích số 6như hình 2.4 Cây này cho phép xác định đường đi tối ưu từ những nút khác nhau về nút số 6.Chẳng hạn tại nút 1, để đi về nút số 6 thì bước kế tiếp phải đi là nút số 3 Tương tự, tại nút 2,
để đi về nút số 6 thì bước kế tiếp phải đi là nút số 4
Giải thuật này được sử dụng theo mô hình phân tán Ở đó mỗi router sẽ tự tính toán, tìm cây
có đường đi ngắn nhất từ các nút khác về nó Từ đó suy ra đường đi tối ưu cho các nút khácđến nó và gởi các đường đi này đến từng nút trên mạng
Hình 2.4 Cây đường đi ngắn nhất về nút 6
c Giải pháp vạch đường Vector Khoảng cách (Distance Vector):
Ý tưởng của Distance-Vector như sau: Mỗi nút thiết lập một mảng một chiều (vector) chứakhoảng cách (chi phí) từ nó đến tất cả các nút còn lại và sau đó phát vector này đến tất cả cácnút láng giềng của nó Giả thiết đầu tiên trong Distance-Vector là: mỗi nút phải biết được chiphí của các đường nối từ nó đến tất cả các nút láng giềng có đường nối kết trực tiếp với nó.Một nối kết bị đứt (down) sẽ được gán cho chi phí có giá trị vô cùng
Để xem xét giải thuật vạch đường Distance-Vector hoạt động như thế nào, cách dễ nhất làxem xét đồ thị được cho như trong hình Hình 2.5
Hình 2.5 Một mạng làm ví dụ trong giải thuật Distance-VectorTrong ví dụ này, chi phí trên mỗi đường nối đều được đặt là 1 Chúng ta có thể biểu diễn sựhiểu biết của các nút về khoảng cách từ chúng đến các nút khác như trong bảng 2.1
Trang 16Thông tin được lưu tại các nút
có thể tìm đến B qua một bước nhảy (hop) và rằng nó không thể đi đến D được Bảng vạchđường lưu tại A thể hiện những niềm tin mà A có được, ngoài ra còn lưu thêm nút kế tiếp mà
A cần phải đi ra để đến một nút nào đó Khởi đầu, bảng vạch đường của nút A trông giốngnhư trong bảng 2.2
Đích (Destination) Chi phí (Cost) Nút kế tiếp (Next Hop)
đi đến D thông qua C với chi phí là 2, và chi phí này nhỏ hơn chi phí cũ là vô cùng Cùng lúc
A cũng học từ C rằng, nó có thể đi đến B thông qua C với chi phí là 2, nhưng chi phí này lạilớn hơn chi phí cũ là 1, vì thế thông tin mới này bị bỏ qua
Tại thời điểm này, A có thể cập nhật lại bảng chọn đường của nó với chi phí và nút ra kếtiếp để có thể đi đến tất cả các nút khác trong mạng Kết quả được cho trong bảng H2.3
Trang 17Đích (Destination) Chi phí (Cost) Nút kế tiếp (Next Hop)
Thông tin được lưu tại các nút
có hai tình huống khác nhau mà tại đó một nút quyết định gởi thông tin vạch đường của mìnhcho các nút láng giềng kề bên Tình huống đầu tiên là sự cập nhật theo chu kỳ (periodicupdate) Trong tình huống này, mỗi nút tự động gởi bản cập nhật thường xuyên, ngay cả khikhông có thay đổi gì trong đó cả Điều này giúp cho các nút khác biết được nút hiện tại đangcòn sống Vả lại việc cập nhật thường xuyên còn giúp cho các nút láng giềng có thể có đượcthông tin vạch đường nhanh chóng trong trường hợp thông tin của chúng bị mất Tần số phátthông tin vạch đường đi có thể khác nhau tùy vào giải thuật, chúng thường có giá trị từ vàigiây đến vài phút Tình huống thứ hai gọi là sự cập nhật do bị kích hoạt (triggered update).Tình huống này xảy ra mỗi khi có sự thay đổi thông tin trong bảng vạch đường của nút Nghĩa
là mỗi khi bảng vạch đường có sự thay đổi, nút sẽ gởi bản cập nhật này cho các láng giềngcủa mình
Trang 18Bây giờ ta xem xét điều gì xảy ra khi một đường nối kết hay một nút bị hỏng Những nútđầu tiên phát hiện ra điều này sẽ gởi thông tin vạch đường mới cho láng giềng của chúngngay, và thông thường hệ thống sẽ ổn định với tình trạng mới một cách nhanh chóng Còn đốivới câu hỏi làm sao nút phát hiện ra sự cố, có nhiều câu trả lời khác nhau Cách tiếp cận thứnhất là: một nút liên tục kiểm tra đường nối tới các nút láng giềng khác bằng cách gởi các góitin điều khiển tới chúng và kiểm tra xem nó có nhận được các gói tin trả lời hay không Cáchtiếp cận khác là: một nút phát hiện ra một đường nối kết (hay nút ở đầu kia của đường nối)gặp sự cố khi nó không nhận được thông tin vạch đường một cách định kỳ từ láng giềng củanó.
Ví dụ, xem xét điều gì sẽ xảy ra khi F phát hiện ra đường nối từ nó đến G bị hỏng Đầu tiên,
F đặt chi phí của đường nối từ nó đến A thành vô cùng và gởi thông tin này đến A Do A đãbiết là cần 2 bước để đi từ nó đến G thông qua F, A sẽ đặt lại chi phí từ nó đến G là vô cùng.Tuy nhiên, với bản cập nhật kế tiếp từ C, A phát hiện ra rằng có một đường đi dài 2 hops từ Cđến G, do đó nó sẽ cập nhật lại đường đi từ nó đến G dài 3 hops thông qua C Và khi A quảngcáo thông tin này cho F, F lại cập nhật lại đường đi dài 4 hops đến G thông qua A
Không may là: một số tình huống phát sinh lỗi khác lại làm cho mạng mất ổn định nghiêmtrọng Giả sử nối kết từ A đến E bị đứt Trong những chu kỳ cập nhật sau, A thông báo đường
đi từ nó đến E dài vô cùng, nhưng B và C lại quảng cáo đường đi từ chúng đến E dài 2 hops.Nếu các bản cập nhật được định thời để phát cùng lúc, B sẽ sửa lại độ dài đường đi từ nó đến
E là 3 thông qua C, C sửa lại độ dài đường đi từ nó đến E là 3 thông qua B Sau đó A lại nghe
B và C quảng cáo độ dài đường đi từ chúng đến E là 3 và giả sử A chọn B là nút kế tiếp để điđến E, nó sẽ cập nhật lại độ dài đoạn đường là 4 Đến chu kỳ kế tiếp, B nghe C nói độ dài từ Cđến E là 3 nên cập nhật lại độ dài đường đi từ B đến E là 4 thông qua C, C thì làm ngược lại:sửa lại con đường từ nó đến E là 4 thông qua B Rồi lại đến lượt A nghe B sửa lại độ dài từ Ađến E là 5 thông qua B Sự thể sẽ tiếp diễn cho đến khi các độ dài tăng đến một số có thể coi
là vô cùng Nhưng tại thời điểm này, không nút nào biết là E không thể đến được, và các bảng
vạch đường trong mạng luôn không ổn định Tình huống này được gọi là vấn đề “đếm tới vô
cùng” (count-to-infinity problem).
Có vài giải pháp giải quyết một phần vấn đề “đếm tới vô cùng” Giải pháp thứ nhất là dùng
một số khá nhỏ để coi như gần bằng vô cùng Ví dụ như chúng ra có thể quyết định số lượngbước nhảy (hop) tối đa để đi qua một mạng là không quá 16, và do đó ta chọn 16 là số gầnbằng vô cùng Con số này ít ra cũng giới hạn được thời gian mà các nút có thể phải bỏ ra đểđếm tới vô cùng Tuy nhiên giải pháp này có thể gặp vấn đề nếu một số nút mạng được chiatách và mạng có thể cần nhiều hơn 16 bước nhảy để duyệt hết nó
Một kỹ thuật khác dùng để cải thiện thời gian dùng để ổn định hóa mạng được gọi là kỹ thật
Trang 19“chia tầm nhìn” (split horizon) Ý tưởng là: khi một nút gởi một bảng cập nhật vạch đường
cho các láng giềng của nó, nó sẽ không gởi những thông tin vạch đường mà nó đã nhận từmột nút láng giềng ngược lại chính nút láng giềng đó Ví dụ như nếu B có một đường đi (E, 2,A) trong bảng vạch đương của nó, B chắc hẳn phải biết rằng nó học con đường này từ A, vìthế mỗi khi B gởi thông tin cập nhật cho A nó sẽ không gởi con đường (E, 2) trong đó Tuynhiên giải pháp này chỉ tốt khi nó xoay quanh 2 nút mà thôi
III Các giải thuật chống tắt nghẽn:
Khi có quá nhiều gói tin hiện diện trong một mạng con (hoặc một phần của nó), hiệu nănghoạt động của hệ thống bị giảm Tình trạng này được gọi là “tắc nghẽn”
Hình 2.6Hình 2.6 mô tả lại hiện tượng tắc nghẽn Khi số lượng gói tin chạy trong mạng con nằmdưới ngưỡng cho phép, chúng đều được phân phối đến đích (ngoại trừ những gói tin bị lỗi), và
số lượng gói tin được phân phối tỉ lệ thuận với số lượng gói tin được phát ra lúc đầu Tuynhiên, khi mật độ giao thông tăng quá cao, các router không còn đáp ứng kịp nữa và chúngdần dần đánh mất một số gói tin Điều này có xu hướng làm cho vấn đề tắc nghẽn nghiêmtrọng thêm Khi mà giao thông cực cao, hiệu năng hệ thống sụp đổ hoàn toàn và hầu nhưkhông gói tin nào được phân phát đến đích
Có vài yếu tố góp phần gây ra tắc nghẽn Nếu đột nhiên nhiều luồng mang các gói tin đếnmột nút tại nhiều ngõ vào, và tất cả các gói tin này đều cần một ngõ ra, thì một hàng đợi sẽxuất hiện Nếu không đủ bộ nhớ để lưu các gói tin trên hàng đợi này, một số gói tin sẽ bị mất.Tăng thêm bộ nhớ chỉ giúp không mất gói tin trong hàng đợi, nhưng Nagle (1987) đã chỉ rarằng: nếu một router có bộ nhớ vô hạn, sự tắc nghẽn lại càng tồi tệ hơn! Lý do là khi mà góitin đến được đầu của hàng đợi thì nó đã bị mãn kỳ (timed out), và do đó sẽ có nhiều phiên bảntrùng với gói tin đó được bên gởi gởi đến router, làm tăng thêm tải của mọi hướng đi đến đích
Trang 20của gói tin.
Các bộ xử lý chậm cũng có thể gây ra tắc nghẽn Nếu CPU của router xử lý các gói tin trungchuyển qua nó chậm, hàng đợi cũng sẽ phát sinh, cho dù dung lượng các đường nối vào và rađều vượt yêu cầu
Tóm lại, đường truyền băng thông thấp có thể gây ra tắc nghẽn Nâng cấp đường truyềnnhưng năng lực xử lý của bộ xử lý tại router yếu cũng gây ra tắc nghẽn Thành thử, nâng cấpmột phần mà không phải là toàn bộ hệ thống chỉ đẩy sự tắc nghẽn từ nơi này đến nơi khác màthôi Vấn đề phát sinh từ sự bất cân đối giữa các bộ phận của hệ thống, và nó chỉ qua đi khi
mà các bộ phận này được giữ cân bằng với nhau
1 Các nguyên tắc chung để điều khiển tắt nghẽn:
Nhiều bài toán trong các hệ thống phức tạp, ví dụ như trong mạng máy tính, có thể đượcxem xét theo quan điểm của lý thuyết điều khiển (control theory) Cách tiếp cận này dẫn đếnviệc chia các giải pháp thành hai loại: vòng đóng và vòng mở (closed loop and open loop).Các giải pháp dạng vòng đóng cố gắng giải quyết vấn đề tắc nghẽn bằng cách đưa ra thiết kếtốt cho mạng, thực chất là để đảm bảo tắt nghẽn sẽ không xảy ra Một khi mạng được khởiđộng và chạy, sẽ không có việc sửa chữa giữa kỳ
Các công cụ thực hiện việc điều khiển kiểu vòng mở bao gồm việc quyết định khi nào nênchấp nhận luồng giao thông mới, quyết định khi nào thì bỏ qua các gói tin và bỏ qua gói nào.Tất cả các công cụ trên đều có đặc điểm chung là chúng đưa ra các quyết định mà không quantâm đến trạng thái hiện hành của mạng
Ngược lại, các giải pháp kiểu vòng đóng dựa trên quan niệm về chu trình phản hồi thông tin.Cách tiếp cận này bao gồm 3 phần:
a Giám sát hệ thống để phát hiện nơi nào và khi nào xảy ra tắc nghẽn
b Chuyển thông tin đến những nơi cần có những hành động ứng phó
c Điều chỉnh lại hoạt động của hệ thống để khắc phục sự cố
Nhiều kiểu đo lường có thể được sử dụng để giám sát một mạng con để phát hiện ra tắcnghẽn ở đó Các kiểu đo lường thường dùng nhất là tỉ lệ các gói tin bị bỏ qua do thiếu khônggian trữ đệm, chiều dài trung bình của các hàng đợi, số lượng các gói tin bị mãn kỳ và đượctái truyền, thời gian trì hoãn gói tin trung bình Trong mọi tình huống, các số đo tăng đồngnghĩa với việc tăng tắc nghẽn
Bước thứ hai trong chu trình phản hồi là chuyển thông tin về tắc nghẽn từ điểm được pháthiện bị tắc nghẽn đến điểm có trách nhiệm xử lý tình huống đó Cách dễ nhất là để cho routerphát hiện ra tắc nghẽn phát thông báo đến nút nguồn vừa gởi thông tin đến làm tắc hệ thống
Dĩ nhiên, thông báo này làm cho tắc nghẽn tăng thêm tạm thời
Một cách thông báo tắc nghẽn khác là: Người ta dành riêng một bit hoặc một trường trong
Trang 21gói tin để trong trường hợp có tắc nghẽn, router có thể bật bit hoặc trường này lên và gởi nóđến mọi ngõ ra nhằm thông báo cho các láng giềng của nó biết.
Hoặc cũng có thể dùng cách phản hồi sau: Cho các host hoặc router thường xuyên gởi cácgói tin thăm dò ra ngoài để hỏi thẳng về tình hình tắc nghẽn Thông tin này có thể được sửdụng để chuyến hướng vạch đường vòng qua khu vực bị tắc nghẽn Ví dụ thực tế: Một số đàiphát thanh thường phái một số máy bay trực thăng bay vòng quanh thành phố để báo cáo lạinhững trục đường bị tắc, từ đó thông báo đến thính giả giúp họ chuyển hướng lái xe tránhnhững điểm nóng
Sự hiện diện của tắc nghẽn đồng nghĩa với việc: tài nguyên của hệ thống không đủ để tảigánh nặng thông tin truyền qua Vì thế ta nghĩ ra hai giải pháp: tăng tài nguyên hoặc giảm tải
Ví dụ, một mạng con có thể bắt đầu sử dụng các đường điện thoại quay số để tạm thời tăngbăng thông giữa một số điểm nào đó Trong các hệ thống vệ tinh, việc tăng công suất truyềnđồng nghĩa với việc cung cấp băng thông lớn hơn Chia tách lưu lượng thông tin cho chúngchạy trên nhiều đường đi khác nhau cũng có thể giúp tăng băng thông Cuối cùng, các router
dự phòng (thường để dự phòng tình huống các router chính bị sự cố) có thể được mang rachạy trực tuyến để tăng dung lượng truyền tải của hệ thống khi tắc nghẽn nghiêm trọng xảyra
Tuy nhiên, đôi khi ta không thể tăng tài nguyên của hệ thống lên nữa, hoặc tài nguyên đãtăng tối đa Cách thức duy nhất để chống lại tắc nghẽn là giảm tải Có nhiều cách giảm tải, vídụ: từ chối phục vụ một số người dùng, giảm cấp dịch vụ đối với vài hoặc tất cả người dùng,
và buộc người dùng cung cấp lịch trình phát ra yêu cầu của họ
Một giải thuật vạch đường tốt có thể giúp tránh được tắc nghẽn bằng cách trải đều giaothông trên tất cả đường nối, trong khi một giải thuật tồi chỉ đơn giản gởi quá nhiều thông tinlên một đường tải đã quá tải rồi Cuối cùng, việc quản lý thời gian sống của gói tin sẽ phảiđưa ra quyết định là một gói tin có thể sống bao lâu trong hàng đợi trước khi bị hủy bỏ Thờigian sống quá dài sẽ làmtrì trệ công việc rất lâu Nhưng nếu thời gian sống quá ngắn, các góitin thỉnh thoảng sẽ bị mãn kỳ(timed-out) trước khi chúng đến được đích, vì thế dẫn đến việc
Trang 22tái truyền.
IV Định Tuyến:
1 Tổng quát:
Định tuyến (routing) là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ
liệu qua đó Việc định tuyến được thực hiện cho nhiều loại mạng, trong đó có mạng điệnthoại, liên mạng, Internet, mạng giao thông
Routing sẽ chỉ ra hướng, sự di chuyển của các gói (dữ liệu) được đánh địa chỉ từ mạngnguồn của chúng, hướng đến đích cuối thông qua các node trung gian; thiết bị phần cứngchuyên dùng được gọi là router (bộ định tuyến) Tiến trình định tuyến thường chỉ hướng đidựa vào bảng định tuyến, đó là bảng chứa những lộ trình tốt nhất đến các đích khác nhau trênmạng Vì vậy việc xây dựng bảng định tuyến, được tổ chức trong bộ nhớ của router, trở nên
vô cùng quan trọng cho việc định tuyến hiệu quả
Routing khác với bridging (bắc cầu) ở chỗ trong nhiệm vụ của nó thì các cấu trúc địa chỉ gợinên sự gần gũi của các địa chỉ tương tự trong mạng, qua đó cho phép nhập liệu một bảng địnhtuyến đơn để mô tả lộ trình đến một nhóm các địa chỉ Vì thế, routing làm việc tốt hơnbridging trong những mạng lớn, và nó trở thành dạng chiếm ưu thế của việc tìm đường trênmạng Internet
Các mạng nhỏ có thể có các bảng định tuyến được cấu hình thủ công, còn những mạng lớnhơn có topo mạng phức tạp và thay đổi liên tục thì xây dựng thủ công các bảng định tuyến là
vô cùng khó khăn Tuy nhiên, hầu hết mạng điện thoại chuyển mạch chung (public switchedtelephone network - PSTN) sử dụng bảng định tuyến được tính toán trước, với những tuyến
dự trữ nếu các lộ trình trực tiếp đều bị nghẽn Định tuyến động (dynamic routing) cố gắng giảiquyết vấn đề này bằng việc xây dựng bảng định tuyến một cách tự động, dựa vào những thôngtin được giao thức định tuyến cung cấp, và cho phép mạng hành động gần như tự trị trongviệc ngăn chặn mạng bị lỗi và nghẽn
Định tuyến động chiếm ưu thế trên Internet Tuy nhiên, việc cấu hình các giao thức địnhtuyến thường đòi hỏi nhiều kinh nghiệm; đừng nên nghĩ rằng kỹ thuật nối mạng đã phát triểnđến mức hoàn thành tự động việc định tuyến Cách tốt nhất là nên kết hợp giữa định tuyến thủcông và tự động
Những mạng trong đó các gói thông tin được vận chuyển, ví dụ như Internet, chia dữ liệuthành các gói, rồi dán nhãn với các đích đến cụ thể và mỗi gói được lập lộ trình riêng biệt.Các mạng xoay vòng, như mạng điện thoại, cũng thực hiện định tuyến để tìm đường cho cácvòng (ví dụ như cuộc gọi điện thoại) để chúng có thể gửi lượng dữ liệu lớn mà không phảitiếp tục lặp lại địa chỉ đích
Trang 23Định tuyến IP truyền thống vẫn còn tương đối đơn giản vì nó dùng cách định tuyến bước kếtiếp (next-hop routing), router chỉ xem xét nó sẽ gửi gói thông tin đến đâu, và không quan tâmđường đi sau đó của gói trên những bước truyền còn lại Tuy nhiên, những chiến lược địnhtuyến phức tạp hơn có thể được, và thường được dùng trong những hệ thống như MPLS,ATM hay Frame Relay, những hệ thống này đôi khi được sử dụng như công nghệ bên dưới để
hỗ trợ cho mạng IP
2 Các lớp thuật toán định tuyến:
a Thuật toán vector (distance-vector routing protocols):
Thuật toán này dùng thuật toán Bellman-Ford Phương pháp này chỉ định một con số, gọi làchi phí (hay trọng số), cho mỗi một liên kết giữa các node trong mạng Các node sẽ gửi thôngtin từ điểm A đến điểm B qua đường đi mang lại tổng chi phí thấp nhất (là tổng các chi phícủa các kết nối giữa các node được dùng)
Thuật toán hoạt động với những hành động rất đơn giản Khi một node khởi động lần đầu,
nó chỉ biết các node kề trực tiếp với nó, và chi phí trực tiếp để đi đến đó (thông tin này, danhsách của các đích, tổng chi phí của từng node, và bước kế tiếp để gửi dữ liệu đến đó tạo nênbảng định tuyến, hay bảng khoảng cách) Mỗi node, trong một tiến trình, gửi đến từng “hàngxóm” tổng chi phí của nó để đi đến các đích mà nó biết Các node “hàng xóm” phân tíchthông tin này, và so sánh với những thông tin mà chúng đang “biết”; bất kỳ điều gì cải thiệnđược những thông tin chúng đang có sẽ được đưa vào các bảng định tuyến của những “hàngxóm” này Đến khi kết thúc, tất cả node trên mạng sẽ tìm ra bước truyền kế tiếp tối ưu đến tất
cả mọi đích, và tổng chi phí tốt nhất
Khi một trong các node gặp vấn đề, những node khác có sử dụng node hỏng này trong lộtrình của mình sẽ loại bỏ những lộ trình đó, và tạo nên thông tin mới của bảng định tuyến Sau
đó chúng chuyển thông tin này đến tất cả node gần kề và lặp lại quá trình trên Cuối cùng, tất
cả node trên mạng nhận được thông tin cập nhật, và sau đó sẽ tìm đường đi mới đến tất cả cácđích mà chúng còn tới được
b Thuật toán trạng thái kết nối ( Link-state routing protocols ):
Khi áp dụng các thuật toán trạng thái kết nối, mỗi node sử dụng dữ liệu cơ sở của nó như làmột bản đồ của mạng với dạng một đồ thị Để làm điều này, mỗi node phát đi tới tổng thểmạng những thông tin về các node khác mà nó có thể kết nối được, và từng node góp thôngtin một cách độc lập vào bản đồ Sử dụng bản đồ này, mỗi router sau đó sẽ quyết định vềtuyến đường tốt nhất từ nó đến mọi node khác
Thuật toán đã làm theo cách này là Dijkstra, bằng cách xây dựng cấu trúc dữ liệu khác, dạngcây, trong đó node hiện tại là gốc, và chứa mọi noded khác trong mạng Bắt đầu với một câyban đầu chỉ chứa chính nó Sau đó lần lượt từ tập các node chưa được thêm vào cây, nó sẽ
Trang 24thêm node có chi phí thấp nhất để đến một node đã có trên cây Tiếp tục quá trình đến khi mọinode đều được thêm.
Cây này sau đó phục vụ để xây dựng bảng định tuyến, đưa ra bước truyền kế tiếp tốt ưu, …
để từ một node đến bất kỳ node khác trên mạng
c So sánh các thuật toán định tuyến:
Các giao thức định tuyến với thuật toán vector tỏ ra đơn giản và hiệu quả trong các mạngnhỏ, và đòi hỏi ít (nếu có) sự giám sát Tuy nhiên, chúng không làm việc tốt, và có tài nguyêntập hợp ít ỏi, dẫn đến sự phát triển của các thuật toán trạng thái kết nối tuy phức tạp hơnnhưng tốt hơn để dùng trong các mạng lớn Giao thức vector kém hơn với rắc rối về đếm đến
vô tận
Ưu điểm chính của định tuyến bằng trạng thái kết nối là phản ứng nhanh nhạy hơn, và trongmột khoảng thời gian có hạn, đối với sự thay đổi kết nối Ngoài ra, những gói được gửi quamạng trong định tuyến bằng trạng thái kết nối thì nhỏ hơn những gói dùng trong định tuyếnbằng vector Định tuyến bằng vector đòi hỏi bảng định tuyến đầy đủ phải được truyền đi,trong khi định tuyến bằng trạng thái kết nối thì chỉ có thông tin về “hàng xóm” của node đượctruyền đi Vì vậy, các gói này dùng tài nguyên mạng ở mức không đáng kể Khuyết điểmchính của định tuyến bằng trạng thái kết nối là nó đòi hỏi nhiều sự lưu trữ và tính toán đểchạy hơn định tuyến bằng vector
3 Giao thức được định tuyến và giao thức định tuyến:
a Giao thức được định tuyến (routed protocols hay routable protocols):
Một giao thức đã được định tuyến là bất kỳ một giao thức mạng nào cung cấp đầy đủ thôngtin trong địa chỉ tầng mạng của nó để cho phép một gói tin được truyền đi từ một máy chủ(host) đến máy chủ khác dựa trên sự sắp xếp về địa chỉ, không cần biết đến đường đi tổng thể
từ nguồn đến đích Giao thức đã được định tuyến định nghĩa khuôn dạng và mục đích của cáctrường có trong một gói Các gói thông thường được vận chuyển từ hệ thống cuối đến một hệthống cuối khác Hầu như tất cả giao thức ở tầng 3 các giao thức khác ở các tầng trên đều cóthể được định tuyến, IP là một ví dụ Nghĩa là gói tin đã đuợc định hướng (có địa chỉ rõ ràng)giống như lá thư đã được ghi địa chỉ rõ chỉ còn chờ routing (tìm đường đi đến địa chỉ đó)Các giao thức ở tầng 2 như Ethernet là những giao thức không định tuyến được, vì chúng chỉchứa địa chỉ tầng liên kết, không đủ để định tuyến: một số giao thức ở tầng cao dựa trực tiếpvào đây mà không có thêm địa chỉ tầng mạng, như NetBIOS, cũng không định tuyến được
b Giao thức định tuyến (routing protocols):
Giao thức định tuyến được dùng trong khi thi hành thuật toán định tuyến để thuận tiện choviệc trao đổi thông tin giữa các mạng, cho phép các router xây dựng bảng định tuyến mộtcách linh hoạt Trong một số trường hợp, giao thức định tuyến có thể tự chạy đè lên giao thức
Trang 25đã được định tuyến: ví dụ, BGP chạy đè trên TCP: cần chú ý là trong quá trình thi hành hệthống không tạo ra sự lệ thuộc giữa giao thức định tuyến và đã được định tuyến.
c Danh sách các giao thức định tuyến:
Giao thức định tuyến trong
o Router Information Protocol (RIP)
o Open Shortest Path First (OSPF)
o Intermediate System to Intermediate System (IS-IS)
o Hai giao thức sau đây thuộc sở hữa của Cisco, và được hỗ trợ bởi các routerCisco hay những router của những nhà cung cấp mà Cisco đã đăng ký côngnghệ:
Interior Gateway Routing Protocol (IGRP)
Giao thức định tuyến ngoài
o Exterior Gateway Protocol (EGP)
o Border Gateway Protocol (BGP)
o Constrained Shortest Path First (CSPF)
4 Thông số định tuyến:
Một thông số định tuyến bao gồm bất kỳ giá trị nào được dùng bởi thuật toán định tuyến để xác định một lộ trình có tốt hơn lộ trình khác hay không Các thông số có thể là những thông tin như băng thông (bandwidth), độ trễ (delay), đếm bước truyền, chi phí đường đi, trọng số, kích thước tối đa gói tin (MTU - Maximum transmission unit), độ tin cậy, và chi phí truyền thông Bảng định tuyến chỉ lưu trữ những tuyến tốt nhất có thể, trong khi cơ sở dữ liệu trạng thái kết nối hay topo có thể lưu trữ tất cả những thông tin khác
Router dùng tính năng phân loại mức tin cậy (administrative distance -AD) để chọn đường
đi tốt nhất khi nó “biết” hai hay nhiều đường để đến cùng một đích theo các giao thức khác nhau AD định ra độ tin cậy của một giao thức định tuyến Mỗi giao thức định tuyến được ưu tiên trong thứ tự độ tin cậy từ cao đến thấp nhất có một giá trị AD Một giao thức có giá trị
AD thấp hơn thì được tin cậy hơn, ví dụ: OSPF có AD là 110 sẽ được chọn thay vì RIP có AD
là 120
Trang 26Bảng sau đây cho biết sự sắp xếp mức tin cậy được dùng trong các router Cisco
Giao thức định tuyến trong mạng Ad-hoc xuất hiện ở những mạng không có hoặc ít
phương tiện truyền dẫn
Interior Gateway Protocols (IGPs) trao đổi thông tin định tuyến trong một AS Các
ví dụ thường thấy là:
o IGRP (Interior Gateway Routing Protocol)
o EIGRP (Enhanced Interior Gateway Routing Protocol)
o OSPF (Open Shortest Path First)
o RIP (Routing Information Protocol)
o IS-IS (Intermediate System to Intermediate System)
Exterior Gateway Protocols (EGPs) định tuyến giữa các AS EGPs gồm:
o EGP (giao thức cũ để nối mạng Internet trước đây, bây giờ đã lỗi thời)
o BGP (Border Gateway Protocol: phiên bản hiện tại, BGPv4, có từ khoảng năm1995)
Trang 27Phần 3: Mô hình TCP/IP
Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet và được dùngnhư giao thức mạng và vận chuyển trên mạng Internet TCP (Transmission ControlProtocol) là giao thức thuộc tầng vận chuyển và IP (Internet Protocol) là giao thức thuộctầng mạng của mô hình OSI Họ giao thức TCP/IP hiện nay là giao thức được sử dụng rộngrãi nhất để liên kết các máy tính và các mạng
Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP để liên kếtvới nhau thông qua nhiều hệ thống mạng với kỹ thuật khác nhau Giao thức TCP/IP thựcchất là một họ giao thức cho phép các hệ thống mạng cùng làm việc với nhau thông qua việccung cấp phương tiện truyền thông liên mạng
I Giao thức IP:
1 Tổng quát:
Nhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thành liên kếtmạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức tầng mạng trong mô hìnhOSI Giao thức IP là một giao thức kiểu không liên kết (connectionless) cónghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu
2 Các giao thức trong mạng IP:
Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao thức bổ sung,các giao thức này đều không phải là bộ phận của giao thức IP và giao thức IP sẽ dùng đếnchúng khi cần
Giao thức ARP (Address Resolution Protocol): Ở đây cần lưu ý rằng các địa chỉ IP được
dùng để định danh các host và mạng ở tầng mạng của mô hình OSI, và chúng không phải làcác địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, TokenRing) Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ vật
lý của nhau Như vậy vấn đề đặt ra là phải tìm được ánh xạ giữa địa chỉ IP (32 bits) và địa chỉvật lý của một trạm Giao thức ARP đã được xây dựng để tìm địa chỉ vật lý từ địa chỉ IP khicần thiết
Giao thức RARP (Reverse Address Resolution Protocol): Là giao thức ngược với
giao thức ARP Giao thức RARP được dùng để tìm địa chỉ IP từ địa chỉ vật lý
Giao thức ICMP (Internet Control Message Protocol): Giao thức này thực hiện truyền
các thông báo điều khiển (báo cáo về các tình trạng các lỗi trên mạng) giữa các gateway hoặcmột nút của liên mạng Tình trạng lỗi có thể là: một gói tin IP không thể tới đích của
nó, hoặc một router không đủ bộ nhớ đệm để lưu và chuyển một gói tin IP, một thông báo
Trang 28ICMP được tạo và chuyển cho IP IP sẽ "bọc" (encapsulate) thông báo đó với một IPheader và truyền đến cho router hoặc trạm đích.
3 Các bước hoạt động của IP:
Khi giao thức IP được khởi động nó trở thành một thực thể tồn tại trong máy tính và bắt đầuthực hiện những chức năng của mình, lúc đó thực thể IP là cấu thành của tầng mạng, nhận yêucầu từ các tầng trên nó và gửi yêu cầu xuống các tầng dưới nó
Đối với thực thể IP ở máy nguồn, khi nhận được một yêu cầu gửi từ tầng trên, nó thực hiệncác bước sau đây:
1 Tạo một IP datagram dựa trên tham số nhận được
2 Tính checksum và ghép vào header của gói tin
3 Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng hoặc một gateway sẽđược chọn cho chặng tiếp theo
4 Chuyển gói tin xuống tầng dưới để truyền qua mạng
Đối với router, khi nhận được một gói tin đi qua, nó thực hiện các động tác sau:
1 Tính chesksum, nếu sai thì loại bỏ gói tin
2 Giảm giá trị tham số Time - to Live Nếu thời gian đã hết thì loại bỏ gói tin
3 Ra quyết định chọn đường
4 Phân đoạn gói tin, nếu cần
5 Kiến tạo lại IP header, bao gồm giá trị mới của các vùng Time - to -Live, Fragmentation
và Checksum
6 Chuyển datagram xuống tầng dưới để chuyển qua mạng
Cuối cùng khi một datagram nhận bởi một thực thể IP ở trạm đích, nó sẽ thực hiện bởi cáccông việc sau:
1 Tính checksum Nếu sai thì loại bỏ gói tin
2 Tập hợp các đoạn của gói tin (nếu có phân đoạn)
3 Chuyển dữ liệu và các tham số điều khiển lên tầng trên
II Giao thức điều khiển truyền dữ liệu TCP:
TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần phải thiết lập liênkết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với nhau Một tiến trình ứng dụngtrong một máy tính truy nhập vào các dịch vụ của giao thức TCP thông qua một cổng (port)của TCP Số hiệu cổng TCP được thể hiện bởi 2 bytes
Trang 29H 3.1: Cổng truy nhập dịch vụ TCPMột cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duynhất trong liên mạng Dịch vụ TCP được cung cấp nhờ một liên kết logic giữa một cặp đầunối TCP/IP Một đầu nối TCP/IP có thể tham gia nhiều liên kết với các đầu nối TCP/IP ở xakhác nhau Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập một liên kết TCP giữachúng và khi không còn nhu cầu truyền dữ liệu thì liên kết đó sẽ được giải phóng.
Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi (function calls)trong đó có các hàm yêu cầu: để yêu cầu, để trả lời Trong mỗi hàm còn có các tham số dànhcho việc trao đổi dữ liệu
Các bước thực hiện để thiết lập một liên kết TCP/IP: Thiết lập một liên kết mới có thể
được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động (passive)
Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một yêu cầu liên kết gửiđến từ xa thông qua một đầu nối TCP/IP (tại chỗ) Người sử dụng dùng hàm passiveOpen có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức an toàn)
Với phương thức chủ động, người sử dụng yêu cầu TCP mở một liên kết với một đầunối TCP/IP ở xa Liên kết sẽ được xác lập nếu có một hàm Passive Open tương ứng đãđược thực hiện tại đầu nối TCP/IP ở xa đó
Trang 30Bảng liệt kê một vài cổng TCP phổ biến.
Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông số trả lời từ TCP
Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cục bộ (localconnection name) cho liên kết được yêu cầu Thông số này về sau được dùng để thamchiếu tới liên kết đó (Trong trường hợp nếu TCP không thể thiết lập được liên kếtyêu cầu thì nó phải gửi tham số Open Failure để thông báo)
Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Sucsess đượcdùng để thông báo liên kết đã được thiết lập thành công Thông báo này được chuyểnđến trong cả hai trường hợp bị động và chủ động Sau khi một liên kết được mở,việc truyền dữ liệu trên liên kết có thể được thực hiện
Các bước thực hiện khi truyền và nhận dữ liệu: Sau khi xác lập được liên kết người sử
dụng gửi và nhận dữ liệu Việc gửi và nhận dữ liệu thông qua các hàm Send và Receive
Hàm Send: Dữ liệu được gửi xuống TCP theo các khối (block) Khi nhận được một
khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm (buffer) Nếu cờ PUSH được dựngthì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽ được gửi đi.Ngược lại cờ PUSH không được dựng thì dữ liệu được giữ lại trong bộ đệm và sẽgửi đi khi có cơ hội thích hợp (chẳng hạn chờ thêm dữ liệu nữa để gửi đi với hiệuquả hơn)
Hàm receive: Ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗi liên
kết Nếu dữ liệu được đánh dấu với một cờ PUSH thì toàn bộ dữ liệu trong bộ đệm (kể
cả các dữ liệu được lưu từ trước) sẽ được chuyển lên cho người sử dụng Còn nếu dữliệu đến không được đánh dấu với cờ PUSH thì TCP chờ tới khi thích hợp mới chuyển
dữ liệu với mục tiêu tăng hiệu quả hệ thống
Trang 31Nói chung việc nhận và giao dữ liệu cho người sử dụng đích của TCP phụ thuộc vào việc càiđặt cụ thể Trường hợp cần chuyển gấp dữ liệu cho người sử dụng thì có thể dùng cờURGENT và đánh dấu dữ liệu bằng bit URG để báo cho người sử dụng cần phải xử lý khẩncấp dữ liệu đó.
Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết khi không cần thiết
được thực hiên theo một trong hai cách: dùng hàm Close hoặc dùng hàm Abort
Hàm Close: Yêu cầu đóng liên kết một cách bình thường Có nghĩa là việc
truyền dữ liệu trên liên kết đó đã hoàn tất Khi nhận được một hàm Close TCP sẽtruyền đi tất cả dữ liệu còn trong bộ đệm thông báo rằng nó đóng liên kết Lưu ý rằngkhi một người sử dụng đã gửi đi một hàm Close thì nó vẫn phải tiếp tục nhận dữ liệuđến trên liên kết đó cho đến khi TCP đã báo cho phía bên kia biết về việc đóng liên kết
và chuyển giao hết tất cả dữ liệu cho người sử dụng của mình
Hàm Abort: Người sử dụng có thể đóng một liên kết bất kỳ và sẽ không chấp nhận
dữ liệu qua liên kết đó nữa Do vậy dữ liệu có thể bị mất đi khi đang được truyền đi.TCP báo cho TCP ở xa biết rằng liên kết đã được hủy bỏ và TCP ở xa sẽ thông báocho người sử dụng của mình
Một số hàm khác của TCP:
Hàm Status: cho phép người sử dụng yêu cầu cho biết trạng thái của một liên kết cụ
thể, khi đó TCP cung cấp thông tin cho người sử dụng
Hàm Error: thông báo cho người sử dụng TCP về các yêu cầu dịch vụ bất hợp lệ
liên quan đến một liên kết có tên cho trước hoặc về các lỗi liên quan đến môitrường
Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có các tham số với ýnghĩa như sau:
H 3.2: Dạng thức của segment TCP
Source Port (16 bits): Số hiệu cổng TCP của trạm nguồn
Destination Port (16 bits): Số hiệu cổng TCP của trạm đích
Sequence Number (32 bits): số hiệu của byte đầu tiên của segment trừ khi bit SYN