Đồ án Chọn đường và ứng dụng trong thiết kế mạng WAN

Tài liệu Đồ án Chọn đường và ứng dụng trong thiết kế mạng WAN: Chương i tổng quan về mạng máy tính 1.1 Sự hình thành của mạng máy tính Từ những năm 1960 đã xuất hiện các mạng nối các máy tính và các Terminal để sử dụng chung nguồn tài nguyên, giảm chi phí khi muốn thông tin trao đổi số liệu và sử dụng trong công tác văn phòng một cách tiện lợi. Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làm tăng yêu cầu truyền số liệu giưã các máy tính, giữa các terminal, và giữa các terminal với máy tính là một trong những động lực thúc đẩy sự ra đời và phát triển ngày càng mạnh mẽ các mạng máy tính.Quá trình hình thành mạng máy tính có thể tóm tắt qua 4 giai đoạn sau: Giai đoạn các terminal nối trực tiếp với máy tính: Đây là giai đoạn đầu tiên của mạng máy tính, để tận dụng công suất của máy tính người ta ghép nối các terminal vào một máy tính được gọi là các máy tính trung tâm. Giai đoạn các bộ tiền xử lý (Prontal) ở giai đoạn 1 máy tính trung tâm quản lý truyền tin tới các terminal, ở giai đoạn 2 máy tính trung tâm quản lý truyền tin ...

doc108 trang | Chia sẻ: hunglv | Lượt xem: 996 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Chọn đường và ứng dụng trong thiết kế mạng WAN, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương i tổng quan về mạng máy tính 1.1 Sự hình thành của mạng máy tính Từ những năm 1960 đã xuất hiện các mạng nối các máy tính và các Terminal để sử dụng chung nguồn tài nguyên, giảm chi phí khi muốn thông tin trao đổi số liệu và sử dụng trong công tác văn phòng một cách tiện lợi. Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làm tăng yêu cầu truyền số liệu giưã các máy tính, giữa các terminal, và giữa các terminal với máy tính là một trong những động lực thúc đẩy sự ra đời và phát triển ngày càng mạnh mẽ các mạng máy tính.Quá trình hình thành mạng máy tính có thể tóm tắt qua 4 giai đoạn sau: Giai đoạn các terminal nối trực tiếp với máy tính: Đây là giai đoạn đầu tiên của mạng máy tính, để tận dụng công suất của máy tính người ta ghép nối các terminal vào một máy tính được gọi là các máy tính trung tâm. Giai đoạn các bộ tiền xử lý (Prontal) ở giai đoạn 1 máy tính trung tâm quản lý truyền tin tới các terminal, ở giai đoạn 2 máy tính trung tâm quản lý truyền tin tới các bộ tập trung qua các bộ ghép nối điều khiển đường truyền. Ta có thể thay thế bộ ghép nối đường truyền bằng các máy tính nini gọi là prontal, đó chính là bộ tiền xử lý. Giai đoạn mạng máy tính: Vào những năm 1970 người ta bắt đầu xây dựng mạng truyền thông trong đó các thành phần chính của nó là các nút mạng gọi là bộ chuyển mạch dùng để hướng thông tin tới đích. Các mạng được nối với nhau bằng đường truyền còn các máy tính xử lý thông tin của người dùng hoặc các trạm cuối được nối trực tiếp vào các nút mạng để khi cần thì trao đổi thông tin qua mạng. Các nút mạng thương là máy tính nên đồng thời đóng vai trò của người sử dụng. Chức năng của nút mạng: + Quản lý truyền tin, quản lý mạng Như vậy các máy tính ghép nối với nhau hình thành mạng máy tính, ở đây ta thấy mạng truyền thông cũng ghép nối các máy tính với nhau nên khái niệm mạng maý tính và mạng truyền thông có thể không phân biệt. Việc hình thành mạng máy tính nhằm đạt các mục đích sau: Tận dụng và làm tăng giá trị của tài nguyên Chinh phục khoảng cách Tăng chất lượng và hiệu quả khai thác và xử lý thông tin Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố đối với một máy tính nào đó. Như vậy: Mạng máy tính là tập hợp các máy tính được ghép với nhau bởi các đường truyền vật lý theo một kiến trúc nào đó. Các yếu tố của mạng máy tính Đường truyền vật lý Đường truyền vật lý là thành phần để chuyển các tín hiệu điện tử giữa các máy tính. Các tín hiệu điện tử đó biểu thị các dữ liệu dưới dạng xung nhị phân. Tất cả các tín hiệu truyền giữa các máy tính đều ở dạng sóng điện từ và có tần số trải từ cực ngắn cho tới tần số của tia hồng ngoại.Tuỳ theo tần số của sóng điện từ mà có thể dùng các đườngtruyền vật lý khác nhau để truyền. + Các tần số Radio có thể truyền bằng cáp điện hoặc bằng các phương tiện quảng bá (broadcast) +Sóng cực ngắn được dùng để truyền các trạm mặt đất và vệ tinh. Hoặc là dùng để truyền từ một trạm phát tới các trạm thu. +Tia hồng ngoại là lý tưởng đối với truyền thông mạng . Nó có thể truyền từ điểm tới điểm hoặc quảng bá từ một điểm tới các máy thu. Tia hồng ngoại hoặc các loại tia sáng tần số cao hơn có thể truyền được qua cáp sợi quang. Những đặc trưng cơ bản của đường truyền vật lý là: giải thông, độ suy hao, độ nhiễu điện từ. Dải thông của đường truyền là độ đo phạm vi tần số mà đường truyền có thể đáp ứng được. Giải thông phụ thuộc vào độ dài cáp, đường kính sợi cáp, vật liệu dùng chế tạo cáp... Thông lượng của một đường truyền (throughput) chính là tốc độ truyền dữ liệu trên đường truyền đó trong một đơn vị thời gian.Thông lượng của đường truyền phản ánh hiệu quả sử dụng đường truyền đó. Độ suy hao là giá trị phản ánh mức độ suy yếu của tín hiệu đường truyền sau khi truyền qua một đơn vị độ dài cáp. Độ nhiễu điện từ là khả năng làm nhiễu tín hiệu trên đường truyền khi cáp đi qua vùng có sóng điện từ. Có hai loại đường truyền: hữu tuyến, vô tuyến được sử dụng trong việc kết nối mạng máy tính. Đường truyền hữu tuyến gồm cáp đồng trục, cáp xoắn đôi, cáp sợi quang; đường truyềnvô tuyến gồm sóng radio, sóng cực ngắn, tia hồng ngoại Tuy nhiên khi thiết kế dây cho một mạng máy tính người ta còn phải chú ý tới nhiều tham số khác như: giá thành, khả năng chịu nhiệt, khả năng chống chịu ẩm, khả năng uốn cong. Kiến trúc mạng Kiến trúc mạng máy tính bao gồm cách ghép nối vật lý các máy tính với nhau và các quy tắc, quy ước mà tất cả các thực thể tham gia trong hệ thống mạng phải tuân theo để đảm bảo cho mạng hoạt động tốt.Cách các máy tính được gép nối với nhau được goi là topology của mạng còn các quy tắc quy ước truyền thông được gọi là giao thức (protocol). Topology và protocol là hai khái niệm cơ bản nhất của mạng máy tính. Topology: Người ta phân biệt hai kiểu nối mạng vật lý cơ bản là kiểu điểm- điểm và kiểu quảng bá (broadcasting hay point- to- multipoint) + Kiểu điểm - điểm: Đường truyền nối từng cặp nút với nhau.Tín hiệu đi từ nút nguồn đến nút trung gian rồi chuyển tiếp tới đích. Dạng cây Hình sao Chu trình Hình 1-1: Các topo mạng cơ bản Hình 1-2: Dạng topo đầy đủk Dạng vòng Dạng bus Satellite hoặc radio . Hình 1-3: Các topo mạng cơ bản + Kiểu quảng bá: Với kiểu quảng bá tất cả các nút chung một đường truyền vật lý. Dữ liệu được gửi đi từ một nút được tiếp nhận bởi các nút còn lại, và trong gói tin phải có vùng địa chỉ đích cho phép mỗi nút kiểm tra có phải tin của minh không Cấu trúc dạng bus hay dạng vòng cần cơ chế trọng tài để giải quyết đụng độ (collision) khi nhiều nút muốn truyền tin đồng thời. Trong cấu trúc dạng vệ tinh hoặc radio mỗi nút cần có anten thu và phát. Giao thức mạng (network protocol) Việc trao đổi thông tin giữa các nút với nhau cần phải tuân theo một số quy tắc, quy ước nhất định nào đó. Chẳng hạn, khi hai người nói chuyện với nhau thì cũng phải tuân theo quy tắc: Khi một người nói thì người kia phải nghe và ngược lại. Việc truyền thông tin trên mạng cũng phải tuân theo các quy tắc quy ước nhiều mặt như: khuôn dạng dữ liệu gửi đi, cácthủ tục gửi và nhận, kiểm soát dữ liệu, xử lí lỗi và xử lý sự cố... Chẳng hạn mạng lưới giao thông công cộng càng phát triển thì số quy tắc đề ra càng phải nhiều, càng phải chặt chẽ và càng phức tạp hơn. Tập hợp các quy tắc , quy ước để đảm bảo trao đổi và xử lý thông tin trên mạng gọi là giao thức. Các mạng được thiết kế khác nhau có thể tuân theo một số giao thức khác nhau, tuy nhiên người ta đưa ra một số giao thức chuẩn được dùng trên nhiều mạng khác nhau. Phân loại mạng máy tính Người ta phân loại mạng máy tính khác nhau tuỳ theo các yếu tố chính được chọn như: Khoảng cách địa lý, kỹ thuật chuyển mạch, kiến trúc mạng, cơ chế hoạt động của mạng... Phân loại theo khoảng cách địa lý Nếu lấy khoảng cách địa lý làm yếu tố chính để phân loại mạng thì mạng được phân thành: mạng cục bộ mạng đô thị, mạng diện rộng, mạng toàn cầu +Mạng cục bộ (local area network - LAN) là mạng được cài đặt trong một phạm vi tương đối nhỏ ( trong một toà nhà, trong một phòng ban hoặc trong một công ty...) với đường kính giới hạn trong khoảng vài chục Km. +Mạng đô thị (Metropolitan area Network - MAN) là mạng được cài đặt trong phạm vi một thành phố, một trung tâm kinh tế. .. phạm vi cài đặt mạng là hàng trăm Km. + Mạng diện rộng (Wide area Network - WAN) là mạng có phạm vi hoạt động có thể là cả một vùng, một khu vực và có thể vượt qua biên giới một quốc gia.. +Mạng toàn cầu (Global Area Network - GAN) phạm vi của mạng trải rộng khắp lục địa của trái đất. Phân loại theo kĩ thuật chuyển mạch Nếu lấy kĩ thuật chuyển mạch so sánh thì có thể phân chia mạnh thành: Mạng chuyển mạch kênh, mạng chuyển mạch gói, mạng chuyển mạch thông báo. Mạng chuyển mạch kênh (Circuit - switched - Network):đây là mạng mà khi 2 thực thể muốn liên lạc với nhau thì chúng phải tạo và duy trì một kênh liên tục cho đến khi kết thúc quá trình thông tin.Phương pháp chuyển mạch có hai nhược điểm chính: + Hiệu suất sử dụng đường truyền không cao + Mất nhiều thời gian cho việc thiết lập kênh cố định khi thông tin giữa 2 thực thể. b) Mạng chuyển mạch thông báo (Message - switched -Network) Trong mạng chuyển mạch thông báo việc chọn đường đi cho các thông báo tới đích được thực hiện tại các nút mạng. Các nút căn cứ vào địa chỉ đích của thông báo để ra quyết định chọn nút đến kế tiếp cho thông báo trên đường dẫn tới đích. Như vậy các nút cần lưu trữ tạm thời các thông báo, đọc thông báovà quản lý việc chuyển tiếp các thông báo đi. Phương pháp chuyển mạch thông báo có những ưu điểm sau: + Hiệu suất sử dụng đường truyền cao vì không có các kênh thông tin cố định. + Mỗi nút mạng có thể lưu trữ thông báo cho tới khi đường truyền khả dụng mới truyền đi nên giảm đuực tình trạng tắc nghẽn trên mạng. + Có thể điều khiển truyền tin bằng cách sắp xếp mức độ ưu tiên cho các thông báo. + Trong mạng chuyển mạch thông báo chúng ta có thể làm tăng hiệu suất sử dụng dải thông của mạng bằng cách gán địa chỉ quảng bá cho các thông báo để cho nó đến nhiều đích khác nhau. Nhược điểm chủ yếu của chuyển mạch thông báo là trong trường hợp một thông báo dài bị lỗi, phải truyền lại thông báo này nên hiệu suất không cao. Phương pháp này thích hợp với các mạng truyền thư tín điện tử (Electronic mail). c ) Mạng chuyển mạch gói (Packet - switched - Network) Trong mạng chuyển mạcg gói thì một thông báo có thể được chia ra nhiều gói nhỏ hơn (packet), độ dài khoảng 256 bytes, có khuôn dạng tuỳ theo chuẩn quy định. Các gói tin có chứa thông tin điều khiển địa chỉ nguồn, địa chỉ đích cho gói tin,số thứ tự gói tin, thông tin kiểm tra lỗi...Do vậy các gói tin của cùng một thông báo có thể được gửi đi theo nhiều đường khác nhau, tới đích tại các thời điểm khác nhau, nơi nhận sẽ căn cứ vào thông tin trong các gói tin và sắp xếp lại chúng theo đúng thứ tự. Ưu điểm của chuyển mạch gói: + Mạng chuyển mạch gói có hiệu suất và hiệu quả cao hơn mạng chuyển mạch thông báo vì kích thước các gói tin nhỏ hơn nên các nút mạng có thể xử lý toàn bộ gói tin mà không cần phải lưu trữ trong đĩa. + Mỗi đường truyền chiếm thời gian rất ngắn, vì chúng có thể dùng bất cứ đường có thể được để tới đích. +Khả năng đòng bộ bít là rất cao. Nhựơc điểm: + Vì thời gian truyền tin ngắn nên nếu thời gian chuyển mạch lớn thì tốc độ truyền không cao. + Việc tập hợp lại các gói tin ban đầu về nguyêntắc là thực hiện được nhưng rất khó khăn, đặc biệt là khi các gói tin truyền đi theo nhiều đường khác nhau. + Đối với các ứng dụng phụ thuộc thời gian thực thì việc các gói tin tới đích không theo thứ tự là một nhược điểm quan trọng cần phải khắc phục. Tuy vẫn còn những hạn chế nhưng do có ưu điểm về tính mềm dẻo, hiệu suất cao nên các mạng chuyển mạch gói đang được dùng phổ biến hiện nay. 1.3.3 Phân loại mạng theo cơ chế hoạt động Trong môi trường mạng máy tính có 2 cơ chế hoạt động chính là: peer-to-peer và client/ server. Môi trường peer - to - peer không có máy chuyên phục vụ cho một công việc nào, còn trong môi trường client/server thì phải có những máy được dành riêng để phục vụ mục đích khác nhau. Mạng dựa trên máy phục vụ: Trong mạng có những máy chuyên dụng phục vụ cho các mục đích khác nhau. Máy phục vụ chuyên dụng hoạt động như một người phục vụ và không kiêm vai trò của trạm làm việc hay máy khách. Các maý phục vụ chuyên dụng được tối ưu hoá để phục vụ nhanh những yêu cầu của khách hàng trên mạng Các loại máy phục vụ chuyên dụng thường thấy như: + Máy phục vụ tập tin / in ấn (file/print sever) + Máy phục vụ chương trình ứng dụng (application server) + Máy phục vụ thư tín (mail server) + Máy phục vụ fax(fax server) + Máy phục vụ truyền thông (communication server) Một trong những ưu điểm quan trọng của mạng dựa trên máy phục vụ là có tính an toàn và bảo mật cao hơn.Hầu hết các mạng trong thực tế (nhất là mạng lớn )đều dựa trên máy phục vụ Mạng ngang hàng: Không tồn tại một cấu trúc phân cấp nào trong mạng. Mọi máy tính đều “bình đẳng”. Thông thường, mỗi máy tính kiêm luôn cả hai vai trò máy khách và máy phục vụ, vì vậy không máy nào được chỉ định chịu trách nhiệm quản lý mạng. Người dùng ở từng máy tự quyết định phần dữ liệu nào trên máy của họ sẽ được dùng chung trên mạng. Thông thường mạng ngang hàng thích hợp cho các mạng có quy mô nhỏ (chẳng hạn như nhóm làm việc ) và không yêu cầu phải có tính bảo mật. 1.3.4 Phân loại mạng theo kiến trúc Người ta có thể phân loại mạng theo kiến trúc (topology và protocol) như các mạng sna, mạng ISO, mạng TCP/IP. .. 1.4 Kiến trúc phân tầng - chuẩn hoá mạng - mô hình ISO 1.4.1 kiến trúc phân tầng Để giảm độ phức tạp trong thiết kế và cài đặt mạng, các mạng máy tính được tổ chức thiết kế theo kiểu phân tầng (layering). Trong hệ thống thành phần của mạng được tổ chức thành một cấu trúc đa tầng, mỗi tầng được xây dựng trên tầng trước đó ; mỗi tầng sẽ cung cấp một số dịch vụ cho tầng cao hơn. Số lượng các tầng cũng như chức năng của mỗi tầng là tuỳ thuộc vào nhà thiết kế. Ví dụ cấu trúc phân tầng của mạng SNA của IBM, mạng DECnet của Digital, mạng ARPANET. .. Là có sự khác nhau. Nguyên tắc cấu trúc của mạng phân tầng là: mỗi hệ thống trong một mạng đều có cấu trúc phân tầng (Số lượng tầng, chức năng của mỗi tầng là như nhau ) Tầng i của hệ thống A sẽ hội thoại với tầng i của hệ thống B, các quy tắc và quy ước dùng trong hội thoại gọi là giao thức mức I Giữa hai tầng kề nhau tồn tại một giao diện (interface) xác định các thao tác nguyên thuỷ của tầng dưới cung cấp lên tầng trên. Trong thực tế dữ liệu không truyền trực tiếp từ tầng i của hệ thống này sang tầng i của hệ thống khác ( trừ tầng thấp nhất trực tiếp sử dụng đường truyền vật lý để truyền các xâu bít (0.1) từ hệ thống này sang hệ thống khác ).Dữ liệu được truyền từ hệ thống gửi (sender) sang hệ thống nhận (receiver) bằng đường truyền vật lý và cứ như vậy dữ liệu lại đi ngược lên các tầng trên. Như vậy khi hai hệ thống liên kết với nhau, chỉ tầng thấp nhất mới có liên kết vật lý còn ở tầng cao hơn chỉ có liên kết logic (liên kết ảo ) được đưa vào để hình thức hoá các hoạt động của mạng thuận tiện cho việc thiết kế và cài đặt các phần mềm truyền thông. Như vậy để viết chương trình cho tầng N, phải biết tầng N+1 cần gì và tầng N+1 có thể làm được gì. Tầng N Tầng N-1 Tầng 2 Tầng 1 Tầng 1 Tầng 2 Tầng N-1 Tầng N Hệ thống A Hệ thống B Giao thức tầng N Giao thức tầng N-1 Giao thức tầng 2 Giao thức tầng 1 Đường truyền vật lý Hình 1-4: Minh họa kiến trúc phân tầng tổng quát 1.4.2 Chuẩn hoá mạng Tình trạng không tương thích giữa các mạng, đặc biệt là các mạng bán trên thị trường gây trở ngại cho những người sử dụng, tác động đến mức tiêu thụ các sản phẩm về mạng. Do đó cần xây dựng các mô hình chuẩn làm căn cứ cho các nhà nghiên cứu và thiết kế mạng tạo ra các sản phẩm có tính chất mở về mạng, đưa tới dễ phổ cập, sản xuất và sử dụng. .. i/ ISO(international Standard Organization) thành lập dưới sự bảo trợ của liên hiệp quốc, các thành viên là các cơ quan tiêu chuẩn của các quốc gia. ISO đã xây dựng hơn 5000 chuẩn ở tất cả các lĩnh vực. ISO được chia thành các uỷ ban kỹ thuật ( Technical Committee -TC). TC97 đảm bảo chuẩn hoá lĩnh vực xử lý tin. Mỗi TC lại chia thành nhiều tiểu ban (Sub Committee -SC) và mỗi SC lại chia thành nhiều nhóm làm việc khác nhau (Working Group ) đảm nhiệm các nhiệm vụ chuyên sâu khác nhau. các chuẩn do hội đồng ISO ban hành như là các chuẩn quốc tế chính thức (International Standard -IS) ii/ CCITT(Committee Consult tatif International pour Telegraphe et Telephone). Tổ chức tư vấn quốc tế về điện tín và điện thoại hoạt động dưới sự bảo trợ của liên hiệp quốc, các thành viên chủ yếu là các cơ quan Bưu chính - viễn thông của các quốc gia và tư nhân. Phương thức làm việc của CCITT cũng giống như ISO nhưng sản phẩm của nó không được gọi là chuẩn mà được gọi là các khuyến nghị ( recommentdation).CCITT đã đưa ra các khuyến nghị loại V liên quan đến truyền dữ liệu, các khuyến nghị loại X liên quan đến mạng truyền dữ liệu công cộng và các khuyến nghị loại I dành cho các mạng ISDN . Ngoài ISO, CCITT trên thế giới còn có các tổ chức khác tham gia việc chuẩn hoá như ECMA(european Computer Manufacture ), ANSI (American National Standard institute ),IEEE (institute Electrical and Electronic Engineers)... CCITT Layer ISO Service Definition Layer Protocol Service Definition Layer Protocol X.217 X400-X430 MHS X.288 RTSE X.229 ROSE X.227. .. Application 8649 9640 VT 8571 STAM 8650 CASE 8831 JIM X.216 X.226 X.208 X.209 Presentation 8822 8823 8824 8825 X.215 X.225 Session 8326 8327 X.214 X.224 Transport 8072 8073 X.213 0.931 X.25 X.300-X.352 Network 8.348 8208 8878 8473 8648 X.212 LAPB 1.440/I.44J LAPD Data Link 8886, 8802/2 7776 X.211 X.21 Physical 8802/3 8802/4 8802/5. .. 7809 8022 Hinh 1-5 Các chuẩn cho kiến trúc phân tầng của CCITT và ISO 1.4.3 Mô hình OSI: Do các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng của mình. Từ đó dẫn đến tình trạng không tương thích giữa các mạng về: Phương pháp truy nhập đường truyền khác nhau, họ giao thức khác nhau. ..sự không tương thích đó làm trở ngại cho quá trình tương tác giữa người dùng ở các mạng khác nhau. Nhu cầu trao đổi thông tin càng lớn thì trở ngại đó càng không thể chấp nhận được với người sử dụng. Với lý do đó tổ chức chuẩn hoá quốc tế ISO đã thành lập một tiểu ban nhằm xây dựng một khung chuẩn về kiến trúc mạng để làm căn cứ cho các nhà thiết kế và chế tạo các sản phẩm mạng. Kết quả là năm 1984 ISO đã đưa ra mô hình tham chiếu cho việc kết nối các hệ thống mở ( Reference Model for Open System Inter - connection) hay gọn hơn là OSI Reference model. Mô hình này được dùng làm cơ sở để kết nối các hệ thống mở. ISO sử dụng phương pháp phân tích các hệ thống mở theo kiến trúc phân tầng và đã công bố mô hình OSI cho việc kết nối các hệ thống mở gồm 7 tầng. Application Presentation Session Transport Network Data Link Physical Application Presentation Session Transport Network Data Link Physical Hình 1-6: Mô hình OSI 7 tầng Các nguyên lý được áp dụng cho 7 tầng như sau: Một lớp cần thiết phải tạo ở mức độ khác nhau của khái niệm trừu tượng. Mỗi lớp phải thực hiện một chức năng xác định rõ ràng. chức năng của mỗi lớp phải được chọn theo quan điểm hướng tới các giao thức chuẩn quốc tế đã được định nghĩa. Ranh giới giữa các lớp phải được chọn để tối thiểu luồng thông tin đi qua các giao diện. Số các lớp phải đủ lớn để phân biệt các chức năng cần thiết nhưng không đưa vào cùng một lớp quá nhiều chức năng, và phải đủ nhỏ để kiến trúc không rắc rối. .. Chức năng các tầng trong mô hình OSI Tầng Chức năng 1 Vật lý Cung cấp phương tiện truyền tin, thủ tục, khởi động duy trì, huỷ bỏ các liên kết vật lý, cho phép truyền dữ liệu ở dạng bit. Truy nhập đường truyền vật lý nhờ các phương tiện: Cơ, điện, hàm, thủ tục. 2 Liên kết dữ liệu Thiết lập, duy trì, huỷ bỏ các liên kết dữ liệu, kiểm soát luồng dữ liệu, phát hiện sai sót vsà khắc phục các sai sót truyền tin. 3 Tầng mạng .Thực hiện việc chọn đường và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp. Thực hiện việc kiểm soát luồng dữ liệu và cắt hợp dữ liệu nếu cần. 4 Tầng giao vận Thực hiện việc truyền dữ liệu giữa hai đầu nút (end- to- end), kiểm soát lỗi và kiểm tra việc truyền dữ liệu giữa hai đầu nút. Có thể thực hiện việc ghép kênh (Multiplxing), cắt hợp dữ liệu nếu cần 5 Tầng phiên Thiết lập, duy trì và đông bộ hoá và huỷ bỏ các phiên truyền thông 6 Trình diễn Biểu diễn thông tin theo cú pháp người sử dụng để đảm bảo truyền dữ liệu của các ứng dụng qua môi trường OSI. 7 ỉng dụng Là giao diện giữa người sử dụng và môi trường OSI,đồng thời cung cấp các dịch vụ thông tin phân tán. Hình 1-7 Chức năng các tầng trong mô hình OSI Các giao thức chuẩn của mô hình OSI Vấn đề đặt ra ở đây là hai hệ thống máy tính khác nhau có thể giao tiếp được với nhau hay không? Ta thấy rằng mô hình OSI có thể tạo ra giải pháp để cho phép hai hệ thống dù khác nhau thế nào đi nữa đều có thể truyền thông được với nhau nếu chúng đảm bảo những điều kiện sau đây: + Chúng càI đặt cùng một tập các chức năng truyền thông + Các chức năng đó được tổ chức thành một tầng. Các tầng đồng mức phảI cung cấp các chức năng như nhau. ( Phương thức cung cấp không nhất thiết giống nhau ) + Các tầng đồng mức phải sử dụng cùng một giao thức. Để đảm bảo những điều trên cần phảI có các chuẩn. Các chuẩn phảI xác định các chức năng và dịch vụ được cung cấp bởi một tầng. Các chuẩn cũng phải xác định các giao thức giữa các tầng đồng mức. Mô hình OSI 7 tầng chính là cơ sở để xây dựng các chuẩn đó. Thực thể hoạt động trong các tầng của OSI Theo quan niệm của OSI, trong mỗi tầng của một hệ thống có một hoặc nhiều thực thể (entity) hoạt động. Một thực thể có thể là thực thể mềm (software entity), ví dụ như một tiến trình trong hệ thống đa xử lý, hoặc là một thực thể cứng (hardware entity) ví dụ như chíp I/O thông minh. Thực thể tầng 7 được gọi là thực thể ứng dụng (Application entity); thực thể tầng 6 được gọi là thực thể trình diễn. .v..v.. Một thực thể tầng N cài đặt dịch vụ cung cấp cho tầng N+1. Khi đó tầng N gọi là người cung cấp dịch vụ, còn tầng N+1 gọi là người dùng dịch vụ. Tầng N dùng dịch vụ của tầng N-1 để cung cấp dịch vụ của nó. Tầng N có thể đưa ra vài lớp dịch vụ, chẳng hạn như truyền thông nhanh mà đắt và truyền thông chậm mà rẻ. Các dịch vụ là có sẵn tại các nút truy cập dịch vụ (SAP). Các SAP của tầng N tại các chỗ mà tại đó tầng N+1 có thể truy nhập dịch vụ được đưa ra. Mỗi SAP có một địa chỉ và tên duy nhất. Mỗi thực thể truyền thông với thực tế của tầng trên và tầng dưới nó qua một giao diện (interface). Giao diện này gồm một hoặc nhiều điểm truy cập dịch vụ (Service Acess Poent – SAP) (N-1) Entity cung cấp dịch vụ cho một (N) entity thông qua việc gọi các hàm nguyên thuỷ (primitive). Hàm nguyên thuỷ chỉ rõ chức năng cần thực hiện và được dùng để chuyển dữ liệu, thông tin điều khiển. Có 4 hàm nguyên thuỷ được dùng để định nghĩa tương tác giữa các tầng liền kề nhau, sơ hoạt động được mô tả như hình sau: (N+1)Layer (N)Layer (N+1)Layer (N)Layer Request SAP SAP Confirm (N)Protocol Indicationt Response Hình 1-8: Nguyên lý hoạt động của các hàm nguyên thuỷ Request (yêu cầu ): là hàm nguyên thuỷ mà người sử dụng dịch vụ (Service user) dùng để gọi các chức năng. Indication (chỉ báo): là hàm nguyên thuỷ mà người cung cấp dịch vụ (Service Provider ) dùng để: + Gọi báo một chức năng nào đó hoặc + Chỉ báo một chức năng đã được gọi ở một điểm truy cập dịch vụ (SAP) response (trả lời ): là hàm nguyên thuỷ mà Service user dùng để hoàn tất một chức năng đã được gọi từ trước bởi một hàm nguyên thuỷ Indication ở SAP đó. confirm (xác nhận) là hàm nguyên thuỷ của Service Provider, dùng để hoàn tất một chức năng đã được gọi từ trước bởi hàm nguyên thuỷ Request tại SAP đó. Theo sơ đồ này quy trình thực hiện một thao tác giữa hai hệ thống A và B được thực hiện như sau: + Tầng (N+1) của A gửi xuống tầng (N) kề nó một hàm Request (N)PCI (N+1)PDU (N)SDU (N)PDU Tầng N+1 Tầng N Hình 1-9: Quan hệ đơn vị dữ liệu giữa các tầng kề nhau + Tầng (N) của A cấu tạo một đơn vị dữ liệu để gửi yêu cầu đó qua tầng (N) của B theo giao thức tầng N. + Nhận được thông báo yêu cầu đó, tầng (N) của B gửi một lên tầng (N+1) trên nó một hàm Indication + Tầng (n+1) của B gửi xuống tầng (N) kề dưới nó một hàm Reponse. (N) của A theo giao thức tầng (N) đã xác định 0. + Tầng (N) của A gửi lên tầng (N+1) kề trên nó một hàm xác nhận (Confirm) kết thúc một giao tác giữa hai hệ thống. Các hàm nguyên thuỷ đều được gọi đến ( hoặc gửi đi ) từ một điểm truy nhập dịch vụ (SAP) ở ranh giới 2 tầng (n+1) và (N). Đơn vị dữ liệu sử dụng trong giao thức tầng (N) ký hiệu là PDU. Giữa các tầng kề nhau các đơn vị dữ liệu có mối quan hệ như sau: một thực thể ở tầng N không thể truyền trực tiếp đến một thực thể tầng N+1 của hệ thống khác, mà phải đi xuống tầng thấp nhất (tầng vật lý ) trong kiến trúc phân tầng nào đó. Khi xuống tầng đến (N) thì một đơn vị dữ liệu của tầng (N) được xem như một đơn vị dữ liệu (SDU) của tầng (N). Phần thông tin của tầng (N), gọi là (N) SDU quá dài thì được cắt thành nhiều đoạn, mỗi đoạn kết hợp với (N) PCI vào đầu để tạo thành nhiều (N) PDU. Quá trình như vậy được chuyển xuống cho đến tầng vật lý, ở đó dữ liệu được truyền qua đường vật lý. ở hệ thống nhận, quá trình diễn ra ngược lại. Qua mỗi tầng các PCI của các đơn vị dữ liệu sẽ được phân tích và cắt bỏ các header của các PDU trước khi gửi lên tầng trên. Phương thức hoạt động: có liên kết và không có liên kết ở mỗi tầng mô hình trong tầng ISO, có hai phương thức hoạt động chính được áp dụng đó là: phương thức hoạt động có liên kết (connection-oriented) và không có liên kết (connectionless). Với phương thức có liên kết, trước khi truyền dữ liệu cần thiết phải thiết lập một liên kết logic giữa các thực thể cùng tầng. Còn với phương thức không liên kết thì không cần lập liên kết logic và mỗi đơn vị dữ liệu trước hoặc sau nó. Với phương thức có liên kết, quá trình truyền dữ liệu phải trải qua ba giai đoạn theo thứ tự thời gian. - Thiết lập liên kết: hai thực thể đồng mức ở hai hệ thống thương lượng với nhau về tập các tham số sẽ được sử dụng trong giai đoạn sau. - Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và quản lý. - Huỷ bỏ liên kết (logic): giải phóng các tài nguyên hệ thống đã cấp phát cho liên kết để dùng cho các liên kết khác. tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sử dụng, chẳng hạn đối với tầng N có: N-CONNECT ( thiết lập liên kết ), N-DATA(Truyền dữ liệu ), và N-DISCONNECT (Huỷ bỏ liên kết ) ngoài ra còn một số thủ tục phụ được sử dụng tuỳ theo đặc điểm, chức năng của mỗi tầng. Ví dụ: - Thủ tục N-RESTART được sử dụng để khởi động lại hệ thống ở tầng 3 - Thủ tục T-EXPEDITED DATA cho việc truyền dữ liệu nhanh ở tầng 4 - Thủ tục S-TOKEN GIVE để chuyển điều khiển ở tầng 5. .. Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication, Response, Confirm) để cấu thành các hàm cơ bản của giao thức ISO. Còn đối với phương thức không liên kết thì chỉ có duy nhất một giai đoạn đó là: truyền dữ liệu. So sánh hai phương thức hoạt động trên chúng ta thấy rằng phương thức hoạt động có liên kết cho phép truyền dữ liệu tin cậy, do đó có cơ chế kiểm soát và quản lý chặt chẽ từng liên kết logic. Nhưng mặt khác nó phức tạp và khó cài đặt. Ngược lại, phương thức không liên kết cho phép các PDU được truyền theo nhiều đường khác nhau để đi đến đích, thích nghi với sự thay đổi trạng thái của mạng, song lại trả giá bởi sự khó khăn gặp phải khi tập hợp các PDU để di chuyển tới người sử dụng. Hai tầng kề nhau có thể không nhất thiết phải sử dụng cùng một phương thức hoạt động mà có thể dùng hai phương thức khác nhau. 1.4.4 Truyền dữ liệu trong mô hình OSI. Tiến trình gửi gồm vài dữ liệu muốn gửi qua tiến trình nhận. Dữ liệu đưa xuống tầng ứng dụng, dữ liệu đó gắn thêm phần đầu áp dụng (AH-Application Header) vào phía trước dữ liệu và kết quả đưa xuống cho tầng trình diễn. Tầng trình diễn có thể biến đổi mục dữ liệu này theo nhiều cách khác nhau, thêm phần header vào đầu và đi xuống tầng phiên. Quá trình này được lặp đi lặp lại cho đến khi dữ liệu đi xuống tầng vật lý, ở đó chúng thực sự được truyền sang máy nhận. ở máy nhận các phần header khác nhau được loại bỏ từng cái một khi các thông báo truyền lên theo các lớp cho đến khi lên tới tiến trình nhận. Như vậy, việc truyền dữ liệu thực hiện theo chiều dọc. Khi tầng giao vận ở máy gửi nhận một thông báo từ tầng phiên, gán một Transport Header và gửi nó qua tầng giao vận nhận. Giao thức lớp ứng dụng Application Presentation Session Transport Network Data Link Physical Application Presentation Session Transport Network Data Link Physical Data AH Data PH Data SH Data TH Data NH Data DH Data PH Bits Giao thức trình diễn Hình 1-10: Ví dụ quá trình truyền dữ liệu trong mô hình OSI Hình 1-10 biểu diễn một mẫu sử dụng mô hình OSI có thể truyền dữ liệu như thế nào. 1.5 Kết nối các mạng máy tính: 1.5.1 các tiếp cận: trong quá trình phát triển mạng máy tính, nhiều công ty, nhiều vùng, nhiều quốc gia đã xây dựng các hệ thống mạng khác nhau về chủng loại, kiến trúc, khoảng cách... Nhu cầu trao đổi thông tin của xã hội ngày càng cao nên việc kết nối các mạng với nhau là vấn đề bức thiết. Làm cho những người sử dụng trên các mạng khác nhau có thể trao đổi thông tin với nhau một cách dễ dàng, hiệu quả và an toàn mà không phải xây dựng lại hệ thống mạng đã có. để kết nối các mạng với nhau, người ta xuất phát từ một trong hai quan điểm sau: (1) Xem mỗi nút của mạng con như một hệ thống mở, hoặc (2) Xem mỗi mạng con như một hệ thống mở. theo quan điểm (1) thì mỗi nút của mạng con có thể truyền thông trực tiếp với một nút mạng con bất kỳ nào khác. Như vậy, toàn bộ các nút của một mạng con cũng chính là nút của mạng lớn và phải tuân thủ theo một cấu trúc chung. Theo quan điểm (2) thì hai nút bất kỳ thuộc hai mạng con khác nhau không thể truyền thông trực tiếp với nhau được mà phải thông qua một phần tử trung gian gọi là giao diện kết nối (Interconnection Iterface) đặt giữa hai mạng con đó. Điều đó cho phép tạo ra một mạng lớn gồm các giao diện kết nối và các máy chủ (host) được nối với nhau bởi các mạng con. Tương ứng với hai quan điểm này có hai chiến lược kết nối các mạng với nhau. Theo quan điểm (1) người ta tìm cách xây dựng các chuẩn chung cho các mạng (như các chuẩn của ISO, CCITT. ..) Theo quan điểm (2) người ta xây dựng các giao diện kết nối để tôn trọng tính độc lập giữa các mạng hiện có. Việc xây dựng các chuẩn chung cho tất cả các mạng là một điều rất khó thực hiện, bởi vì hiện nay có hàng ngàn mạng đang tồn tại không thể loại bỏ đi để xây dựng mới vì quá tốn kém. Từ đó người ta đã tạo ra hàng loạt các thiết bị giao diện cho phép kết nối các mạng với nhau. 1.5.2 Giao diện kết nối người ta có thể kết nối các mạng con với nhau nhờ các giao diện kết nối. Hình 1-12 minh hoạ cho việc kết nối các mạng con SN1, SN2, SN3 và SN4 là các mạng con ; G1, G2, G3, G4 là các giao diện kết nối. chức năng của một giao diện tuỳ thuộc vào sự khác biệt về kiến trúc của các mạng con. Sự khác biệt càng lớn thì chức năng của các giao diện càng phức tạp. Các giao diện có thể nối đôi, nối ba, nối nhiều hơn tuỳ thuộc vào người thiết kế mạng. Dựa vào chức năng của giao diện mà chúng có những tên gọi khác nhau như: bridge, Router, gateway. Gateway là tên chung của giao diện kết nối, nó được sử dụng trong trường hợp chức năng của giao diện là phức tạp. Bridge được dùng trong trường hợp đơn giản nhất, chẳng hạn như kết nối giữa các mạng LAN cùng loại. Còn Router hoạt động ở mức cao hơn bridge vì nó đảm nhận chức năng chọn đường cho các gói dữ liệu để đi đến đích. Chương ii Giao thức TCP/IP Trong chương này chúnh ta sẽ xem xét về chồng giao thức TCP/IP. Đây là giao thức được sử dụng rộng rãi nhất hiện nay trong kĩ thuật kết nối mạng máy tính. Chúng ta sẽ tìm hiểu về kiến trúc phân tầng của TCP/IP cùng với chức năng chính của chúng. Sau đó chúng ta sẽ tập trung xem xét kĩ về các giao thức chính trong lớp 3 (Internet Layer) và trong lớp 4 (Transport Layer) của mô hình phân cấp này. 2.1 Sự thúc đẩy cho việc ra đời của TCP/IP Giao tiếp thông tin đã trở thành nhu cầu không thể thiếu trong tất cả mọi lĩnh vực hoạt động. Mạng máy tính tính ra đời phần nào đã đáp ứng được nhu cầu đó. Phạm vi lúc đầu của các mạng bị hạn chế trong một nhóm làm việc, một cơ quan, công ty... trong một khu vực. Tuy nhiên thực tế của của những nhu cầu cần trao đổi thông tin trong nhiều lĩnh vực khác nhau, về nhiều chủ đề khác nhau, giữa các tổ chức, các cơ quan. ..là không có giới hạn. Vì vậy nhu cầu cần kết nối các mạng khác nhau của các tổ chức khác nhau để trao đổi thông tin là thực sự cần thiết. Nhưng thật không may là hầu hết các mạng của các công ty, các cơ quan... đều là các thực thể độc lập, được thiết lập để phục vụ nhu cầu trao đổi thông tin của bản thân các tổ chức đó. Các mạng này có thể được xây dựng từ những kĩ thuật phần cứng khác nhau để phù hợp với những vấn đề giao tiếp thông tin của riêng họ. Điều này chính là một cản trở cho việc xây dựng một mạng chung, bởi vì sẽ không có một kĩ thuật phần cứng riêng nào đủ đáp ứng cho việc xây dựng một mạng chung thoả mãn nhu cầu người sử dụng. Người sử dụng cần một mạng tốc độ cao để nối các máy, nhưng những mạng như vậy không thể được mở rộng trên những khoảng cách lớn. Nhu cầu về một kỹ thuật mới mà có thể kết nối được nhiều mạng vật lý có cấu trúc khác hẳn nhau là thật sự cần thiết. Nhận thức được điều đó, trong quá trình phát triển mạng ARPANET của mình, tổ chức ARPA ( Advanced Research Projects Agency) đã tập trung nghiên cứu nhằm đưa ra một kỹ thuật thoả mãn những yêu cầu trên. Kỹ thuật ARPA bao gồm một thiết lập của các chuẩn mạng xác định rõ những chi tiết của việc làm thế nào để các máy tính có thể truyền thông với nhau cũng như một sự thiết lập các quy ước cho kết nối mạng, lưu thông và chọn đường. Kỹ thuật đó được phát triển đầy đủ và được đưa ra với tên gọi chính xác là TCP/IP Iternet Protocol Suit và thường được gọi tắt là TCP/IP. Dùng TCT/IP người ta có thể kết nối được tất cả các mạng bên trong công ty của họ hoặc có thể kết nối giữa các mạng của các công ty, các tổ chức khác nhau, với nhau. TCP/IP có một số đặc tính quan trọng sau: Là bộ giao thức chuẩn mở và sẵn có, vì: nó không thuộc sở hữu của bất cứ một tổ chức nào; các đặc tả thì sẵn có và rộng rãi. Vì vậy bất kì ai cũng có thể xây dựng phần mềm truyền thông qua mạng máy tính dựa trên nó. TCP/IP độc lập với phần cứng mạng vật lý, điều này cho phép TCP/IP có thể được dùng để kết nối nhiều loại mạng có kiến trúc vật lý khác nhau như: Ethernet, Tokenring, FDDI, X25, ATM... TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra một mạng ảo thống nhất khi kết nối mạng. Các giao thức lớp cao được chuẩn hoá thích hợp và sẵn có với người dùng. 2.2 Cấu trúc phân lớp của TCP/IP Như ta đã nói ở phần trước, TCP/IP cũng là mô hình mở để kết nối mạng. Nó cũng được thiết kế theo mô hình kiến trúc phân tầng tương tự như trong mô hình tham chiếu OSI ta đã trình bày ở chương trước. Bộ giao thức TCP/IP được thiết kế gồm bốn lớp được mô tả như hình sau đây: Mô hình phân lớp Đối tượng được chuyển giữa các lớp Message or Streams Application Transport Protocol Packets Transport IP Datagrams Internet Network-Specific Frames Network Interface Hình 2-1: Mô hình phân lớp của TCP/IP Lớp ứng dụng (Application): Đây là lớp cao nhất trong cấu trúc phân lớp của TCP/IP. Lơp này bao gồm tất cả các chuơng trình ứng dụng sử dụng các dịch vụ sẵn có thông qua một TCP/IP internet.Các chương trình ứng dụng tương tác với một trong các giao thức của lớp Transport để truyền hoặc nhận dữ liệu. Mỗi chương trình ứng dụng lựa chọn một kiểu giao thức thích hợp cho công việc của nó. Chương trình ứng dụng chuyển dữ liệu theo mẫu mà lớp Transport yêu cầu. Lớp vận chuyển (Transport): Nhiệm vụ trước tiên của lớp Transport là cung cấp sự giao tiếp thông tin giữa các chương trình ứng dụng. Mỗi sự giao tiếp được gọi là end-to-end. Lớp Transport cũng có thể điều chỉnh lưu lượng luồng thông tin. Nó cũng cung cấp một sự vận chuyển tin cậy, đảm bảo rằng dữ liệu đến mà không bị lỗi. Để làm như vậy, phần mềm giao thức hỗ trợ để bên nhận có thể gửi lại các thông báo xác nhận về việc thu dữ liệu và bên gửi có thể truyền lại các gói tin bị mất hoặc bị lỗi. Phần mềm giao thức chia dòng dữ liệu ra thành những đơn vị dữ liệu nhỏ hơn (thường được gọi là các Packets) và chuyển mỗi packet cùng với địa chỉ đích tới lớp tiếp theo để tiếp tục quá trình truyền dẫn. Mặc dù hình 2-1 dùng một khối để biểu diễn cho lớp ứng dụng, nhưng nói chung máy tính có thể có nhiều chương trình ứng dụng truy nhập vào internet tại cùng một thời điểm. Lớp Transport phải chấp nhận dữ liệu từ một số chương trình ứng dụng và gửi nó tới lớp tiếp theo thấp hơn. Để làm như vậy nó thêm vào thông tin bổ sung cho mỗi packet, gồm cả các mã định danh chương trình ứng dụng đã gửi nó và chương trình ứng dụng sẽ nhận nó, cũng như một tổng kiểm tra. Máy nhận sử dụng tổng kiểm tra để thẩm tra gói tin đã đến, và sử dụng mã đích để định danh chương trình ứng dụng nó được chuyển phát đến. Internet layer: Như chúng ta vừa thấy, lớp Internet xử lý giao tiếp thông tin từ một máy này tới một máy khác. Nó chấp nhận một yêu cầu để gửi một gói từ từ lớp Transport cùng với một định danh của máy đích mà gói tin sẽ được gửi tới. Nó sẽ bọc gói tin trong một IP Datagram, điền đầy vào trong phần header, sử dụng giải thuật chọn đường để quyết định là giao phát gói tin trực tiếp hay là gửi nó tới một Router, và chuyển datagram tới giao diện phối ghép mạng thích hợp cho việc truyền dẫn. Lớp Internet cũng xử lý các Datagram đến, kiểm tra tính hợp lệ của chúng, và sử dụng giải thuật chọn đường đẻ quyết định là datagram sẽ được xử lý cục bộ hay là sẽ được chuyển đi tiếp. Đối với các datagrams có địa chỉ đích cục bộ, thì phần mềm lớp internet sẽ xoá phần header của các datagram đó, và chọn trong số các giao thức lớp Transport một giao thức thích hợp để xử lý packet. Trong lớp Internet còn gửi các ICMP (Information Control Message Protocol)và các messages điều khiển khi cần thiết và xử lý tất cả mọi ICMP Messages tới. Host B Host A Application Transport Internet Network Interface Application Transport Internet Network Interface Internet Network Interface Physcal net 1 Physcal net 2 Identical message Identical packet Router R Identical datagram Identical datagram Identical frame Identical frame Hình 2-2 Network Interface Layer: lớp thấp nhất của mô hình phân lớp TCP/IP, chịu trách nhiệm về việc chấp nhận các IP datagrams và việc truyền phát chúng trên một mạng xác định. Một giao diện phối ghép mạng có thể gồm một bộ đièu khiển thiết bị (ví dụ như khi mạng là mạng cục bộ mà máy được gắn nối trực tiếp tới) hoặc là một hệ thống con phức tápử dụng giao thức Data Link của bản thân nó( ví dụ khi mạng bao gồm các chuyển mạch gói giao tiếp với các host bằng giao thức HDLC). Để hình dung sự hoạt động trong môi trường phân lớp của TCP/IP ta hãy xét hình vẽ minh hoạ sau: Như hình 2-2 minh họa, việc giao phát message sử dụng hai mạng riêng biệt, một mạng cho việc truyền dẫn từ host A tới Router R, và mạng kia truyền dẫn từ Router R tới Host B. Trong phần tiếp theo ta sẽ sâu tìm hiểu về lớp Internet và lớp Transport, là hai lớp quan trong nhất trong mô hình phân lớp TCP/IP, thông các giao thức được sử dụng trong hai lớp đó là: giao thức TCP, UDP cho lớp Transport và giao thức IP, ICMP cho lớp Internet. 2.3 Các giao thức lớp Internet (Internet Protocol - IP) Internet protocol (IP), là tên gọi giao thức lớp Internet định nghĩa các phương tiện giao phát unreliable, connectionless, và thường được biết với cái tên tắt là IP. Trước nhất, giao thức IP định nghĩa những đơn vị của việc truyền dữ liệu được dùng qua một mạng TCP/IP internet. Vì vậy, nó xác định chính xác khuôn dạng của tất cả dữ liệu khi nó được chuyển qua một mạng TCP/IP internet. Thứ hai, phần mềm IP thực hiện chức năng chọn đường để chọn ra con đường để gửi dữ liệu qua. Thứ ba, để thêm vào tính chính xác các đặc tả kĩ thuật của khuôn dạng dữ liệu và chọn đường thông thường, IP gồm có cả một tập các luật biểu hiện cho ý tưởng của hệ thống giao phát gói tin unreliable. Các luật chỉ rõ việc làm thế nào để các hosts và các Routers xử lý các gói tin, làm thế nào và khi nào các thông báo lỗi sẽ được phát đi, và các điều kiện cho việc huỷ gói tin. IP là phần chủ yếu của thiết kế nên một mạng TCP/IP internet đôi khi còn được gọi là một mạng dựa trên kĩ thuật IP (IP-based technology). Chúng ta sẽ lần lượt xem xét các vấn đế được đề cập trong IP. 2.3.1 Internet Datagram. Có rất nhiều sự tương tự giữa một mạng vật lý và một TCP/IP internet. Trên một mạng vật lý, đơn vị truyền là frame cái chứa một header và dữ liệu, phần header mang nhiều thông tin như địa chỉ nguồn đích. Internet gọi những đơn vị truyền cơ sở của nó là Internet datagram (IP datagram ) hay đơn giản là datagram. Như một khung mạng vật lý, một datagram được chia thành vùng header và vùng dữ liệu. Phần header cũng tươongtự frame, nó chứa địa chỉ nguồn địa chỉ đích và một trường type dùng định danh nội dung của dtagram. Sự khác nhau là header của datagram chứa địa chỉ IP còn header của frame chứa địa chỉ vật lý. Hình sau mô tả dạng tổng quát của một datagram. Datagram Header Datagram Data Khuôn dạng Datagram: VERS HLEN Kiểu dịch vụ Tổng độ dài Identification FLAGS FRAGMENT OFFSET TIME TO LIVE PROTOCOL HEADER CHECKSUM Source IP Address Destination IP Address IP OPTION (IF ANY) PADDING DATA . ................ Bởi vì qúa trình xử lý datagram là do phần mềm nên nội dung và khuôn dạng không bị phụ thuộc bởi phần cứng. Ví dụ bốn bit trường đầu tiên (VERS) chứa VERSION của giao thức IP được sử dụng để tạo datagram. Trường này được sử dụng để thẩm tra rằng bên gửi bên nhận và bất kỳ Router nào trong số giữa chungs đồng ý về khuôn dạng của datagram. Tất cả mọi phần mềm IP được yêu cầu để kiểm tra trường VERSION trước khi xử lý một datagram để đảm bảo nó phù hợp với khuôn dạng mà các phần mềm trông đợi. Nếu chuẩn thay đổi, các máy sẽ loại bỏ các datagram cùng với các VERSION giao thức khác với phiên bản của chúng, ngăn cản chúng hiểu sai nội dung datagram theo các fomat quá cũ. (Tới thời điểm 1995 VERSION của IP là 4) trường độ dàI header (HLEN) cũng có bốn bits, đưa ra gia strị độ dài header của datagram được biểu diễn bởi từ 32 bits. Chúng ta se thấy tất cả các trường trong header có một độ dàI cố định trừ trường IP OPTION và cacs trường PADDING tương ứng. Header thông thường nhất không chứa các lựa chọn (option ) và padding, giá trị 20 octets và có một trường độ dàI header bằng 5. Trường TOTAL LENGTH đưa ra độ dài của IP datagram được đo bởi octets, gồm cả các octets của phần header và dữ liệu. Kích thước của vùng dữ liệu có thể tính toán bằng việc trừ đI chiều dàI của header (HLEN) từ giá trị của TOTAL LENGTH. Bởi vì trường TOTAL LENGTH là 16 bits nên giá trị tối đa của gói tin IP là IP là 216 hay 65535 octets. Trong hầu hết các ứng dụng, đIũu này không phảI là một hạn chế nghiêm trọng. Nó có thể trở nên quan trọng hơn trong tương lai nếu các mạng có tốc độ cao hơn có thể mang các gói dữ liệu lớn hơn so với 65535 octets. b) Kiểu datagram của dịch vụ và quyền ưu tiên trước datagram. Kiểu dịch vụ TOS (Type of service) được gọi một cách không chính thức là trường service type 8bits xác định làm thế nào datagram sẽ được xử lý và được phân ra 5 trường nhỏ hơn (subfield) như hình sau: 0 1 2 3 4 5 6 7 PRECEDENCE D T R UNUSER Ba bits PRECEDENCE xác định quyền đi trước của datagram với giá trị từ 0-7, cho phép người gửi chỉ rõ mức độ quan trọng của mỗi datagram. Mặc dù hầu hết các hosts và phần mềm Router bỏ qua kiểu dịch vụ nhưng nó là một kháI niệm quan trọng bởi vì nó cung cấp một –phương tiện có thể cho phép thông tin đIũu khiển có quyền ưutiên trên dữ liệu. Ví dụ nếu tất cả các host và các Router tôn trọng quyền đI trước thì nó có thể thi hành các giảI thuật đIũu khiển tắc nghẽn. Các bits D,T và R xác định kiểu vận chuyển datagram yêu cầu. Khi thiết lập bit D yêu cầu độ trễ thấp, bit T yêub cầu độ thông cao, và bit R nyêu cầu độ tin cậy cao. Dĩ nhiên nó có lẽ không thể cho một internet để đảm bảo kiểu vận chuyển được yêu cầu ( chẳng hạn nó có thể là không có con đường tới đích có quyền được yêu cầu. Vì vậy chúng ta nghĩ về yêu cầu vận chuyển như một gợi ý cho các giảI thuật chọn đường, không phảI như một nhu cầu. Nừu một Router không biết nhiều hơn một khả dụng tới một đích cho trước thì nó có thể sử dụng trường type of transport để lựa chọn một kiểu với các đặc đIểm gần vơí những mong muốn đó nhất. Ví dụ, giảt sử một Router có thể chọn giữa một đường leased line dung lượng thấp hoặc một kết nối vệ tinh băng thông cao ( nhưng trễ cao). Các datagram mang Key Stroke từ một người dùng tới một máy ở xa có bit D thiết lập đòi hỏi rằng chúng chúng phảI được giao phát càng nhanh cành tốt, trong khi các datagrams mang một file khối lượng lớn hơn có thể 7 bit thiết lập yêu cầu rằng chúng đI qua con đường vệ tinh dung lượng cao. Nó cũng rất quan trọng để nhận ra rằng các giảI thuật chọn đường phảI chọn từ giữa các kỹ thuật mạng vật lý bên dưới, vì mỗi kỹ thuật có những đặc tính trễ, đọ thông, và độ tin cậy riêng. Thường một kỹ thuật cho trước tương ứng đặc tính cho một cái khác ( ví dụ: tốc độ thông cao thì trễ lớn ). Vì vậy lý tưởng là để đưa ra cho giải thuật chọn đường một gợi ý về những gì quan trọng nhất, nó hiếm khi có nghĩa xác định cả 3 kiểu dịch vụ. Chúng ta quan tâm đặc tả kiểu giao vận như là một gợi ý cho giải thuật chọn đường, cái giúp nó lựa chọn giữa nhiều con đường khác nhau để tới một đích dựa trên hiểu biết sủa nó về kỹ thuật phần cứng, sẵn có trên con đường đó. Một internet không đảm bảo kiểu vận chuyển đã yêu cầu. c) Đóng gói các datagram. Trước khi chúng ta có thể hiểu các trường hợp tiếp theo trong một datagram, sẽ là rất quan trọng để quyết dịnh làm thế nào các datagram liên quan tới các khung mạng vật lý. Chúng ta bắt đầu với câu hỏi: “ Datagram có thể lớn hơn mức nào “. Không giống như các frames mạng vật lý, cái có thể phải được nhận ra bởi phần cứng, các datagrams được xử lý bằng phần mềm. Chúng có thể có bất kỳ chiều dài nào mà người thiết kế giao thức chọn. Chúng ta đã thấy rằng khuôn dạng datagram hiện hiện chỉ phân 16bits cho trường chiều dài tổng cộng nên giới hạn lớn nhất của chiều dài datagram là 65535octets. Dù sao, giới hạn đó có thể được thay đổi ở version của giao thức sau này. Những giới hạn cơ bản hơn về kích thước dfatagram nảy sinh từ thực tế. Chúng ta biết rằng, khi các datagram chuyển từ máy này tới máy khác, chúng phảI luôn được vận chuyển bằng mạng vật lý bên dưới. Để thực hiện việc vận chuyển trong internet một cách hiệu quả, chúng ta phải bảo đảm rằng mỗi datagram qua mạng trong một frame vật lý phân biệt. Đó là chúng ta muốn cái nhìn trìu tượng về một packet mạng vật lý của chúng ta ánh xạ trực tiếp ra một packet thực nếu có thể. Datagram Header Datagram Data Area FRAME Header FRAME DATA AREA Hình 2-2: Bọc gói tin trong IP một frame. Mạng vật lý coi toàn bộ datagram gồm cả header như là dữ liệu. ý tưởng về việc mang một datagram trong một frame mạng được gọi là “encapsulation”. Đối với mạng bên dưới, một datagram giống như bất kỳ messages nào khác được gửi từ một máy tới máy khác. Phần cứng không nhận ra được khuôn dạng datagram, cũng không hiểu được địa chỉ IP đích. Vì vậy, hình sau mô tả khi một máy gửi một IP datagram tới một máy khác, toàn bộ datagram được đặt vào phần dữ liệu của frame mạng. d) Kích thước datagram, network MTU và sự phân mảnh. Trong trường hợp lý tưởng, toàn bộ IP datagram vừa khít trong một khung vật lý, việc thực hiện truyền dẫn qua mạng vật lý là hiệu quả. Để có được những hiệu quả như vậy, những nhà thiết kế IP có thể đã lựa chọn một kích thước datagram tối đa để một datagram sẽ luôn vừa trong một frame. Nhưng kích thước nào của frame sẽ được lựa chọn ?. Cuối cùng, một datagram có thể đi qua nhiều kiểu mạng vật lý khi nó chuyển qua một internet tới đích cuối cùng của nó. Để hiểu được vấn đề, chúng ta cần yếu tố về phần cứng mạng: Mỗi kỹ thuật chuyển mạch gói đặt một giới hạn trên cố định trên một số lượng dữ liệu có thể được truyền trên một khung vật lý. Ví dụ Ethernet giới hạn việc truyền tối đa là 1500 octets dữ liệu, trong khi FDDI cho phép tới gần 4470 octets dữ liệu / 1 frame. Chúng ta gọi những giới hạn này là MTU của mạng (Maximumn Transfer Unit). Kích cỡ MTU có thể hơi nhỏ: một số kỹ thuật phần cứng giới hạn truyền 128 octets hoặc ít hơn. Việc giới hạn các datagram để làm vừa vặn MTU nhỏ nhất trong Internet làm cho việc truyền có hiêụ quả khi những datagram đó chuyển qua một mạng, cái có thể mang các frame cỡ lớn hơn. Dù sao thì việc cho phép các datagram lớn hơn so với MTU mạng nhỏ nhất trong một internet có nghĩa là một datagram có thể không phải lúc nào cũng vừa vặn trong một frame mạng. Host A Host B R1 R2 Net 2 MTU=620 Net 1 MTU=1500 Net 3 MTU=1500 Hình 2-3: Router R1 phân mảnh các datagrams lớn được gửi từ A tới B. R2 phân mảnh các datagrams từ B tới A. Sự lựa chọn có thể là hiển nhiên: quan điểm của thiết kế internet là để ẩn đi các kỹ thuật mạng bên dưới và làm cho việc giao tiếp thuận tiện với người dùng. Vì vậy, thay vì việc thiết kế các datagram tôn trọng triệt để những ràng buộc của mạng vật lý, thì phần mềm TCP/IP chọn một kích thước datagram khởi đầu tiện lợi và giúp phân chia các datagram lớn ra các phần nhỏ khi datagram cần đi qua một mạng có MTU nhỏ. Các phần nhỏ của datagram được chia gọi là phân mảnh (fragment), và quá trình phân chia được gọi là quá trình phân mảnh (fragmentation). Hình 2-3 minh hoạ quá trình phân chia thường xảy ra tại một Router nào đó dọc theo con đường datagram đi từ nguồn tới đích. Router nhận một datagram từ mạng với một MTU lớn và phải gửi nó qua một mạng có MTU nhỏ hơn kích thước của datagram. Trong hình vẽ, cả Host gắn trực tiếp tới các Ethernets có MTU là 1500 octest. Vì vậy cả 2 Hosts có thể phát và gửi tới kích thước 1500 octests. Nhưng con đường giữa chúng là một mạng với MTU bằng 620. Nếu Host A gửi cho Host B một datagram lớn hơn 620 octests, Router R1 sẽ phân mảnh datagram đó. Tương tự, nếu B gửi 1 datagram lớn hơn 620 tới A, R2 sẽ phân mảnh chúng. DATAGRAM HEADER Data1 600 octets Data2 600 octets Data3 200 octets (a) FRAGMENT 1 (offset 0) FRAGMENT 1 HEADER Data1 FRAGMENT 2 (offset 600) FRAGMENT 2 HEADER Data2 FRAGMENT 3 (offset 1200) FRAGMENT 3 HEADER Data3 Hình 2-4: (a) Một datagram 1400 ocsets và (b) 3 mảnh cho mạng có MTU bằng 620. Header 1 và 2 có thêm bit thiết lập phân mảnh. Các offset là các số octet tính theo hệ 10 chúng phải được chia cho 8 để lấy giá trị đã cất giữ trong fragment header. Kích cỡ mảnh được chọn sao cho mỗi mảnh có thể được chuyển qua mạng bên dưới một frame đơn. Hơn nữa, bởi IP đưa ra offset của dữ liệu là bội số của 8 ocsets, nên kích thước của mảnh phân được chọn là bội số của 8. Dĩ nhiên, việc chọn bội 8 là số gần với MTU của mạng nhất thường không chia datagram thành các phần kích cỡ bằng nhau; phần cuối cùng thường ngắn hơn những phần khác. Các mảnh phải được lắp ráp lại để tạo ra 1 bản sao đầy đủ của datgram ban đầu trước khi nó có thể được xử lý tại đích. Giao thức IP Protocol không giới hạn kích thước dưới cho datagram, hay là đảm bảo rằng các datagram lớn hơn sẽ được giao phát mà không cần phân mảnh. Nguồn có thể chọn bất kỳ kích thước datagram mà nó cho là thích hợp; việc phân mảnh và ráop lại diễn ra 1 cách tự động, mà không cần nguồn phải có một hành động gì. Đặc tả kỹ thuật IP chỉ rõ rằng các Routers phải chấp nhận các datagram phải có kích cỡ bằng các MTU lớn nhấtcủa các mạng chúng gắn nối tới. Hơn nữa, 1 Router phải luôn luôn xử lý các datagram lên tới 576 ocsets (các hosts cũng được yêu cầu chấp nhận, và có thể tái lắp ghép khi cần, các datagrams với ít nhất là 576 ocsets.) Việc phân mảnh 1 datagram có nghĩa là phân chia nó thành một số phần mảnh nhỏ hơn. Có thể sẽ làm bạn ngạc nhiên, đó là mỗi phần có cùng một khuôn dạng như datagram ban đầu. Hình 2-4 đã minh hoạ điều này. Mỗi mảnh chứa một datagram header, nó lặp lại hầu hết thông tin của datagram header ban đầu (trừ một bit trong trường FLAGS để chỉ ra rằng nó là một mảnh) được theo sau bởi nhiều dữ liệu như nó có thể được mang trong mảnh trong khi dữ tổng chiều dài nhỏ hơn MTU của mạng mà nó phải đi qua. e)Tái lắp ghép các mảnh. Một Datagram sẽ được lắp ghép sau khi đi qua một mạng, hay là các mảnh sẽ được mang tới. Host cuối cùng trước khi lắp ghép ? Trong một TCP/IP internet một khi một Datagram đã được phân mảnh thì các mảnh sẽ đi tới đích như thể những Datagram riêng biệt cùng tới một đích cuối là nơi chúng phải được lắp ghép lại. Việc duy trì cho tất cả các mảnh cùng tới một đích cuối có hai bất lợi. Thứ nhất bởi vì các Datagram không được lắp ghép lại ngay lập tức khi chuyển qua một mạng có MTD nhỏ, nên các mảnh nhỏ phải được mang từ nơi phân mảnh tới đích cuối cùng. Việc lắp ghép lại các Datagrams tại đích cuối cùng có thể dẫn tới sự không hiệu quả, dù là một số trong các mạng vật lý đã gặp sau điểm phân mảnh có MTD lớn hơn, trong khi chỉ các phân mảnh nhỏ đi qua nó. Thứ hai, nếu bất kỳ mảnh nào bị mất, datagram không thể được lắp ghép lại được. Máy nhận khởi tạo một bộ timer lắp ghép khi nó nhận được một mảnh khởi đầu Nếu timer hết hiệu lực trước khi tất cả các mảnh tới thì máy đang nhận sẽ huỷ các gói mà không xử lý. Vì vậy khả năng mà các datagram bị mất sẽ tăng khi việc phân mảnh xảy ra, bởi vì khi một mảnh bị mất thì coi như cả datagram bị mất. Bất chấp một số bất lợi phụ, việc thực hiện lắp ráp tại đích cuối cùng vẫn hoạt động tốt. Nó cho phép mỗi phân mảnh được định tuyến độc lập, và không đòi hỏi các Router trung gian lưu giữ chúng hoặc lắp ghép chúng. f) Điều khiển việc phân mảnh Ba trường trong phần HEADER của datagram là IDENTIFICATION, FLAGS và FRAGMENT OFFSET điều khiển việc phân mảnh và lắp ráp datagram. Trường IDENTIFICATION chứa một số nguyên duy nhất định danh datagram. Nhớ lại rằng khi một Router phân mảnh 1 datagram thì nó copy phần lớn các trường trong phần HEADER của datagram ban đầu vào mỗi mảnh. Trường IDENTIFICATION cũng phải được copy. Mục đích trước tiên là để cho đích biết là mảnh đến nào là của datagram nào. Khi một mảnh đến, đích dùng trường IDENTIFICATION để cùng với địa chỉ nguồn để xác định datagram. Các máy tính gửi datagram phải tạo ra một giá trị duy nhất cho mỗi datagram. Một kỹ thuật được sử dụng bửi mọt phần mềm IP Giữ một bộ đếm toàn cục (global counter) trong bộ nhớ, tăng nó mỗi lần một datagram mới được tạo ra, và gán kết quả như là trường IDENTIFICATION của datagram. Nhớ lại rằng mỗi mảnh có có chính xác cùng khuôn dạng như khuôn dạng của datagram lúc chưa phân mảnh.Đối với mỗi mảnh, trường FRAGMENT OFFSET xác định độ lệch trong (offset)datagram ban đầu của dữ liệu đnag được mang bằng các mảnh, được đo bằng các khối 8 octets bắt đầu từ offset 0. Để lắp ráp lại các datagram, đích phải có được tất cả các mảnh từ mảnh có offset 0 cho tới mảnh có offset cao nhất.các mảnh không cần phải đến đúng trật tự và không có giao tiếp giữa Router đã phân mảnh datagram và đích đang lắp ráp chúng. Hai bít thấp của trường FLAGS điều khiển việc phân mảnh. Thông thường phần mềm ứng dúngử dụng TCP/IP không cần quan tâm tới việc phân mảnh bởi vì cả việc phân mảnh và lắp ráp lại các mảnh đều là các thủ tục tự động hoạt động tại một mức thấp trong hệ điều hành mà người dùng không thể thấy được. Dù sao thì để kiểm tra lại phần mềm internet hoặc gỡ rối các vấn đề vận hành thì có thể kiểm tra kích thước của các datagram thì rất quan trọng cho việc phân mảnh xảy ra. Bit điều khiển đầu tiên hỗ trợ trong những trường hợp kiểm tra như vậy bằng cách xác định rõ là datagram có thể bị phân mảnh hay là không. Nó được gọi là bit không phân mảnh bởi vì việc thiết lập nó lên giá trị 1 xác định rằng datagram sẽ không bị phân mảnh. Một ứng dụng có thể chọn để không cho phép phân mảnh trong trường hợp chỉ khi toàn bộ datagram mới có tác dụng. Ví dụ xét một qúa trình khởi động từ xa của một máy tính : nó bắt đầu thi hành một chương trình nhỏ từ ROM, chương này sử dụng internet để yêu cầu thủ tục khởi tạo và máy kia gửi lại phần mềm mà nó yêu cầu. Trường hợp này máy cần hoặc là toàn bộ phần mềm hoặc là không, nên datagram của nó sẽ phải có bit “ donot fragment” được thiết lập 1. Bất cứ khi nào 1 Router cần phân mảnh một datagram có bit “donot fragment” mang giá trị 1, thì Router đó sẽ huỷ Datagram và gửi một thông báo lỗi trở lại nguồn. Bit thấp trong trường FLAGS xác định là mảnh chứa dữ liệu từ vị trí giữa của gói tin ban đầu hay từ vị trí cuối. Nó được gọi là bit “more fragment”. Để biết tại sao một bit như vậy cần phải có, hãy xem xét việc phần mềm IP tại đích cố gắng lắp ráp lại một datagram. Nó sẽ nhận được các mảnh có thể không đúng trình tự và cần biết khi nào nó đã nhận được tất cả các mảnh của datagram. Khi một mảnh đến, trường TOTAL LENGTH ở header cho biết kích thước của mảnh nhưng không cho biết kích thước của gói tin ban đầu, vì vậy đích không thẻ sử dụng trường TOTAL LENGTH để biết là nó đã nhận được toàn bộ các mảnh hay chưa. Bit “ more fragment “ đã quyết định vấn đề này dễ dàng: Một khi đích nhận được một fragment với bit “more fragment “ là 0, nó biết rằng mảnh này mang dữ liệu từ phần cuối của datagram ban đầu. Từ trường FRAGMENT OFFSET và TOTAL LENGTH, nó có thể tính ra được chiều dài của datagram ban đầu. Bằng việc kiểm tra FRAGMENT OFFSET và TOTAL LENGTH của tất cả các mảnh nó nhận được thì bên nhận có thể biết rằng các mảnh nó có chứa tất cả dữ liệu cần để láp ráp lại toàn bộ datagram hay là không. g) Time to live (TTL). Trưòng time to live xác định thời gian datagram được phép tồn tại trong hệ thống internet, nó được tính bằng giây. ý tưởng thì đơn giản nhưng rất quan trọng: bất cứ khi nào một máy đưa vào trong mạng một datagram thì nó đặt một thời gian tối đa để tồn tại trong mạng cho datagram đó. Các Router và các host xử lý các datagram phải giảm giá trị của trươòng time to live mỗi lần gửi qua và xoá bỏ datagram khi thời gian của datagram hết hiệu lực. Việc ước lượng thời gian chính xác là khó khăn bởi vì các Router thường không biết thời gian quá độ của các mạng vật lý. Một số luật đơn giản hoá quá trình xử lý và làm cho việc xử lý các datagram dễ dàng mà không cần đồng hồ đồng bộ. Trước hết, mỗi Router dọc đường từ nguồn tới đích được yêu cầu giảm giá trị trường time to live đi một đơn vị khi nó xử lý phần header của datagram. Thêm nữa, để xử lý các trường hợp các Router quá tải, mỗi Router báo cáo thời gian cục bộ khi datagram đến và giảm time to live đi một giá trị bằng số giây datagram ở trong Router chờ dịch vụ xử lý. Bất cứ khi nào trường time to live đạt tới giá trị 0, thì Router sẽ huỷ datagram đó và gửi thông báo lỗi về nguồn. ý tưởng của việc duy trì một bộ timer cho các datagram rất là hữu dụng bởi vì nó đảm bảo rằng các datagram không thể quanh quẩn trong internet mãi mãi, ngay cả khi bạn chọn đường bị lỗi và các Router định tuyến cho các datagram trong một vòng lặp. h) Các trường khác của Header trong datagram. Trường PROTOCOL tưong ttự trường TYPE trong frame của mạng vật lý. Giá trị trong trường PROTOCOL xác định giao thức mức cao nào được sử dụng để tạo ra message đang được mang trong vùng DATA của một datagram. Về bản chất, giá trị của PROTOCOL xác định khuôn dạng của vùng DATA. Việc ánh xạ giữa một giao thức mức cao và một giá trị nguyên dương được dùng trong trường PROTOCOL phải được quản lý để đảm bảo sự phù hợp trong toàn internet. Trường HEADER CHECKSUM đảm bảo cho tính nguyên vẹn của giá trị header. IP checksum được tạo ra bằng việc coi header như là một số nguyên gồm các cụm 16 bit liên tục, bổ sung chúng cùng với việc sử dụng số bù một và rồi lấy phần bù kết quả. Vì mục đích tính toán checksum, trường HEADER được giả sử là chứa giá trị 0. Điều quan trọng để nhớ là checksum chỉ áp dụng với các giá trị trong IP header chứ không phải cho phần DATA. Việc phân chia checksum cho các header và data có một số thuận lợi nhưng cũng gây một số bất lợi. Bởi vì header thường chiếm ít octet hơn phần data nên việc có một tổng kiểm tra riêng làm giảm thời gian xử lý tại các Router. Chúng chỉ cần tính toán checksum của header. Sự tách biệt cũng cho phép các giao thức mức cao hơn chọn checksum cho bản thân chúng để tính toán với phần data. Điểm bất lợi lớn nhất là việc các Giao thức lớp cao hơn bị buộc phải bổ sung các checksum của chúng nếu không có thể phải chịu rủi ro có lỗi ở phần data mà không phát hiện được. Trường SOURCE IP Address và destination IP Address chứa địa chỉ IP 32 bits của bên gửi và bên nhận. Mặc dù datagram có thể được định tuyến qua nhiều Router trung gian nhưng trường địa chỉ nguồn và địa chỉ đích không bao giờ thay đổi. Trường DATA là vùng dữ liệu của datagram, độ dài của trường phụ thuộc vào những gì đang được gửi trong datagram. Trường IP OPTIONS sẽ được thảo luận sau. Trường PADDING phụ thuộc vào tuỳ chọn nào được chọn. Nó đại diện cho các bits chứa giá trị 0, cái có thể cần để đảm bảo cho header của datagraam mở rộng tới giá trị là bội số của 32 bits. 2.3.2 Giao thức ICMP (Internet Control Message Protocol). Trong hệ thống không liên kết chúng ta đã vừa mô tả trước. Mỗi Router hoạt động một cách tự động, chọn đường và giao phát các datagram mà không cần phối hợp với người gửi. Hệ thống làm việc tốt nếu tất cả các máy làm việc tốt và phù hợp với các tuyến đường. Không may là không có hệ thống nào làm việc tốt tại mọi lúc. Bên cạnh những hỏng hóc về đường dây thông tin và các bộ xử lý thì IP còn bị hư hỏng khi máy đích không kết nối tạm thời hoặc thường xuyên tới mạng. Khi TTL (time to live) hết thời hạn, hoặc khi các Router trung gian trở lên quá tắc nghẽn không thể xử lý được luồng thông tin đến. Khác biệt quan trọng giữa việc có một mạng hoạt động với phần cứng riêng và một internet hoạt động với phần mềm là mạng có phần cứng riêng đó nhà thiết kế có thể bổ sung phần cứng đặc biệt để báo tin cho cho các host được gắn nối khi có vấn đề nảy sinh. Trong một internet, không có những phương tiện phần cứng như vậy, người gửi không thể nói là giao phát bị lỗi là do đâu. Việc gỡ lỗi trở lên cực kỳ khó khăn. Giao thức IP bản thân nó không chứa bất cứ thứ gì giúp người gửi kiểm tra khả năng kết nối hoặc là nhận biết các lỗi như vậy. Để cho phép các Router trong một internet báo các lỗi hoặc cung cấp thông tin về tình huống không mong muốn ấy, các nhà thiết kế đã bổ sung một phương tiện thông báo mục đích đặt biệt cho giao thức TCP/IP. Phương tiện đó là ICMP được xem là một phần của IP buộc phải có cho việc hoạt động. Giống như tất cả lưu thông khác, các thông báo ICMP đi qua Internet trong phần dữ liệu của IP datagram. Đích cuối cùng của một thông báo ICMP không phải là chương trình ứng dụng hoặc người dùng trên máy đích mà là phần mềm IP trên máy đó. Dĩ nhiên, nếu ICMP nhận thấy một giao thức hoặc chương trình ứng dụng mức cao đã gây ra một lỗi thì nó sẽ báo tin cho Module thích hợp. Như vậy: ICMP cho phép các Router gửi thông báo lỗi hoặc thông báo điều khiển tới các Router hoặc host khác: ICMP cung cấp thông tin giữa phần mềm IP trên 1 máy với một phần mềm IP trên một máy khác. Ban đầu nó được thiết kế đề cho phép các Router báo cáo nguyên nhân của các lỗi giao phát tới các host. ICMP không bị hạn chế với các Router. Mặc dù về nguyên tắc là giới hạn sử dụng một số thông báo ICMP, nhưng 1 máy tuỳ ý có thể gửi 1 ICMP tới bất kỳ một máy nào khác. Vì vậy, 1 host có thể sử dụng ICMP tương ứng cùng với một Router hoặc một host khác. Thuận lợi chính của việc cho phép các host sử dụng ICMP là cung cấp 1 phương tiệnđơn được dùng cho tất cả các message thông tin điều khiển. Các gói ICMP yêu cầu 2 mức bọc như hình vẽ sau: ICMP HEADER ICMP DATA Datagram Header DATAGRAM DATA AREA FRAME HEADER FRAME DATA AREA 2.3.3 Chọn đường IP Trong một hệ thống chuyển mạch gói, việc chọn đường được xem như là một quá trình chọn một con đường để gửi gói tin, và Router được xem như một máy tính thực hiên những lựa chọn như vậy. Việc chọn đường xảy ra ở một số mức, ví dụ như trong mạng WAN (mạng có nhiều kết nối vật lí giữa các chuyển mạch gói), bản thân mạng phải chịu trách nhiệm quyết định về việc chọn đường cho các gói tin từ lúc nó đến cho tới lúc nó rời đi. Những chọn đường bên trong mạng nội bộ như vậy hoàn toàn tự chứa bên trong mạng WAN. Máy ở bên ngoài không thể tham gia vào những quyết định chọn đường, chúng đơn thuần chỉ xem mạng như một thực thể cần giao phát các gói tin. Phải nhớ rằng ưu điểm của IP là cung cấp một mạng ảo bao gồm nhiều địa chỉ mạng vật lí và đưa ra một dịch vụ giao phát các khung dữ liệu dạng không kết nối.Vì vậy chúng ta tập trung vào việc chọn đường Internet hay chọn đường IP. Tương tự việc chọn đường trong mạng vật lý, chọn đường IP là chọn một con đường để gửi các gói tin qua con đường đó. Thuật toán chọn đường IP là phải chọn sao cho có thể gửi Datagram các mạng vật lý. Việc chọn đường trong một mạng internet có thể rất khó đặc biệt là giữa các máy tính có nhiều kết nối vật lý tới nhiều mạng. Một cách lí tưởng, phần mềm chọn đường sẽ xem xét việc đó như tải mạng, chiều dài datagram hoặc kiểu dịch vụ được định rõ trong phần Header của các datagram khi lựa chọn con đường tốt nhất.Hầu hết các phần mềm chọn đường internet thì không quá phức tạp. Để hiểu chọn đường IP một cách hoàn toàn, chúng ta phải trở lại xem xét kiến trúc internet với TCP/IP. Trước tiên ta nhớ rằng mạng internet được tạo ra trên nhiều mạng vật lý được kết nối bởi các máy tính gọi là Router. Mỗi Router có kết nối trực tiếp tới hai hoặc nhiều hơn các mạng vật lí. Trong khi đó một Host thường kết nối trực tiếp tới một mạng vật lý. Dĩ nhiên là có thể có một Host được kết nối trực tiếp với nhiều mạng, khi đó nó được gọi là multi- homed host. Cả hosts và Routers đều tham gia vào việc chọn đường cho một IP datagram tới được đích của nó. Khi một chương trình ứng dụng trên một host cố gắng giao tiếp, các giao thức TCP/IP thậm chí phát một hoặc nhiều IP datagram. Host phải thực hiện quyết định chọn đường khi nó lựa chọn nơi gửi các datagrams.Dĩ nhiên các Router cũng thực hiện quyết định chọn đường ( đó là mục đích trước tiên của chúng, và là lý do để gọi chúng là Router.) Thế còn các multi - hosted home ?. Bất kỳ computer nào với nhiều kết nối mạng có thể hoạt động như một Router, và như chúng ta sẽ thấy multi -host chạy ICP/IP có một phần mềm cần cho chọn đường. Thêm nữa, những vị trí không đủ khả năng phân chia các Routers, lúc dùng với mục đích chung chia xẻ thời gian máy như cả hosts và Routers. Dù sao chuẩn TCP/IP cũng chỉ ra sự riêng biệt rõ ràng giữa chức năng của host và Router và định vị trí cố gắng trộn lẫn chức năng của Hhost và Router trên một máy tính đơn. Khi thấy rằng các multi - homed hosts của họ gắn vào các tương tác không được trông đợi. Bây giờ chúng ta sẽ phân biệt các hosts với các Routers và giả sử các hosts không làm các chức năng của Router chuyển gói từ mạng này tới mạng khác. Trên đây là những vấn đề chung nhất về chọn đường IP, những vấn đề chi tiết hơn về chọn đường trong mạng máy tính nói chung và mạng TCP/IP nói riêng sẽ được chúng ta dành hẳn một chương để thảo luận sau. 2.3.4 Các giao thức khác trong lớp Internet Địa chỉ IP IP đề ra khái niệm địa chỉ mạng Logic độc lập với địa chỉ mạng cơ sở. IP dùng một giao thức gọi là giao thức phân giải địa chỉ -ARP (Address Resolution Protocol) để thiết lập giữa các địa chỉ Logic (còn gọi là địa chỉ IP) với địa chỉ của các nút. Gói dữ liệu IP có thể phân đoạn thành nhiều phần nhỏ để phù hợp với đơn vị truyền cực đại - MTU (Maximum Transmission Unit) của mạng cơ sở. Địa chỉ IP được biểu diến bằng số 32 bit, được tách thành bốn vùng có thể được biểu diễn dưới dạng thập phân, bát phân, thập lục phân hoặc nhị phân có dấu chấm để tách các vùng. Người ta chia địa chỉ IP thành 5 lớp dùng các bit đầu tiên để định danh lớp như hình sau: 0 Netid Hostid Class A 1 0 Netid Hostid Class B 1 1 0 Netid Hostid Class C 1 1 1 0 Multicast Class D 1 1 1 1 0 Reserved Class E Sở dĩ phải dùng các kiếu địa chỉ khác nhau là để đánh địa chỉ cần thiết cho những mạng có kích thước khác nhau. Bảng sau sẽ trình bày số lượng mạng và số node ứng với mỗi lớp địa chỉ: Lớp địa chỉ Số lượng mạng Số lượng nút A 127 16.777.214 B 16.383 65.534 C 2.097.151 254 Trong nhiều trường hợp, một mạng có thể được phân chia thành nhiều mạng con (subnet), lúc đó có thể đưa thêm các vùng SubnetID để định danh thêm các mạng con. Việc phân chia mạng con là một cách cho phép chia một mạng thành nhiều mạng nhỏ sử dụng cùng một số hiệu mạng mà phần còn lại của mạng được kết nối không biết những thay đổi bên trong mạng. Mặt nạ mạng con chia vùng Hostid thành địa chỉ mạng con và địa chỉ máy chủ. Mặt nạ mạng con là một số 32 bit, mà giá trị của nó tuân theo luật sau: + Giá trị 1 trong mặt nạ con tương ứng với vị trí của Netid và số mạng con trong địa chỉ IP. + Giá trị 0 trong mặt nạ con tương ứng với số máy chủ trong địa chỉ IP. Phân giải địa chỉ ARP(Address resolution Protocol) Để truyền thông điệp tới một máy chủ trên mạng, nơi gửi phải biết địa chỉ phần cứng của máy chủ đích. Địa chỉ phần cứng, còn gọi là địa chỉ MAC (Media Access Control). Địa chỉ IP không phải là đia chỉ vật lý, nó chỉ chứa địa chỉ nhận dạng máy chủ (Host) và mạng (Net) là địa chỉ 32 bit, trong khi đó địa chỉ MAC là 48 bit. Vì thế có một cơ chế linh động để xác định địa chỉ MAC khi biết địa chỉ IP của máy chủ, cơ chế này được thực hiện như một giao thức riêng được gọi là ARP. Phần lớn các trạm mạng TCP đều duy trì một bảng chuyển từ địa chỉ LAN vật lý sang địa chỉ IP. Thực tế nó chỉ là một vùng RAM chứa tham chiếu (mapping) từ địa chỉ MAC sang địa chỉ IP mà nó học được trên mạng. Quá trình học này như sau: Một trạm (Host A) gửi một khung truyền dưới dạng Broadcast gọi là khung yêu cầu ARP trên mạng, khung này chứa địa IP của Host B (nơi cần xác định địa chỉ) và địa chỉ MAC và địa chỉ IP của máy gửi (Host A). Tất cả các nút nhận được khung truyền này sẽ so sánh địa chỉ của nó với địa chỉ IP trong yêu cầu ARP. Chỉ có máy chủ có cùng địa chỉ IP với địa chỉ trong khung yêu cầu ARP mới đáp lại. Nếu Host B tồn tại trên mạng, nó sẽ phản ứng lại địa chỉ IP mã hoá trong một khung trả lời ARP. Host B khởi động bảng chứa ARP và nhớ lại địa chỉ này, các giá trị chứa trong bảng này sẽ hết hiệu lực sau một khoảng thời gian nào đó (thời gian này có thể được cấu hình trong một số ứng dụng TCP/IP). Một số chú ý về ARP: ARP không phải là một phần của giao thức IP nên nó không chứa phần Header của IP. Các yêu cầu và trả lời của ARP đều là các địa chỉ vật lý. Trong vùng Ethertypes ARP được gán 0806h. ARP có khả năng xoá bỏ các địa chỉ đã lâu không dùng. Nếu một máy gửi yêu cầu cho chính nó, nó phải tự trả lời. c)Thủ tục phân giải ngược (RARP- Reverse Address Resolution) Giao thức này được dùng trong trường hợp khi một trạm trên mạng chỉ biết địa chỉ phần cứng (MAC) mà không biết địa chỉ IP và có thể được sử dụng trong các trạm làm việc không đĩa (ví dụ như Sun Microsystem). Tương tự như ARP, máy yêu cầu sẽ gửi một gói RARP yêu cầu tới máy chủ (Server) tại một vị trí nào đó mà dịch vụ RARP chạy trên đó. Máy RARP server sẽ trả lời bằng địa chỉ IP một trạm nào đó. 2.4 Các giao thức tầng giao vận. Trong bộ giao thức TCP/IP có hai giao thức thông dụng nhất cho tầng Transport là UDP và TCP 2.4.1.Giao thức bó dữ liệu người dùng-UDP (User Datagram Protocol). UDP là một dịch vụ không kết nối không tin cậy, nghĩa là nó có thể truyền dữ liệu mà không đòi hỏi thiết lập một mạch dữ liệu, nó cũng không có cơ chế báo nhận, không sắp xếp thứ tự các gói gửi tới. Do vậy nó có thể làm mất hoặc trùng lặp dữ liệu mà không báo lỗi nào cho bên gửi (tương tự như IP). Mỗi đơn vị UDP được cung cấp địa chỉ IP nguồn và đích cùng với số cổng nhận dạng các tiến trình mức ứng dụng liên quan đến việc trao đổi dữ liệu (tương tự dịch vụ bưu chính). Phần header của UDP rất đơn giản và sẽ có dạng như sau: 0 15 16 31 Source port Destination port Message length Checksum DATA UDP có phần header nhỏ hơn TCP, độ tin cậy nhỏ hơn TCP do nó chỉ có một Checksum để kiểm tra dữ liệu, các chức năng cũng ít phức tạp hơn do đó nó hoạt động nhanh và linh hoạt hơn TCP. Vì thế nó rất thích hợp cho các ứng dụng được truyền có tính chất quảng bá hay những ứng dụng trong các mạng có độ tin cậy cao như mạng LAN. UDP thường được dùng cho các ứng dụng không đòi hỏi độ tin cậy cao như NFS, DNS, SNMP, TFTP. UDP cũng được sử dụng trong IP Tunneling được dùng để truyền dữ liệu ứng dụng phi TCP/IP trên một mạng TCP/IP. Trong thực tế khi đi qua các mạng, 99% các bản tin UDP được giao nhận. 2.4.2. Giao thức điều khiển truyền dữ liệu - TCP (Transmission Control Protocol ). TCP là giao thức kết nối kiểu có liên kết và đáng tin cậy cho phép các máy chủ hoạt động song công. Nghĩa là phải cung cấp một kết nối logic (tương tự các mạch điện thoại) giữa hai thực thể trước khi trao đổi dữ liệu với nhau, khi mạch ảo này được thiết lập thì dữ liệu có thể được truyền một cách đồng thời. Kết nối được được duy trì trong thời gian truyền dữ liệu. TCP dùng cơ chế báo nhận và các số tuần tự để duy trì phiên truyền dữ liệu. Số tuần tự để xác định thứ tự của gói dữ liệu nhằm nhận ra gói bị thất lạc hay trùng lặp. TCP là giao thức tuần tự hướng byte, nghĩa là TCP truyền gói dữ liệu (nhiều byte) và gán cho mỗi gói một số tuần tự. TCP cung cấp cơ chế gán và quản lý các số hiệu cổng (port number) để định danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Một cổng kết hợp với một địa chỉ IP tạo thành một Socket duy nhất trong liên mạng, các liên kết ảo chính là liên kết giữa các Socket. a.Header của TCP sẽ có dạng như sau: 0 31 Source Port Destination Port Sequence Number Acknowledgement Number Data Offset Reserveed U R G A C K P S H R S T S Y N F I N Window Checksum Urgent Pointer Options Padding TCP data Các tham số có ý nghĩa như sau: Source Port (16 bits): Số hiệu cổng trạm nguồn. Destination Port (16 bits): Số hiệu cổng trạm đích. Sequence Number (32 bits): Số hiệu byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếu bit SYN được thiết lập thì Sequence Number là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1. Acknowledgement Number (32 bits): Số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận và chỉ ra rằng đã nhận tốt các segment mà trạm nguồn đã gửi. Mồi khi kết nối được thiết lập trường này luôn luôn được đặt. Data Offset (4 bits): Chỉ ra số lượng từ (32-bit words) của phần TCP Header. Reserved (6 bits): Được để dành cho tương lai. Control Bits: URG (Urgent Poiter): Vùng con trỏ khẩn có hiệu lực, phải xử lý số liệu trước các số liệu khác. ACK (Acknowledgement): Nếu được đặt, gói tin sẽ chứa thông tin báo nhận. PSH (Push): Chức năng chuyển số liệu (push) mà không cần chờ đầy. RST (Reset): Thiết lập lại kết nối khi cần (thường do lỗi phần cứng hay phần mềm). SYN (Synchronous): Đồng bộ hoá các số hiệu tuần tự để thiết lập lại kết nối. FIN: Không còn dữ liệu từ trạm nguồn - kết thúc kết nối. Windows (16 bits): Là số lượng các byte (octets) dữ liệu bắt đầu từ byte được chỉ ra trong vùng ACK mà trạm nguồn đã sẵn sàng để nhận. CheckSum (16 bits): Mã kiểm soát lỗi (theo kiểu CRC) cho toàn bộ Segment (bao gồm cả header và data). Urgent Pointer (16 bits): Con trỏ này trỏ tới số hiệu tuần tự của byte đi sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập. Options (độ dài thay đổi): Khai báo các tuỳ chọn của TCP, bao gồm: Kết thúc danh sách tuỳ chọn (End of option list). Không hoạt động (No operation). Độ dài tối đa của Segment. Padding (độ dài thay đổi): Phần chèn thêm vào Header để đảm bảo Header có độ dài là bội số của 32 bits. Phần thêm này chứa toàn số 0. TCP Data: Chứa dữ liệu của tầng trên. b.Các dịch vụ được TCP cung cấp. Thiết lập, duy trì và kết thúc kết nối. Chuyển các gói dữ liệu một cách tin cậy qua tiến trình có báo nhận. Dùng các gói dữ liệu tuần tự. Có cơ chế điều khiển lỗi. Có khả năng hỗ trợ nhiều kết nối đồng thời với các tiến trình khác nhau thông qua dùng Port. Trao đổi dữ liệu song công. c. Quá trình nối - tách: TCP có rất nhiều quy tắc để truyền thông. Chúng điều khiển TCP để thiết lập kết nối, truyền dữ liệu và kết thúc kết nối. Vì TCP là thủ tục trạng thái điều khiển (state-driven protocol), nên các tác động của nó đều phụ thuộc vào các cờ trạng thái. Thiết lập kết nối (Establishing a Connection) Một kết nối có thể được thiết lập giữa hai máy chỉ khi thoả mãn các điều kiện sau: Kết nối giữa hai sockets là tồn tại. Cả hai máy đồng ý kết nối. Cả hai máy có các tài nguyên TCP thích hợp cho kết nối. Nếu một trong chúng không thoả mãn thì kết nối không thể thực hiện được. Khi kết nối được thiết lập, nó được cấp phát quyền sở hữu vững chắc cho đến khi kết thúc. Thường thì có một giá trị quyền ưu tiên và giá trị an toàn. Các giá trị thiết lập này được thoả thuận bởi hai ứng dụng khi tiến trình đang được thiết lập. Khi cần thiết kết nối tới máy ở xa, ứng dụng sẽ yêu cầu TCP gọi lệnh mở - OPEN CALL. Có hai loại hàm OPEN CALL là thụ động (passive) và chủ động (active). Trong phần lớn các trường hợp, kết nối được cả hai ứng dụng mong đợi, vì thế chúng sẽ phát ra các yêu cầu mở thụ động hoặc chủ động (active or passive open requests). Machine A TCP Active Open Connetion Open Machine B TCP Passive Open Connetion Open SYS SEQ 50 ACK 51,SYS 200 ACK 201 Thiết lập kết nối bằng thủ tục bắt tay ba lần (three-way handshake). Client gửi bản tin với SYN=1 (yêu cầu kết nối). Server nhận được, nó sẽ gửi bản tin với SYN=1 và ACK=1. Client đáp lại với bản tin có ACK=1 Theo hình vẽ trên tiến trình bắt đầu TCP của máy A nhận yêu cầu kết nối từ giao thức lớp trên (ULP-Upper Layer Protocol), nó trả lời bằng cách gửi thông điệp mở chủ động tới máy B. Cờ SYN được đặt (giá trị 1) và được gán một giá trị tuần tự. Khai báo "SYN SEQ 50," chỉ ra cờ SYN được đặt và giá trị tuần tự - số gửi tuần tự khởi đầu (ISS-Initial Send Sequence) là 50 (có thể là bất cứ giá trị nào khác). ứng dụng ở máy B phát ra chỉ thị mở thụ động (passive open) tới TCP của nó. Khi SYN SEQ 50 được nhận, TCP của máy B gửi thông điệp báo nhận về máy A với giá trị là 51. Máy B cũng đặt giá trị ISS của riêng nó. Thông điệp "ACK 51, SYN 200," chỉ ra thông điệp được báo nhận bằng giá trị số tuần tự là 51, cờ SYN được thiết lập và có giá trị ISS là 200. Machine A TCP Send Data Receive Data ACK 101 DATA SEQ 250 ACK 251 Machine B TCP Send Data Receive Data SYS SEQ 100 Máy A gửi trả lại thông điệp báo nhận với số tuần tự là 201. Đó là "ACK 201" trong bó dữ liệu. Sau khi kết nối được mở và báo nhận, máy A máy B sẽ gửi các thông điệp kết nối mở (connection open) qua ULP tới ứng dụng yêu cầu. Truyền dữ liệu (Data Transfer) Mỗi khối dữ liệu được nhận bởi TCP của máy A từ ULP, TCP đóng gói và gửi tới máy B với các số tuần tự tăng dần. Sau khi máy B nhận, nó sẽ báo nhận bằng một khung báo nhận chỉ ra nó đã nhận đầy đủ. Dịch vụ truyền dữ liệu của TCP bao gồm 6 dịch vụ con sau: Song công: cho phép cả hai đầu kết nối có thể truyền bất cự thời điểm nào. Đúng lúc: dùng một đồng hổ để đảm bảo dữ liệu được truyền trong một khoảng thời gian vừa phải. Thứ tự: dữ liệu được truyền từ một đầu và sẽ được nhận đúng thứ tự tại đầu còn lại cho dù nó có thể không qua lớp IP do TCP tổ chức lại chúng và chuyển lên lớp trên. Đánh dấu (Labeled): Tất cả các kết nối đều dựa trên các giá trị ưu tiên và giá trị bảo đảm (precedence, security value). Điều khiển luồng: TCP có thể điều khiển luồng thông tin bằng dùng bộ đệm và giới hạn cửa sổ. Sửa lỗi: Checksums đảm bảo dữ liệu sẽ không bị lỗi trong điều kiện giới hạn của thuật toán tổng kiểm tra. Đóng kết nối (Closing Connections) Machine A TCP Close Connection Closed SEQ 475, ACK 351 FIN SEQ 475, ACK 351 ACK 476 Machine B TCP Request To Close Connection Close FIN SEQ 100 Kết thúc kết nối bằng thủ tục bắt tay hai lần (two-way handshake). TCP của một máy nhận hàm nguyên thuỷ đóng (close primitive) từ ULP và phát ra một thông điệp với cờ FIN được thiết lập. Như hình vẽ, TCP của máy A gửi yêu cầu đóng kết nối tới máy B với một giá trị tuần tự. Máy B gửi trả lại báo nhận của yêu cầu với giá trị số tuần tự tiếp theo. Máy B gửi thông điệp đóng qua ULP tới ứng dụng và chờ ứng dụng báo nhận quá trình đóng. Tuy nhiên bước này không cần phải bắt buộc như vậy, TCP có thể đóng kết nối mà không cần sự đồng ý của ứng dụng. Sau khi nhận được đồng ý đóng kết nối từ ứng dụng (hoặc sau khi yêu cầu đã quá hạn), TCP của máy B gửi lại máy A một gói với cờ FIN được đặt. Cuối cùng, máy A chấp nhận đóng và kết nối kết thúc. Một kết nối có thể bị kết thúc đột ngột khi socket ở một đầu bị ngắt (shuts down) có thể là không có một thông báo nào với máy khác và cũng không có lưu ý gì đến dữ liệu được truyền giữa hai máy. Ngoài sự ngắt đột ngột do nhiều trục trặc hoặc nguồn, nó còn có thể do người sử dụng, do một tiến trình ứng dụng hoặc điều khiển hệ thống. Đầu còn lại của kết nối có thể không nhận ra ngắt đột ngột cho đến khi nó cố gắng gửi thông điệp và hết thời gian. STATE LOCAL ADDRESS LOCAL PORT REMOTE ADDRESS REMOTE PORT Connection 1 Connection 2 Connection 3 Connection 4 Để theo dõi các kết nối, TCP dùng bảng kết nối. Mỗi kết nối ứng với một mục trong bảng sẽ chứa thông tin về kết nối đầu-cuối (end-to-end) như hình vẽ bên. ý nghĩa các cột như sau: State (trạng thái): Trạng thái của kết nối (đã đóng, đang đóng, nghe, chờ,. . . ). Local address (địa chỉ cục bộ): Địa chỉ IP cho kết nối. Khi trong trạng thái nghe, nó được đặt 0.0.0.0. Local port (cổng cục bộ): Số cổng cục bộ. Remote address (địa chỉ ở xa): Địa chỉ IP của máy ở xa. Remote port (cổng ở xa): Số cổng của kết nối ở xa. 2.5 Các ứng dụng cơ bản trên Internet 2.5.1 Thư điện tử (giao thức truyền thư đơn giản - SMTP). Đây là giao thức được sử dụng rộng rãi nhất để gửi thông điệp (Message) giữa hai người dùng. Nó tương đối đơn giản. Message sẽ được tạo, đánh địa chỉ và gửi từ ứng dụng cục bộ tới ứng dụng SMTP. Server sẽ kiểm tra định kỳ xem có thông điệp nào được chuyển, nếu không có nó sẽ thử lại. Server cố gắng gửi thông điệp trong ít phút, nếu không được nó sẽ huỷ thông điệp hoặc gửi trả về người gửi. Địa chỉ SMTP sẽ có dạng như sau: local-Part@.domain-name. Ví dụ: Nauglex@vax1.wellfleet.com. Trong đó: Naulex: User Name Vax1: Computer Name Wellfleet: Entity Com: Commercial Địa chỉ SMTP tuân theo chuẩn được định nghĩa trong RFC822. Từ trạm làm việc đến SMTP server, người ta dùng giao thức Client/Server như POP3 (Được định nghĩa trong RFC 1460). Dùng trong thông điệp phi văn bản dùng UUencode hoặc MIME (RFC 1521,1522,1536). SMTP sử dụng cổng TCP 25. Thường dùng các chương trình sendmail, mmdf (dùng cho cả Client và Server, chạy ở chế độ nền như DAEMON). Dùng kiểu spool hoặc queue, khi message đến nó xếp vào hàng đợi và gắng phát. khi quá thời gian qui định, message se bị gửi trả lại hoặc bị xoá. Khi kết nối được thiết lập, các SMTP trao đổi với nhau mã nhận thực (authentication code). User User Internetwork Hệ điều hành Hệ quản lý thư Client SMTP Server SMTP TCP/IP Port 25 Hệ điều hành Hệ quản lý thư Client SMTP Server SMTP TCP/IP Port 25 Một hệ thống gửi lệnh mail và các thông tin về message SMTP nhận gửi thông tin báo nhận (acknowledment). Sau đó, SMTP gửi sẽ đưa lệnh RCPT, nếu có nhiều người nhận sẽ có nhiều RCPT, sau mỗi RCPT sẽ có một acknowledgment. Cuối cùng SMTP gửi lệnh DATA để phát dữ liệu. Kết thúc bằng lệnh QUIT. Giao thức truyền tệp bằng thư: Trong các hệ thống ghép nối với mạng Internet, đây là việc sử dụng giao thức truyền tệp để tiếp xúc với các hệ máy tình khác ở xa mà không cần quyền thâm nhập, đi vào các thư mục công cộnhg của nó, hoặc chuyển các tệp tin của nó vào vào vùng lưa trữ đĩa riêng của mình. Để sử dụng FTP Mail ta gửi một thông điệp tới FTP Server. Trong nội dung thông điệp, mọi yêu cầu được ghi lại trên một dòng lệnh. Những yêu cầu này là những chỉ thị để điều khiển phiên làm việc của Anonymous FTP, FTP Mail Server nhận được thông điệp, thực hiện các yêu cầu. Kết quả phiên làm việc sẽ được chuyển tự động tới người yêu cầu. Những lệnh FTP Mail quan trọng: Reply address’s Địa chỉ phúc đáp. Connect host Kết nối tới Anonymous FTP Host. ASCII file, binary file Tệp văn bản, tệp nhị phân. Uuencode, btoa Đổi tệp nhị phân thành tệp văn bản. Chdir directory Chuyển sang thư mục đã được mô tả. Get file Chuyển một tệp. Help Mô tả cách sử dụng FTP Mail. Dir [directory] Chuyển một danh sách thư mục dài. Is [directory] Chuyển một danh sách thư mục ngắn. Quit Kết thúc phiên làm việc (chỉ gồm tên). 2.5.2 Đăng nhập từ xa - Telnet(Terminal Network Emulation) Tiền thân của Telnet là Terminal Login của ARPARNET Lệnh của Telnet có dạng như sau: Telnet host [port] Giá trị mặc định của Port được chứa trong tệp: \%SystemRoot%\system32\drive\etc\services. Nếu không có giá trị nào thì mặc định là 32. Telnet được sử dụng cho kết nối giả lập thiết bị đầu cuối đến một máy chủ [host] ở xa. Giao thức này lợi dụng TCP như là một giao thức vận chuyển để Client Hệ điều hành Hệ đăng nhập từ xa của máy Client Server Hệ điều hành Hệ đăng nhập từ xa của máy Server Internetwork TCP/IP Port 23 TCP/IP Port 23 truyền thông tintừbàn phím người dùng tới máy chủ (host) ở xa và hiển thị thông tin từ máy chủ ở xa trên màn hình làm việc của trạm làm việc. Telnet đối xử với 2 thiết bị đầu cuối chuẩn vào (bàn phím, tệp,...) và ra (màn hình, máy in, các tệp) như là các thiết bị mạng đầu cuối ảo - NVT (Network Vitual Terminal) có các chương trình điều khiển việc dịch từ NVT thành các thiết bị vật lý thực, khái niệm NVT cho phép Telnet kết nối tới bất kỳ thiết bị vật lý nào miễn là có mã tương ứng với thiết bị thực. Khi kết nối được thiết lập, sự thiếu các mã bị phát hiện (sự thiếu này là do các thiết bị vật lý không hỗ trợ mọi hoạt động vì thế các NVT không có mã tương ứng) quá trình có thể bị bỏ qua. Một đầu hỏi xem có hàm hỗ trợ không, đầu kia trả lời có hoặc không. Nếu có các mã này sẽ được gửi và tạo các hàm một cách nhanh chóng. Khi kết nối được thiết lập qua Telnet, một chương trình hoạt động như Telnet Server tên là Telnetd bắt đầu quá trình trên Server, tất cả các cú gõ phím trong một phiên Telnet đều qua các quá trình sau: Terminal Telnet Telnetd Application Terminal Driver TCP TCP Pseudo TTY network Pseudo_TTY driver: Hoạt động như Terminal đối với các ứng dụng. Tuy nhiên trước khi thiết lập kết nối, Telnet phải đồng bộ với các thiết bị ở xa (Ví dụ như DOS sử dụng CR-LF để xuống dòng, trong khi đó UNIX lại sử dụng LF). 2.5.3.Truyền tệp - FTP (File Transfer Protocol) User Interface Client PI Client DTP File System Client PI Client DTP File System Data (20) Control (21) Port 20: Khởi tạo việc thiết lập kết nối và điều khiển kết nối, nó chỉ chứa thông tin điều khiển Port 21: Dữ liệu Đây là dịch vụ cho phép người sử dụng đăng nhập vào máy ở xa nhưng chỉ ở mức chuyển giao tệp. Trên Internet có rất nhiều máy FTP Server, trên chúng đặt rất nhiều tệp, các phần mềm và được tổ chức thành các thư viện tệp, FTP cho phép truyền tệp qua lại, điều khiển các thư mục, truy nhập vào e-mail nhưng không cho phép thực hiện chương trình. Khác với các ứng dụng khác chỉ sử dụng một cổng, FTP sử dụng hai kênh. TCP cổng 20 dùng cho dữ liệu PI (Protocol Interpreter), cổng 21 dùng cho điều khiển DTP (Data Transfer Process). Thêm nữa FTP truyền tệp ở chế độ Foreground thay vì Background, nó lại không dùng spooler hay queue, vì thế người sử dụng có thể xem quá trình truyền tệp trong thời gian thực. Cũng như Telnet, FTP cũng có chương trình Server chạy liên tục và một chương trình chạy riêng được chạy ở Client. Nhưng nó khác với Telnet ở chỗ, sau khi đăng nhập vào máy FTP ta không thực sự ở máy đó mà vẫn ở máy cục bộ vì thế mọi chỉ thị phải tương ứng. Nhiều FTP Server hỗ trợ Anonymous FTP với UserId là “anonymous”, password là “guest” ta có thể đăng nhập vào FTP nhưng với quyền hạn chế. Trong các hệ thống mạng lớn, có các hệ thống như YP (Yellow Page) và NIS (Network Information Service) cho phép ta thâm nhập vào phần lớn các máy. Tuy nhiên FTP có nhược điểm là quá trình truy cập vào thư mục là chậm chạp. Theo cách truyền thống là người quản trị mạng cung cấp danh sách đệ qui các thư mục tệp nhưng điều này phức tạp hoặc tạo ra các tệp README ở mỗi thư muc, tuy nhiên tệp này luôn lạc hậu. 2.5.4.Truyền thư đơn giản - TFTP(Trival FTP) FTP sử dụng TCP để đảm bảo tin cậy. Nếu mạng vốn có tính tin cậy cao (như mạng LAN) ta có thể dùng UDP, một ví dụ về giao thức truyền tệp tin bằng giao thức này là TFTP, ngoài sự khác biệt này với FTP, TFTP không đăng nhập vào máy từ xa như FTP. Các tệp được truyền chỉ cần tên tệp, không cần UserID và Password. Vì không phải điều khiển quá trình truyền tệp, nên TFTP không cần các thuật toán phức tạp. Nó đặc biệt thích hợp với các thiết bị đầu cuối và các trạm làm việc không đĩa để nạp các hệ điều hành hoặc các chương trình lên các máy này. Gói đầu tiên được truyền từ Client tới Server là gói điều khiển, nó chỉ ra tên tệp để đọc hay ghi. Các gói tiếp theo là các gói dữ liệu, được đánh số liên tiếp từ 1. Bên nhận sẽ dùng các số hiệu này để nhận biết thứ tự gói đến. Bất kỳ gói nào bé hơn 512 byte đều đánh dấu kết thúc quá trình truyền. Có thể thông báo lỗi thay vì truyền dữ liệu, khi đó quá trình truyền kết thúc. 2.5.5.DNS(Domain Name System). Địa chỉ IP là địa chỉ 32 bit rất khó nhớ, vì thế có một dịch vụ tên là DNS để chuyển địa chỉ IP thành tên tượng trưng. DNS cung cấp 1 CSDL phân tán của tên và địa chỉ IP. Hệ thống này cững lưu trữ dự phòng những mô tả cho máy chủ và cung cấp phân giải tên cho những họ khác bên cạnh TCP/IP (như Chaonets và XNS). DNS là một cấu trúc phân cấp như hình vẽ sau: ROOT GOR EDU COM MIL ORG CON 3COM CISCO GRAYDON Tên có dạng: Local-part@Domain-Name. Trong đó: Local-Part là tên của Host hoặc người dùng, sẽ có hai thực thể tham gia vào quá trình tham chiếu này, đó là Name Resolver(NR) và Name Server(NS). Khi người dùng tại trạm làm việc gõ TELNET HOST tại dòng lệnh thì trạm Work Station Name Sever Host 148.1.1.9 148.1.1.9 Host NS Response NR Request Bảng tham chiếu 148.1.1.3 này phải cài đặt NR, NR sẽ gửi yêu cầu tới Name Server để phân giải thành địa chỉ IP. Nếu tên của Host được tìm thấy, thì nó sẽ gửi địa chỉ IP lại cho trạm làm việc và trạm làm việc sẽ dùng địa chỉ này. Hình dưới đây chỉ ra DNS dùng hơn hai thực thể: Cache FNS NS cache NR USER cache Data base Data base Thêm Tham Chiếu Thêm Tham Chiếu FNS: Foreign Name Server NS : Name Server NR: Name resolver Cache được dùng để tìm các tên có tính địa phương, nếu tên được tìm thấy ngay tại cache địa phương thì nó sẽ tham chiếu ngay ra địa chỉ IP và gửi yêu câù đến NS nữa. Nếu nó không gửi yêu cầu đến NS, NS này sẽ tìm trong bảng của nó, nếu không thấy nó sẽ nhờ NS khác là FNS tìm hộ. FNS này có thể tìm thấy hoặc không thì nó sẽ báo với User là không tìm thấy. 2,5,6.Tra cứu theo thực đơn - GOPHER. Đây là dịch vụ tra cứu theo chủ đề dựa trên hệ thống thực đơn mà không cần biết địa chỉ IP tương ứng. Gopher hoạt động theo mô hình Client/Server nghĩa là cần hai chương trình Client Gopher và Server Gopher. Khi người sử dụng yêu cầu Gopher Server, nó sẽ tả về một danh sách các chủ đề thông tin dưới dạng thực đơn (dùng giao thức Gopher). Một vài đề mục có thể kết nối với các Gopher khác và một số dịch vụ như FTP,Telnet,... Tuy nhiên Gopher chỉ có thể hiển thị dữ liệu dạng văn bản, do vậy gopher không đòi hỏi đường truyền giải thông cao. 2.5.7 Máy chủ thông tin diện rộng - WAIS (Wide Area Information Server). Cho phép tìm kiếm và truy nhập thông tin mà không cần biết chúng đang ở đâu. WAIS cũng hoạt động theo mô hình Client/Server. Tuy nhiên ngoài WAIS Client và WAIS Sever, còn có WAIS Indexer thực hiện việc cập nhật dữ liệu và sắp chỉ mục. WAIS Server nhận yêu cầu từ Client tìm kiếm trong CSDL (do Indexer tạo ra) các tệp phù hợp, đánh giá độ phù hợp (câu hỏi tìm kiếm theo chuẩn Z39.50 của ANSI). Các phần mềm đánh giá chỉ mục có thể xử lý được rất nhiều các dạng dữ liệu khác nhau như các tệp văn bản, danh sách thư điện tử, ảnh,... và có thể dễ dàng thêm các kiểu dữ liệu mới. Để tìm tin, các công việc sau phải được thự hiện: Ta đưa ra từ khoá. WAIS sẽ tìm các tài nguyên cho ta. Ta tìm kiếm thông tin trong các nguồn tài nguyên. 2.5.8.Tìm kiếm tệp - ARCHIE (Archieve). Là dịch vụ Internet cho phép tìm kiếm theo chỉ số. Có thể tìm tệp có chứa xâu bất kỳ, Archieve sẽ trả về tên tệp và tên của Server chứa các tệp đó. Khi đó có thể dùng Annonymous FTP để lấy về. Để dùng Archieve ta phải chọn một Archieve Server nào đó, sau đó Telnet tới đó và tìm kiếm tệp. Cũng có thể dùng E-mail (chứa các lệnh tìm kiếm) gửi tới địa chỉ “Archieve@Server”, với Server chính là Archieve Server ta chọn và chờ thư về kết quả tìm kiếmtừ Server chọn về. Nếu một tệp quá lớn thì Server sẽ phân thành các mảnh nhỏ, giải mã tệp rồi mới lấy tệp cần thiết. Cứ sau một khoảng thời gian nhất định, một chương trình đặc biệt nối tới tất cả các Anonymous FTP Server (Host) sẽ Download danh sách các thư mục, tệp dùng chung chứa vào cái gọi là “Internet Archieve Database”. Khi ta cần tìm tệp, nó sẽ tìm trong CSDL này. Có rất nhiều Archieve Server trên Internet giữ các thông tin này và thường xuyên được cập nhật (khoảng một tuần một lần). 2.5.9.Nhóm tin - USENET. Đây là dịch vụ cho phép nhiều người sử dụng ở các nơi khác nhau có cùng một mối quan tâm tham gia vào “ một nhóm tin” và trao đổi các vấn đề quan tâm qua nhóm tin này. Trên Internet cũng có nhiều News Server khác nhau, các Server này có thể tạo các nhóm cục bộ. Cũng giống như E-mail, mục tin cũng có hai phần là Header và Body. Người sử dụng tương tác với News Server qua một chương trình có tên là News Reader, và chỉ biết duy nhất News Server này. 2.5.10.WWW(World Wide Web). Nó dựa trên một kỹ thuật biểu diễn thông tin gọi là siêu văn bản (HyperText), khi đó văn bản có khả năng mở rộng bất kỳ. Các thông tin này được viết bằng ngôn ngữ đánh dấu siêu văn bản- HTML (Hypertext Mark Language). Các Web Browser lấy tài liệu ở Web Server dịch và cho hiển thị. Khi ấn vào một liên kết thì Browser có thể trở đến liên kết đích. Đích có thể là một trang Web khác, một dịch vụ FTP, Gopher và hiển thị chúng (FTP,Gopher) như các trình Client thông thường. Chính xác thì WWW là một hệ thống các tiện ích và siêu giao diện. Để thực hiện việc truy nhập liên kết các tài nguyên WWW dùng URL (Uniform Resource Location) là dạng tên định danh cho duy nhất một tài liệu hay một dịch vụ trong WEB. Ta có công thức sau cho URL: URL=Giao thức Internet + Server Domain Name + Tài liêu trên Server Giao thức ở đây có thể là HTTP, Telnet, Gopher, FTP, WAIS,. .. Web cũng hoạt động theo mô hình Client/ Server. Do các tài liệu HTML có khả năng hỗ trợ đa phương tiện, nên Web đ Chương iii TổNG QUAN Kĩ THUậT Chọn đường 3.1 Chọn đường truyền gói 3.1.1 Mở đầu Tạo tuyến truyền gói trong mạng chuyển mạch gói (packet switched network - PSN) là chức năng cơ bản của lớp mạng trong mô hình OSI, nó có nhiệm vụ dẫn gói tin đi qua mạng tới đích. Các thuật toán chọn tuyến sẽ phụ thuộc vào hình thái dịch vụ của người sử dụng, tức là chọn tuyến cho dữ liệu đồ DG (Datagram) hay cho mạch ảo VC (Virtual Circuit). Trong mạng DG, hai gói liên tiếp của cùng một cặp người sử dụng có thể đi qua các tuyến khác nhau, và thuật toán chọn tuyến sẽ được áp dụng cho từng gói đơn lẻ. Ngược lại, trong mạng VC phương án chon tuyến được thực hiện mỗi khi thiết lập kênh ảo. Tất cả các gói của một cặp người sử dụng chỉ được lần lượt chuyển đi theo một con đường dẫn duy nhất, do thuật toán này quyết định,trừ trường hợp xảy ra tắc nghẽn trên đường dẫn trong mạng hoặc phải chọn lại tuyến vì một lý do nào đó. 1 3 2 Hình 3-1 (a). Các gói của cùng một cặp người sử dụng dùng những tuyến thông tin khác nhau. Việc chọn tuyến đòi hỏi phải được thực hiện cho từng gói riêng biệt. 1 3 2 4 5 Hình 3-1(b). Tất cả cá gói của cùng một cặp người sử dụng dùng chung một tuyến thông tin. Phép chọn tuyến được thực hiện khi kênh ảo được thiết lập. Thuật toán chọn tuyến là phần mềm lớp mạng có nhiệm vụ quyết định xem gói gửi tới (incomming packet) sẽ được chuyển ra theo đường dây ra (output line) nào. Chọn tuyến trên mạng thường bao gồm tổ hợp phức của nhiều thuật toán ít nhiều độc lập với với nhau nhưng cũng hỗ trợ cho nhau bằng cách trao đổi dịch vụ hoặc thông tin cho nhau. Sự phức hợp cũng do một số nguyên nhân: thứ nhất, việc chọn tuyến đòi hỏi định hướng giữa tất cả các trạm chuyển mạch trong mạng chứ không phải chỉ có quan hệ giữa một cặp modul như trường hợp của lớp liên kết dữ liệu (Data link) hay lớp vận tải (transport).Thứ hai, hệ thống chọn tuyến phải đối đầu với các sự cố của nút chuyển mạch và đường truyền dẫn, đôi khi đòi hỏi phải có sự chọn tuyến trong cùng một quá trình truyền tin và luôn phải thu thập thông tin mới nhất về các hoạt động của toàn mạng thông qua cơ sở dữ liệu. Thứ ba, để có được hoạt tính cao, thuật toán chọn tuyến truyền phải có khi phải thay đổi tuyến đã xác lập nhằm tránh những vùng tắc nghẽn mới xuất hiện trong mạng. 3.1.2 Chức năng Vấn đề chọn tuyến truyền, tóm lại có hai nhiệm vụ cơ bản: thứ nhất là phải chọn tuyến sao cho đạt được hoạt tính cao, có nghĩa là phải chọn được đường dẫn có hiệu quả nhất, trong phần tiếp theo ta sẽ lần lượt xét một số thuật toán cho phép ta chọn tuyến truyền theo các yêu cầu nhất định; thứ hai là phải phổ cập thông tin liên quan đến chọn tuyến (bao gồm cả các sự cố của các nút mạng cũng như các đường truyền và tình hình khắc phục giữa chúng ) tới tất cả các nút chuyển mạch trong mạng. Trong việc chọn tuyến truyền gói, có hai thông số đánh giá định lượng dịch vụ cần phải quan tâm và đồng thời chúng cũng được dùng đánh giá tính khả hoạt của các thuật toán chọn tuyến là tính khả thông (Throughput) và trễ trung bình (Average Packet Delay). Như vậy thực ra việc chọn tuyến có quan hệ mật thiết với quá trình điều khiển luồng (xem hình 1.2), bởi vì hai thông số này cũng dùng để đánh giá hoạt động của việc điều khiển luồng. Khả thông Tải đưa tới Trễ Tải bị từ chối Điều khiển luồng Tạo tuyến cho gói Hình 3.2: Tương hoạt giữa chọn tuyến và điều khiển luồng Khi lượng tải tương đối nhỏ, mạng sẽ chấp nhận toàn bộ, có nghĩa là: Khả thông = Tải đưa tới Khi lượng tải vượt quá giới hạn nào đó, một phần tải bị từ chối bởi thuật toán điều khiển luồng và Khả thông = Tải đưa tới - Tải bị từ chối Lượng tin truyền trong mạng sẽ chịu trễ trung bình của gói truyền trên tuyến do thuật toán chọn tuyến quyết định. Bên cạnh dó, khả thông phụ thuộc một cách gián tiếp vào thuật toán chọn tuyến vì mô hình điều khiển luồng đặc trưng bao gì cũng xác lập, sự cân bằng giưa trễ và khả thông, nói cách khác, mô hình điều khiển luồng bắt đầu hạn chế lượng tải đưa vào khi trễ trung bình vượt quá giới hạn xác định. Như vậy nếu phép chọn tuyến đảm bảo cho trễ gói càng nhỏ thì phép đièu khiển luồng càng cho nhiêù gói truy nhập vào mạng và làm tăng khả thôngkhả thông của mạng. Mối tương quan giữa chúng có sự hồi tiếp như hình 1.2 đã chỉ ra. Sự phụ thuộc của trễ truyền gói trung bình vào thuật toán chọn tuyến được mô tả bởi hình 3.3 Trễ Khả thông Chọn tuyến tốt Chọn tuyến tồi Hình 3.3: Đặc tuyến trễ - khả thông cho phép đánh giá thuật toán chọn tuyến Như vậy bài toán chọn tuyến có thể phát biểu dưới dạng như sau: Đòi hỏi phải chọn được tuyến truyền trông phạm vi mạng sao cho nó đạt được khả thông cao nhất cùng với giá trị của trễ truyền gói trong trường hợp mạng có tải áp đặt lớn, và giảm trễ truyền gói trung bình trong trường hợp tải áp đặt nhỏ. Nói một cách ngắn gọn thì trong trường hợp nào thuật toán chọn tuyến cũng được yêu cầu làm giảm trễ trung bình của gói. 3.1.3 Phân loại Thông thường phép chọn đường truyền gói trong mạng chuyển mạch gói đưa đến việc chọn tuyến truyền với giá thành tối thiểu (Least - cost Routing), trong đó giá thành là một thông số đánh giá của hệ thống, ví dụ như trễ truyền, thời gian xếp hàng, độ dài đường truyền,tỉ lệ lỗi trên tuyến truyền. .. Tuy nhiên, ngoài giá thành, một số thông số khác cũng phải tính đến khi thiết lập đường truyền: Dung lượng của đường truyền Số lượng các gói đang chờ để đưa vào đường truyền Phân bố tải trên mạng Các yêu cầu bảo mật đối với đường truyền Kiểu truyền tải so với dạng của đường truyền Số lượng các đường nối trung gian giữa trạm truyền và trạm nhận Khả năng ghép nối với trạm trung gian và cả trạm nhận cuối cùng Dù cho thông số mạng có thay đổi theo tiêu chuẩn nào thì vẫn phải tính đến ba điều kiện: + Trễ trung bình gói (Delay) + Khả thông (Throughput) + Khả nối (Connectivity) Như chúng ta đã nói trong phần chức năng,việc chọn tuyến truyền có hai nhiệm vụ cơ bản: thứ nhất là phải chọn tuyến sao cho đạt được hoạt tính cao, có nghĩa là phải chọn được đường dẫn có hiệu quả nhất; thứ hai là phải phổ cập thông tin liên quan đến chọn tuyến bao gồm cả c

Các file đính kèm theo tài liệu này:

  • docthiet.mag.wa.doc