Bài giảng Mạng máy tính - Nguyễn Xuân Anh

pdf 193 trang ngocly 1450
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Nguyễn Xuân Anh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mang_may_tinh_nguyen_xuan_anh.pdf

Nội dung text: Bài giảng Mạng máy tính - Nguyễn Xuân Anh

  1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN 1 BÀI GIẢNG MẠNG MÁY TÍNH (Dành cho sinh viên hệ Đại học chính qui chuyên ngành Công nghệ thông tin) Người biên soạn: ThS. Nguyễn Xuân Anh HÀ NỘI – 11/2012
  2. MỤC LỤC CHƯƠNG 1: GIỚI THIỆU 7 1.1 Mạng máy tính và mạng Internet 7 1.2 Phân loại mạng máy tính theo phạm vi địa lý 7 1.3 Hình trạng mạng 7 1.3.1 Hình trạng vật lý 7 1.3.2 Hình trạng logic 8 1.3.3 Kết nối với mạng Internet 9 CHƯƠNG 2: KIẾN TRÚC VÀ HIỆU NĂNG MẠNG 11 2.1 Chuyển mạch kênh và chuyển mạch gói 11 2.2 Phân tầng và chức năng của các tầng 13 2.2.1 Kiến trúc phân tầng 13 2.2.2 Mô hình OSI 14 2.2.2.1 Các tiến trình ngang hàng 15 2.2.2.2 Giao diện giữa các tầng 16 2.2.2.3 Tổ chức các tầng 16 2.2.3 Chức năng các tầng trong mô hình OSI 17 2.2.3.1 Tầng vật lý 17 2.2.3.2 Tầng liên kết dữ liệu 18 2.2.3.3 Tầng mạng 18 2.2.3.4 Tầng vận tải 19 2.2.3.5 Tầng phiên 20 2.2.3.6 Tầng trình diễn 20 2.2.3.7 Tầng ứng dụng 21 2.2.4 Mô hình TCP/IP 21 2.2.4.1 Tầng truy nhập mạng 22 2.2.4.2 Tầng Internet 22 2.2.4.3 Tầng vận tải 22 2.2.4.4 Tầng ứng dụng 23 2.2.5 So sánh mô hình OSI và mô hình TCP/IP 24 2.3 Tên miền và địa chỉ 25 2.3.1 Các dịch vụ tên miền 25 2.3.1.1 Dịch vụ đặt bí danh cho máy tính 26 2.3.1.2 Dịch vụ đặt bí danh cho máy chủ 26 2.3.1.3 Phân tán tải 26 2.3.2 Cơ chế hoạt động của dịch vụ tên miền 27 2.3.3 Bản ghi dịch vụ tên miền 29 Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 2
  3. 2.4 Nguyên tắc thiết kế Internet 31 2.5 Các yếu tố tạo nên hiệu năng mạng 36 2.5.1 Các yếu tố đánh giá hiệu năng mạng 36 2.5.2 Vai trò của việc đánh giá hiệu năng mạng máy tính 36 2.5.3 Các phương pháp đánh giá hiệu năng mạng 37 CHƯƠNG 3: TẦNG ỨNG DỤNG 40 3.1 Các khái niệm và cài đặt các giao thức tầng ứng dụng 40 3.1.1 Mô hình dịch vụ của tầng ứng dụng 40 3.1.2 Mô hình khách chủ 42 3.1.3 Mô hình ngang hàng 42 3.2 Các giao thức thường dùng tại lớp ứng dụng 42 3.2.1 Giao thức truy nhập trang web HTTP 42 3.2.1.1 Tổng quan về giao thức HTTP 43 3.2.1.2 Khuôn dạng của bản tin HTTP 46 3.2.1.3 Tương tác người dùng-máy chủ 49 3.2.1.4 GET có điều kiện 50 3.2.1.5 Web caches 52 3.2.2 Giao thức truyền tập tin FTP 53 3.2.3 Giao thức chuyển thư điện tử 55 3.2.3.1 SMTP 57 3.2.3.2 POP3 65 3.2.3.3 IMAP 66 3.3 Một số ứng dụng quen thuộc 67 3.3.1 Trình duyệt web 67 3.3.2 Phần mềm đọc thư điện tử 69 3.3.3 Trình đa phương tiện 69 3.3.4 Tiện ích Telnet, rlogin, ssh 69 CHƯƠNG 4: TẦNG VẬN TẢI 71 4.1 Ghép kênh và phân kênh, các giao thức TCP và UDP 71 4.1.1 Ghép kênh và phân kênh 71 4.1.2 Giao thức TCP 75 4.1.3 Giao thức UDP 75 4.1.3.1 Cấu trúc dữ liệu của giao thức UDP 77 4.1.3.2 Cách tính UDP checksum 77 4.2 Các nguyên lý truyền tin cậy 78 4.2.1 Xây dựng giao thức truyền dữ liệu tin cậy 79 4.2.1.1 Truyền dữ liệu tin cậy trên kênh tin cậy hoàn toàn 79 4.2.1.2 Truyền dữ liệu tin cây trên kênh truyền có lỗi bit 79 Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 3
  4. 4.2.1.3 Truyền dữ liệu tin cây khi có lỗi 83 4.3 Điều khiển lưu lượng 86 4.4 Nâng cao hiệu năng bằng đường ống Pipeline 87 4.4.1 Giao thức Go-back-N 88 4.4.2 Giao thức lặp lại có lựa chọn 92 CHƯƠNG 5: LẬP TRÌNH SOCKET 97 5.1 Khái niệm về socket 97 5.1.1 Mô hình client/server 97 5.1.2 Các kiến trúc Client/Server 98 5.1.2.1 Client/Server hai tầng 98 5.1.2.2 Client/Server ba tầng 99 5.1.2.3 Kiến trúc n- tầng 99 5.1.3 Mô hình truyền tin socket 99 5.2 Java sockets 101 5.2.1 Socket cho phía server 101 5.2.2 Socket cho phía Client 103 5.3 Máy chủ đa xử lý 105 5.4 Lập trình socket với ngôn ngữ C 105 CHƯƠNG 6: GIAO THỨC TCP 107 6.1 Cấu trúc segment 107 6.2 Truyền dữ liệu tin cậy 108 6.3 Điều khiển luồng 112 6.4 Quản lý kết nối 114 6.5 Điều khiển tắc nghẽn 117 CHƯƠNG 7: TẦNG MẠNG VÀ GIAO THỨC IP 121 7.1 Mô hình dịch vụ tầng mạng 121 7.1.1 Nguyên lý chuyển mạch tầng mạng 122 7.1.2 Lịch sử chuyển mạch gói và chuyển mạch ảo 125 7.2 Nguyên tắc định tuyến 126 7.2.1 Thuật toán định tuyến theo trạng thái đường truyền 128 7.2.2 Thuật toán vector khoảng cách 131 7.3 Định tuyến phân cấp 135 7.4 Giao thức IP 136 7.4.1 Địa chỉ IPv4 137 7.4.1.1 Vấn đề địa chỉ và định tuyến 141 7.4.1.2 Khuôn dạng gói dữ liệu IP 142 7.4.1.3 Phân mảnh và hợp nhất gói tin IP 144 7.4.2 Địa chỉ IP V6 147 Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 4
  5. 7.4.2.1 Định dạng gói tin IP V6 147 7.4.2.2 ICMP cho IPV6 149 7.4.3 Chuyển từ IPv4 sang IPv6 149 7.5 Định tuyến trên Internet 149 7.5.1 Giao thức RIP 150 7.5.2 Giao thức OSPF 151 7.5.3 Giao thức BGP 151 7.6 Các giao thức khác 152 7.6.1 Giao thức ICMP 152 7.6.2 Cấp phát địa chỉ IP 153 7.6.2.1 Giao thức RARP 153 7.6.2.2 Giao thức BOOTP 154 7.6.2.3 Giao thức DHCP 154 7.7 Chuyển đổi địa chỉ 155 7.7.1.1 Giao thức ARP 155 7.7.1.2 Chuyển đổi địa chỉ - NAT 156 7.8 Chia mạng 156 CHƯƠNG 8: TẦNG LIÊN KẾT 157 8.1 Mô hình dịch vụ tầng liên kết dữ liệu 157 8.2 Giao thức đa truy nhập 158 8.2.1 Giao thức phân chia kênh truyền 161 8.2.2 Giao thức đa truy cập ngẫu nhiên 162 8.2.2.1 Slotted ALOHA 162 8.2.2.2 ALOHA thuần túy 163 8.2.2.3 Đa truy cập cảm nhận sóng mang 164 8.3 Các công nghệ kết nối 165 8.3.1 Công nghệ Ethernet 165 8.3.1.1 Cấu trúc khung dữ liệu Ethernet 166 8.3.1.2 Dịch vụ truyền số liệu không liên kết 167 8.3.1.3 Dải tần cơ sở và mã hoá Manchester 168 8.3.1.4 CSMA/CD 168 8.3.1.5 Hiệu suất Ethernet 170 8.3.1.6 Các công nghệ Ethernet 171 8.3.2 Kết nối mạng diện rộng 173 8.3.2.1 Giao thức PPP 173 8.3.2.2 Giao thức điều khiển đường truyền PPP 176 8.4 Các thiết bị mạng nội bộ 178 8.4.1 Bộ tập trung 178 Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 5
  6. 8.4.2 Cầu nối 179 8.4.2.1 Nguyên lý lọc và chuyển tiếp 180 8.4.2.2 Xây dựng bảng chuyển mạch 182 8.4.2.3 Spanning Tree 182 8.4.2.4 So sánh cầu nối và thiết bị định tuyến 183 8.4.2.5 Kết nối các đoạn mạng qua đường trục 185 8.4.3 Switch 185 8.5 Kết nối không dây 186 8.5.1 Các mô hình kết nối mạng không dây 187 8.5.2 Ưu và nhược điểm của kết nối không dây 188 BÀI TẬP TỔNG HỢP 190 Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 6
  7. CHƯƠNG 1: GIỚI THIỆU 1.1 Mạng máy tính và mạng Internet Mạng máy tính là một hệ thống bao gồm các máy tính được nối kết với nhau để trao đổi thông tin. Việc kết nối các máy tính với nhau nhằm mục đích sau: Chia sẻ phần cứng: người sử dụng có thể dùng chung các thiết bị phần cứng như máy in, máy vẽ. Cao hơn nữa, người dùng có thể tận dụng năng lực xử lý của các máy tính khác. Chia sẻ dữ liệu: Dữ liệu được quản lý tập trung, như vậy sẽ đảm bảo an toàn và toàn vẹn dữ liệu. Trao đổi thông tin: việc trao đổi thông tin như thư điện tử, đăng tin lên các trang thông tin điện tử một cách dễ dàng, nhanh chóng và tiện lợi. Nếu nhiều mạng máy tính với nhau gọi là kết nối liên mạng (internet), việc kết liên mạng trên phạm vi toàn cầu đã hình thành nên mạng Internet. Sự phát triển của mạng Internet đã vượt xa những dự đoán của những người sáng lập, nó đã làm thay đổi lối sống của nhân loại. 1.2 Phân loại mạng máy tính theo phạm vi địa lý Mạng máy tính có thể được đặt trên một khu vực nhất định, ví dụ: trong một căn phòng, một tòa nhà, một quốc gia hay trên phạm vi toàn cầu. Dựa vào phạm vi phân bổ của các máy tính trong mạng người ta có thể phân ra các loại mạng, trong đó khái niệm mạng cục bộ (LAN - Local Area Network) và mạng diện rộng (WAN - Wide Area Network) thường hay được nhắc tới. Mạng cục bộ kết nối các máy tính trong một khu vực bán kính hẹp, thông thường dưới 1 Km, băng thông tương đối lớn, thường được sử dụng trong nội bộ một gia đình, cơ quan . Mạng diện rộng kết nối các máy tính có phạm vi lớn hơn 1 Km và thường được lắp đặt dựa trên nền tảng mạng viễn thông. Mạng cục bộ thường có băng thông lớn được thiết kế để kết nối các máy tính trong một khu vực địa lý nhỏ như ở một tầng của toà nhà, hoặc trong một toà nhà Mạng cục bộ cho phép dùng chung những thiết bị ngoại vi như máy in, máy chiếu và thậm chí có thể chia sẻ các tài nguyên trên mỗi máy tính như ổ đĩa, phần mềm, tài nguyên dữ liệu. 1.3 Hình trạng mạng Hình trạng mạng (Network Topology) là cấu trúc máy tính liên kết các máy tính với nhau, cần phải phân biệt hình trạng vật lý và hình trạng logic. Hình trạng vật lý trả lời cho câu hỏi các máy tính được nối với nhau như thế nào (phản ánh cấu trúc hình học của mạng). Hình trạng logic trả lời cho câu hỏi các máy tính trao đổi thông tin với nhau như thế nào (mạng vận hành theo nguyên tắc nào). 1.3.1 Hình trạng vật lý Hình trạng vật lý có 3 dạng cấu trúc cơ bản là: dạng tuyến (Bus Topology), dạng vòng (Ring Topology) và dạng hình sao (Star Topology). Từ ba dạng cấu Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 7
  8. trúc cơ bản trên sẽ tạo lập các hình thạng mạng khác như: dạng hình cây (Tree), dạng hỗn hợp (Mesh),v.v Hình 1.1 Các hình trạng vật lý Dạng tuyến: Theo cách bố trí hành lang, tất cả các máy tính trong mạng đều được nối với nhau trên một trục đường dây cáp chính. Hai đầu mút của dây cáp được bịt bởi một thiết bị gọi là kết cuối (Terminator), kết cuối có tác dụng giữ cho các tín hiệu di chuyển trên dây giảm được suy hao. Loại dạng này dùng ít dây cáp nhất, dễ lắp đặt. Tuy nhiên, khi có sự hỏng hóc ở đoạn nào đó thì rất khó phát hiện, chỉ cần một điểm trên đường dây bị đứt sẽ ngừng hoạt động của toàn bộ mạng. Dạng vòng: Đường dây cáp được thiết kế làm thành một vòng khép kín, tín hiệu chạy quanh theo một chiều nào đó. Mạng dạng vòng tiết kiệm dây dẫn nhưng đường dây phải khép kín, nếu bị ngắt ở một nơi nào đó thì toàn bộ mạng sẽ ngừng hoạt động. Dạng hình sao: Dạng hình sao bao gồm một điểm trung tâm, các máy tính trao đổi thông tin với nhau đều phải chuyển qua trung tâm này. Dạng hình sao có ưu điểm sau: - Hoạt động theo nguyên lý nối song song nên nếu có một thiết bị nào đó ở một nút thông tin bị hỏng thì mạng vẫn hoạt động bình thường. - Cấu trúc mạng đơn giản. - Dễ dang mở rộng qui mô mạng. - Nhược điểm của mạng hình sao: - Khả nǎng mở rộng mạng hoàn toàn phụ thuộc vào khả nǎng của trung tâm . Khi trung tâm có sự cố thì toàn mạng ngừng hoạt động. - Mạng yêu cầu nối độc lập riêng rẽ từng thiết bị ở các nút thông tin đến trung tâm. Khoảng cách từ máy đến trung tâm thường dưới 100m. 1.3.2 Hình trạng logic Hình trạng logic được phân thành hai loại: Quảng bá và thẻ bài. Quảng bá: Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 8
  9. Trong hình trạng quảng bá, kênh truyền được chia sẻ cho tất cả các máy tính. Khi một máy tính gởi tin, tất cả các máy tính còn lại sẽ nhận được tin đó. Tại một thời điểm chỉ cho phép một máy tính được phép sử dụng đường truyền. Thẻ bài: Hình trạng này không có nút điều phối, một bản tin đặc biệt được gọi là thẻ bài (token) được trao đổi giữa các nút theo một thứ tự định trước. Ví dụ, nút thứ nhất gửi thẻ bài tới nút thứ hai, nút thứ hai gửi thẻ bài tới nút thứ ba. . . nút thứ N gửi thẻ bài tới nút thứ nhất. Khi nút nhận được thẻ bài, nó chỉ giữ thẻ bài khi có dữ liệu cần truyền, nếu không nó sẽ ngay lập tức chuyển thẻ bài tới nút kế tiếp. Nếu nút có dữ liệu cần truyền, khi nhận được thẻ bài, nó gửi đi lượng dữ liệu được phép và sau đó chuyển thẻ bài tới nút kế tiếp. 1.3.3 Kết nối với mạng Internet Cùng với sự phát triển của mạng Internet, người ta đã có nhiều cách thức để kết nối vào Internet. Mỗi cách có ưu điểm và nhược điểm riêng, tuỳ thuộc vào phần cứng, phần mềm và chi phí phải trả. Thực tế, chúng ta có thể gộp chung thành 3 loại hình dịch vụ kết nối cơ bản sau: - Kết nối trực tiếp, cố định - Kết nối trực tiếp, không cố định - Kết nối gián tiếp Kết nối trực tiếp, cố định: Đây là các loại kết nối mà người sử dụng có thể truy cập vào Internet vào bất cứ lúc nào mình muốn. Máy tính sẽ được cung cấp cho một địa chỉ tĩnh và không bị không thay đổi trong một thời gian dài. Tốc độ là ưu điểm lớn nhất của loại hình này vì máy tính được kết nối sử dụng băng thông rộng. Chúng ta có thể thấy kết nối qua modem cáp (cable modem), ISDN là những ví dụ điển hình về loại kết nối này. Thông thường đây là loại hình kết nối đắt tiền, cả về giá cước cũng như thiết bị để kết nối. Kết nối trực tiếp, không cố định: Mỗi lần kết nối, máy tính sẽ được cấp cho một địa chỉ để phục vụ cho phiên làm việc, địa chỉ này chỉ tồn tại trong thời gian kết nối. Loại kết nối này thường dùng trong mạng điện thoại công cộng. Ưu điểm là giá thành tương đối thấp, tuy nhiên hạn chế của loại kết nối này là tốc độ, đơn giản vì dữ liệu được truyền chung với tín hiệu thoại trên cáp đồng. Nếu kết nối qua đường dây điện thoại thì tốc độ hạn chế ở 56 Kbps. Kết nối gián tiếp, không cố định: Đây là kết nối Internet mà máy tính của người dùng không kết nối một cách trực tiếp vào mạng, mà nó được kết nối vào một máy tính khác đang thực sự nối Internet. Cách này thường thấy ở các phòng dịch vụ Internet công cộng. Tốc độ cũng tuỳ thuộc vào loại kết nối Internet mà máy chủ đang có cũng như số máy tính khách đang kết nối vào máy chủ. Hơn nữa, loại hình này có thể không cung Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 9
  10. cấp đầy đủ các chức năng cho máy khách, tất cả đều tuỳ thuộc vào chính sách bảo mật được thiết lập trên máy chủ. Căn cứ vào nhu cầu sử dụng, người dùng có thể lựa chọn các phương tiện kết nối sau: Kết nói qua mạng điện thoại công cộng (PSTN): Dùng modem quay số, tốc độ chậm, chất lượng không tốt, tuy nhiên đây là mạng bao phủ rộng lớn, kể cả các vùng hẻo lánh. Đường thuê bao (leased line). Thuê đường dây riêng của công ty viễn thông. Mạng dịch vụ tích hợp số (ISDN - Integrated Service Digital Nework). Sử dụng đường điện thoại số thay vì đường tương tự. Frame relay: Phù hợp với các dịch vụ truyền số liệu. Chế độ truyền không đồng bộ (ATM - Asynchoronous Trangfer Mode)” ATM thích hợp các dịch vụ đòi hỏi băng thông rộng. Đường vệ tinh (satellite links): Giá thành đắt, chỉ phù hợp với những khu vực khó triển khai kênh truyền băng thông rộng bằng các đường dây hữu tuyến Điện thoại di động: Hình thức này đang ngày càng phổ biến, đặc biệt khi các công ty thông tin di động triển khai mạng 3G và 4G. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 10
  11. CHƯƠNG 2: KIẾN TRÚC VÀ HIỆU NĂNG MẠNG 2.1 Chuyển mạch kênh và chuyển mạch gói Chuyển mạch kênh: Khi có hai đối tượng cần trao đổi thông tin với nhau thì giữa chúng sẽ thiết lập một kênh cố định và được duy trì cho đến khi một trong hai bên ngắt liên lạc, dữ liệu chỉ được truyền theo con đường cố định đó. Chuyển mạch kênh hoạt động theo mô hình của hệ thống điện thoại công cộng. Ví dụ, hai máy A và B cần phải trao đổi thông tin với nhau. Để có thể giao tiếp với máy B, máy A phải thực hiện một cuộc gọi. Nếu máy B chấp nhận cuộc gọi thì một kênh truyền được thiết lập dành riêng cho việc trao đổi thông tin giữa máy A và máy B. Tất cả các tài nguyên được cấp cho cuộc gọi này như băng thông đường truyền, khả năng của các bộ chuyển đổi thông tin đều được dành riêng cho cuộc gọi, không chia sẻ cho bất kỳ cuộc gọi nào khác ngay cả khi máy A và B không gửi thông tin cho nhau. Hình 2.1 Mạng chuyển mạch kênh Băng thông sẽ được chia thành nhiều phần bằng nhau và sẽ gán cho các cuộc gọi. Khi một cuộc gọi sở hữu phần băng thông đó, mặc dù không sử dụng đến hoặc không sử dụng hết nó cũng không chia sẻ băng thông này cho các cuộc gọi khác. Việc phân chia băng thông của kênh truyền có thể thực hiện kỹ thuật phân chia theo tần số (FDMA-Frequency Division Multi Access) hay phân chia theo thời gian (TDMA- Time Division Multi Access). Chuyển mạch kênh có hiệu suất không cao do phải mất thời gian để thiết lập kênh truyền, hiệu suất sử dụng kênh truyền thấp vì có những thời điểm kênh truyền đã được thiết lập nhưng lại không được sử dụng hoặc sử dụng rất ít, trong khi đó các thực thể khác có nhu cầu truyền dữ liệu vẫn phải nằm trong hàng đợi. Chuyển mạch thông báo: Thông báo là một đơn vị thông tin với khuôn dạng nhất định, mỗi thông báo gồm hai phần: Phần thông tin điều khiển và phần nội dung cần chuyển, phần thông tin điều khiển phải chỉ định rõ đích đến của thông báo. Căn cứ vào thông tin điều khiển, mỗi nút trung gian sẽ quyết định chuyển thông báo tới nút kế tiếp, đường đi của các thông báo sẽ không cố định. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 11
  12. Hình 2.2 Chuyển mạch thông báo So với chuyển mạch kênh, hiệu suất sử dụng đường truyền của chuyển mạch gói cao hơn, cơ chế truyền tin linh hoạt hơn vì có thể đặt ưu tiên cho từng thông báo. Tuy nhiên, do không qui định độ lớn của mỗi bản tin nên khó qui định thống nhất thời gian đáp ứng của mỗi thông báo, khi có lỗi xảy ra thì phải truyền lại toàn bộ thông báo đó. Chuyển mạch gói: Trong phương pháp chuyển mạch gói, thông tin trao đổi giữa hai máy tính được phân thành những gói tin có kích thước tối đa xác định. Gói tin của những người dùng khác nhau sẽ chia sẻ nhau băng thông của kênh truyền. Nếu lượng thông tin cần truyền đi vượt quá khả năng đáp ứng của kênh truyền thì sẽ xảy ra trường hợp mỗi gói tin chiếm dụng toàn bộ băng thông của kênh truyền. Trong trường hợp này, các thiết bị định tuyến sẽ lưu lại các gói tin chưa gửi vào hàng đợi chờ cho đến khi kênh truyền rỗi sẽ lần lượt gửi đi. Hình 2.3 Chuyển mạch gói Phương pháp chuyển mạch gói cho phép tận dụng kênh truyền tốt hơn, do đó có thể đáp ứng nhiều người sử dụng hơn mà không cần phải nâng cấp hệ thống phần cứng. Ví dụ: giả sử một đường truyền có tốc độ 2 Mbps, mỗi người dùng được cấp băng thông 100 Kbps và chỉ hoạt động tối đa 10% tổng thời gian. Nếu dùng phương pháp chuyển mạch kênh sẽ chỉ đáp ứng tối đa 20 người sử dụng, trong khi đó nếu dùng phương pháp chuyển mạch gói thì có thể đáp ứng cho khoảng 200 người sử dụng. Chuyển gói thích hợp cho dịch vụ truyền dữ liệu lớn nhưng cần phải có cơ chế điều khiển tắt nghẽn và mất mát dữ liệu. Thông Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 12
  13. lượng phụ thuộc vào số lượng người dùng đồng thời nên một số ứng dụng về âm thanh và hình ảnh sẽ có chất lượng không ổn định. 2.2 Phân tầng và chức năng của các tầng 2.2.1 Kiến trúc phân tầng Để giảm độ phức tạp của việc thiết kế và cài đặt mạng, người ta thường lựa chọn cách thiết kế theo quan điểm phân tầng. Mỗi hệ thống thành phần của mạng được xem như một cấu trúc đa tầng, trong đó mỗi tầng được xây dựng trên tầng dưới nó. Số lượng các tầng cũng như tên và chức năng của mỗi tầng tuỳ thuộc vào ý tưởng của người thiết kế. Mục đích của việc phân tầng là để chuyên môn hóa các chức năng dịch vụ. Mỗi tầng khi sử dụng dịch vụ không cần quan tâm đến cách thực hiện của các tầng dưới. Hình 2.4 Kiến trúc phân tầng Việc thiết kế phân tầng phải bảo đảm các nguyên tắc sau: - Trong một mạng số lượng tầng và chức năng/nhiệm vụ của mỗi tầng phải như nhau. - Dữ liệu không được truyền trực tiếp từ tầng thứ i của hệ thống này sang tầng thứ i của hệ thống kia, ngoại trừ đối với tầng thấp nhất. Bên gửi phải chuyển dữ liệu đến tầng dưới nó, đến tầng thấp nhất sẽ chuyển cho tầng thấp nhất của bên nhận và dữ liệu lại được chuyển tiếp cho tầng cao hơn. - Liên kết giữa hai tầng thấp nhất gọi là liên kết vật lý, liên kết của tất cả các tầng cao hơn gọi là liên kết logic. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 13
  14. - Giao tiếp giữa hai tầng liền kề gọi là giao diện, chúng trao đổi dữ liệu với nhau qua các điểm truy nhập dịch vụ. - Các tầng tương ứng giao tiếp với nhau dựa trên các qui tắc nhất định gọi là giao thức, mỗi tầng có thể có nhiều giao thức. - Giao thức (Protocol) là tập các tiêu chuẩn để trao đổi thông tin giữa hai hệ thống máy tính hoặc hai thiết bị máy tính với nhau. Mỗi giao thức phải qui định đơn vị dữ liệu của giao thức (PDU – Protocol Data Unit) và tập các qui tắc để trao đổi thông tin: Gửi/nhận, qui định tốc độ, phương pháp truyền (một hướng, hai hướng hay hai hướng luân phiên). - Dữ liệu của tầng trên khi chuyển qua tầng dưới có thể sẽ được tách thành những đơn vị dữ liệu nhỏ hơn và đồng thời được thêm các thông tin điều khiển để phù hợp với giao thức truyền tin của tầng dưới. Bên nhận, mỗi tầng tương ứng sẽ bóc tách thông tin điều khiển và tập hợp các đơn vị dữ liệu để chuyển lên tầng cao hơn. 2.2.2 Mô hình OSI ISO là tên viết tắt của Tổ chức Quốc tế về tiêu chuẩn hoá (International Organization for Standardization), được thành lập năm 1946 và chính thức hoạt động vào ngày 23/2/1947, nhằm mục đích xây dựng các tiêu chuẩn về sản xuất, thương mại và thông tin. Một trong các chuẩn ISO về truyền thông mạng là mô hình liên kết giữa các hệ thống mở (OSI - Open Systems lnterconnection Model). Đây là mô hình để các hệ thống khác nhau có thể trao đổi thông tin với nhau mà không cần quan tâm đến kiến trúc bên trong của chúng. Ban đầu, mỗi hãng tự thiết kế các giao thức riêng nhằm tạo thế độc quyền cho các sản phẩm mạng của mình. Mô hình OSI ra đời nhằm mục đích cho phép hai hệ thống bất kì trao đổi thông tin với nhau mà không cần thay đổi bất cứ phần cứng hoặc phần mềm nào của mỗi hãng sản xuất. Mô hình OSI được phân tầng với mục đích thiết kế các hệ thống mạng cho phép việc truyền thông thực hiện được qua tất cả các kiểu hệ thống máy tính khác nhau. Các tầng được thiết kế riêng biệt nhưng liên quan chặt chẽ với nhau, mỗi tầng định nghĩa một phần của quá trình truyền thông tin trên mạng. Nắm vững những quy tắc cơ bản của mô hình OSI là tiền đề vững chắc để thiết kế và phát triển các hệ thống thông tin trên mạng. Mô hình OSI gồm 7 tầng sau: - Tầng ứng dụng. (Application layer). - Tầng trình diễn (Presentation layer) - Tầng phiên (Session layer) - Tầng vận tải (Transport layer) - Tầng mạng (Network layer) - Tầng liên kết dữ liệu (Datalink layer) - Tầng vật lý (Physical layer) 7. Tầng ứng 7. Tầng ứng dụng dụng Giao diện 7-6 Giao diện 7-6 6. Tầng trình 6. Tầng trình diễn diễn Giao diện 6-5 Giao diện 6-5 5. Tầng phiên 5. Tầng phiên BàiGiao giảng diện 5 -Mạng4 máy tính – Ths. Nguyễn Xuân Anh Giao diện 5-144 4. Tầng vận tải 4. Tầng vận tải
  15. Hình 2.5 Mô hình phân tầng OSI Hình 2.5 minh họa mối quan hệ giữa các tầng khi thông tin của người sử dụng được gửi từ máy tính PC1 đến máy tính PC2. Người sử dụng trên máy tính PC1 gửi tin cho người sử dụng tại máy tính PC2, thông tin sẽ lần lượt được chuyển từ tầng ứng dụng xuống tầng vật lý của máy tính PC1, sau đó đi qua nhiều nút trung gian khác (gọi là thiết bị mạng, những nút trung gian này thường chỉ liên quan đến tầng vật lý, tầng liên kết dữ liệu và tầng mạng của mô hình OSI) trước khi đến máy tính PC2. Tại máy tính PC2, thông tin sẽ lại lần lượt được chuyển tiếp từ lớp vật lý đến lớp ứng dụng. Khi xây dựng mô hình, các nhà thiết kế đã phân tích quá trình truyền dữ liệu thành những chức năng cơ bản nhất. Những chức năng nào có mục đích sử dụng liên quan đến nhau được gộp thành từng nhóm và gọi là tầng trong mô hình tham chiếu OSI. Như vậy, mỗi tầng được xác định chức năng và nhiệm vụ riêng biệt. Với cách thiết kế như vậy, mô hình tham chiếu OSI khá toàn diện và linh hoạt, đồng thời đảm bảo tính trong suốt giữa các hệ thống. 2.2.2.1 Các tiến trình ngang hàng Trong mỗi máy, mỗi tầng sử dụng các dịch vụ do tầng bên dưới cung cấp. Ví dụ, tầng 3 sử dụng các dịch vụ do tầng 2 cung cấp và đến lượt mình lại cung cấp dịch vụ cho tầng 4. Giữa các máy tính, tầng x trên một thiết bị giao tiếp với tầng x trên thiết bị khác. Việc giao tiếp này được tiến hành theo các quy tắc và quy ước đã được thỏa thuận trước - gọi là giao thức. Tại tầng vật lý, việc truyền thông là trực tiếp: Máy PC1 gửi một luồng bit đến máy tính PC2. Tại các tầng cao hơn trên máy PC1, dữ liệu được chuyển gần xuống các tầng bên dưới, đến máy PC2 và tiếp tục đi lên các tầng cao hơn (trong máy PC2). Mỗi tầng trong máy gửi dữ liệu đi (máy PC1) thêm các thông tin của tầng đó vào bản tin nhận được từ phía trên rồi sau đó chuyển toàn bộ gói dữ liệu xuống tầng phía dưới. Các thông tin được thêm vào này gọi là thông tin điều khiển, nếu thêm vào trước gọi là tiêu đề chèn trước (header), các thông tin điều Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 15
  16. khiển được thêm vào cuối gọi là thông tin chèn sau (Trailer). Thông tin chèn trước được thêm vào bản tin tại các tầng trình diễn, vận tải, phiên, mạng. Tầng liên kết dữ liệu thêm cả thông tin trước lẫn sau bản tin. Hình 2.6 Thêm và tách thông tin điều khiển tại các tầng Tại tầng vật lý, toàn bộ dữ liệu được chuyển thành dạng phù hợp với môi trường truyền dẫn nhằm bảo đảm thông tin có thể đến được máy nhận. Tại bên nhận, các tiêu đề được bóc tách dần dần khi chuyển dữ liệu từ tầng thấp lên tầng cao. Ví dụ, tầng liên kết dữ liệu loại bỏ các thông tin điều khiển của nó, kết quả sau khi bóc tách sẽ là dữ liệu của tầng mạng và được chuyển lên tầng trên (tầng mạng). Tương tự như vậy tầng mạng loại bỏ thông tin điều khiển sẽ được dữ liệu của tầng vận tải và dữ liệu đó sẽ lại chuyển cho tầng trên (tầng vận tải), quá trình tương tự được thực hiện cho đến tầng ứng dụng. 2.2.2.2 Giao diện giữa các tầng Trên cùng một máy tính, hai tầng kề nhau trao đổi dữ liệu với nhau qua các giao diện, tầng trên yêu cầu dịch vụ của tầng dưới thông qua giao diện gọi là điểm truy cập dịch vụ (SAP- Service Access Point). Tại mỗi điểm truy nhập dịch vụ người ta qui định phương pháp và khuôn dạng dữ liệu trao đổi giữa hai tầng kề nhau trên cùng một thiết bị. Định nghĩa giao diện giữa các tầng một cách rõ ràng sẽ cho phép thay đổi nghiệp vụ tại một tầng mà không ảnh hưởng đến các tầng khác. 2.2.2.3 Tổ chức các tầng Có thể chia bảy tầng có thể thành ba nhóm: Nhóm hỗ trợ mạng, nhóm hỗ trợ người sử dụng, nhóm trung gian. Nhóm hỗ trợ mạng bao gồm ba tầng thấp của mô hình OSI (Tầng vật lý, liên kết dữ liệu và mạng), chúng đảm nhiệm về các vấn đề liên quan đến mặt vật lý khi truyền dữ liệu từ một thiết bị này đến một thiết bị khác (ví dụ: những đặc tả về điện, các kết nối vật lý, định địa chỉ vật lý, định thời gian truyền ). Nhóm hỗ trợ người sử dụng bao gồm ba tầng cao nhất của mô hình OSI (Tầng phiên, trình diễn, ứng dụng), chúng cung cấp Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 16
  17. các tính năng tương tác giữa các hệ thống phần mềm tách biệt. Nhóm trung gian gồm các tầng nằm giữa hai nhóm trênm cụ thể trong mô hình OSI đó là tầng vận tảim nó đảm bảo việc chuyển dữ liệu tin cậy giữa các thiết bị đầu cuối. Nói chung, các tầng trên của mô hình OSI thường được thực hiện bởi phần mềm trong khi nhóm các tầng dưới được được triển khai dưới sự kết hợp của cả phần cứng và phần mềm, tầng vật lý hầu như được triển khai bởi phần cứng. Hình 2.5 mô tả tổng quan các tầng trong mô hình OSI, mỗi tầng đều định nghĩa đơn vị dữ liệu (PDU - Protocol Data Unit) của giao thức trong tầng đó. Quá trình trao đổi thông tin được bắt đầu tại tầng ứng dụng, sau đó chuyển xuống các tầng dưới. Tại mỗi tầng, ngoại trừ tầng ứng dụng và tầng vật lý, thông tin điều khiển sẽ được thêm vào đơn vị dữ liệu. Khi đơn vị dữ liệu chuyển đến tầng vật lý, chúng được chuyển thành tín hiệu điện từ và truyền đi trên đường truyền vật lý. Đến trạm nhận, tín hiệu điện từ đi đến tầng vật lý và được chuyển ngược lại thành chuỗi các bít. Các đơn vị dữ liệu sau đó sẽ được chuyển từ tầng vật lý lên các tầng trên trong mô hình OSI. Khi đi qua mỗi tầng, các thông tin điều khiển sẽ bị loại bỏ và đến tầng ứng dụng sẽ được bản tin giống như bản tin gốc tại tầng ứng dụng của bên gửi. 2.2.3 Chức năng các tầng trong mô hình OSI 2.2.3.1 Tầng vật lý Tầng vật lý thực hiện các chức năng cần thiết để truyền luồng bit dữ liệu đi qua các môi trường truyền đẫn, nó giải quyết các vấn đề liên quan đến đặc điểm kỹ thuật về cơ và điện của giữa giao diện của thiết bị mạng với môi trường truyền dẫn. Để thực hiện vai trò này, lớp vật lý cần phải xác định các thủ tục và các chức năng mà các thiết bị vật lý và thiết bị giao tiếp cần phải tuân thủ. Tầng vật lý thực hiện các chức năng sau: - Đảm bảo giao tiếp với môi trường truyền dẫn: Tầng vật lý xác định các đặc tính giao diện giữa các thiết bị mạng và môi trường truyền dẫn. - Biểu diễn dữ liệu dưới dạng bit: dữ liệu tầng vật lý là luồng bit liên tục 0 và l. Để truyền đi, các bit phải được mã hóa thành các tín hiệu điện, quang hoặc tần số. - Tốc độ truyền dẫn: Qui định số lượng bit được gửi đi trong một đơn vị thời gian và khoảng thời gian để truyền đi một bit. - Đồng bộ: Máy gửi và nhận phải được đồng bộ hóa ở mức bit. - Quản lý kênh truyền: Tầng vật lý liên quan đến việc kết nối các thiết bị vào môi trường truyền thông. Trong cấu hình điểm-điểm, hai thiết bị được nối với nhau qua một đường truyền dành riêng. Trong cấu hình điểm- nhiều điểm, một đường truyền được nhiều thiết bị dùng chung. - Hình trạng vật lý: Hình trạng vật lý xác định cách nối các thiết bị với nhau để tạo thành mạng. Có ba hình trạng cơ bản: dạng bus, dạng vòng và dạng sao. - Chế độ truyền dẫn: Tầng vật lý cũng xác định hướng truyền dữ liệu giữa hai thiết bị: đơn công (simplex), bán song công (haif-duplex) hay song công Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 17
  18. (full-duplex). Trong chế độ đơn công, một thiết bị chỉ có thể gửi hoặc nhận dữ liệu. Chế độ đơn công là truyền thông một chiều. Trong chế độ bán song công, một thiết bị có thể gửi và nhận dữ liệu, nhưng không phải tại cùng một thời điểm. Trong chế độ song công, một thiết bị có thể nhận và gửi dữ liệu tại cùng một thời điểm. 2.2.3.2 Tầng liên kết dữ liệu Tầng liên kết dữ liệu đảm bảo truyền tin tin cậy giữa hai thiết bị vật lý kết nối trực tiếp với nhau, dữ liệu tại tầng này gọi là khung (Frame). Tầng liên kết dữ liệu đảm nhiệm các chức năng sau: - Tạo khung dữ liệu: Tầng liên kết dữ liệu chia gói tin nhận được từ tầng mạng thành các đơn vị dữ liệu gọi là các khung dữ liệu. - Quản lý địa chỉ vật lý: Tầng liên kết dữ liệu phải xác định, gói tin cần chuyển có đích là thiết bị trong mạng nội bộ hay mạng khác. Nếu gói dữ liệu được chuyển đến thiết bị khác trong mạng nội bộ, nó thêm địa chỉ vật lý của thiết bị đích vào khung dữ liệu. Nếu gói tin cần chuyển ra ngoài mạng nội bộ, nó thêm địa chỉ vật lý của cổng mặc định. - Kiểm soát lưu lượng: Nếu tốc độ nhận dữ liệu nhỏ hơn tốc độ gửi dữ liệu, tầng liên kết dữ liệu phải thực hiện một kỹ thuật kiểm soát lưu lượng để ngăn ngừa tình trạng quá tải tại nơi nhận. - Kiểm soát lỗi: Tầng liên kết dữ liệu làm tăng tính tin cậy cho tầng vật lý bằng cách sử dụng một kỹ thuật phát hiện và truyền lại các khung bị lỗi hoặc bị mất. Nó cũng sử dụng kỹ thuật ngăn ngừa hiện tượng lặp khung. Kiểm soát lỗi thường được thực hiện bằng cách thêm một thông tin điều khiển vào phần cuối của khung, thông thường người ta sử dụng kỹ thuật kiểm tra vòng (CRC – Cyclic Redandunce Check). - Kiểm soát truy cập: Khi nhiều thiết bị được nối với cùng một đường truyền, các giao thức ở tầng liên kết dữ liệu cần xác định xem thiết bị nào được quyền sử dụng đường truyền tại một thời điểm xác định. 2.2.3.3 Tầng mạng Tầng mạng chịu trách nhiệm chuyển dữ liệu (dữ liệu của tầng mạng gọi là gói tin – packet) giữa các thiết bị đầu cuối của người sử dụng. Nếu như tầng vận tải đảm bảo liên kết đầu cuối tới mức tiến trình thì tầng mạng chỉ đảm bảo liên kết ở mức đầu cuối của người sử dụng. Theo định nghĩa ban đầu, tầng mạng giải quyết các vấn đề dẫn các gói tin qua một mạng. Một số ví dụ về các giao thức như vậy là X.25, và giao thức Host/IMP của mạng ARPANET. Với sự xuất hiện của khái niệm liên mạng, các chức năng mới đã được bổ sung cho tầng này, đó là chức năng dẫn đường cho dữ liệu từ mạng nguồn đến mạng đích. Nhiệm vụ này thường đòi hỏi việc định tuyến cho gói tin quan một mạng lưới của các mạng máy tính, đó là liên mạng. Tầng mạng đảm nhiệm các chức năng sau: - Quản lý địa chỉ logic: Địa chỉ vật lý của tầng liên kết dữ liệu đã đảm bảo tính duy nhất trong toàn mạng, tuy nhiên nó chỉ giải quyết được vấn đề định địa chỉ cục bộ. Nếu gói dữ liệu được chuyển đến một mạng khác, cần phải có Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 18
  19. một hệ thống địa chỉ khác nhằm phân biệt được hệ thống gửi và hệ thống nhận. Tầng mạng bổ sung thêm thông tin điều khiển vào mỗi gói dữ liệu gửi đi, trong đó chứa địa chỉ logic của thiết bị nhận và thiết bị gửi. - Định tuyến: Khi các mạng hoặc các nút riêng rẽ được nối với nhau tạo thành một liên mạng (mạng của các mạng), các thiết bị. Các thiết bị kết nối trung gian (thiết bị định tuyến - router) phải xác định tuyến đường cho các gói dữ liệu để chúng đến được nơi nhận cuối cùng. 2.2.3.4 Tầng vận tải Tầng vận tải chịu trách nhiệm chuyển toàn bộ bản tin từ nơi gửi đến nơi nhận một cách toàn vẹn. Nói cách khác, tầng vận tải đảm bảo liên kết giữa các tiến trình trên các máy tính khác nhau trên môi trường mạng. Có hai loại liên kết: Liên kết có hướng (Connection Oriented) và liên kết vô hướng (Connectionless). Đối với liên kết có hướng, tầng vận tải tạo ra một kết nối logic giữa hai cổng đầu cuối: tất cả dữ liệu của cùng một bản tin được truyền theo đường kết nối đó. Kết nối có hướng gồm ba giai đoạn: thiết lập liên kết, truyền dữ liệu, giải phóng liên kết. Do phải truyền tất cả các dữ liệu trên một kết nối, tầng vận tải còn phải kiểm soát thứ tự truyền, lưu lượng, phát hiện và sửa lỗi. Tầng vận tải đảm nhiệm các chức năng sau: - Thiết lập liên kết logic giữa các tiến trình trên thiết bị đầu cuối của người dùng: Mỗi máy tính thường chạy nhiều chương trình tại cùng một thời điểm, việc chuyển bản tin không chỉ đơn thuần là truyền dữ liệu từ một máy tính này sang máy tính khác mà phải chuyển bản tin từ một tiến trình trên máy tính này đến tiến trình tương ứng trên một máy tính khác. Để đảm nhiệm chức năng này, một loại thông tin điều khiển được thêm vào tầng vận tải gọi là cổng (port), mỗi cổng sẽ tương ứng với một tiến trình tại tầng phiên. - Phân đoạn và tái hợp: dữ liệu tại tầng ứng dụng thường có dung lượng lớn, để vận chuyển được hiệu quả, máy tính phải chia mỗi bản tin thành các đoạn (segment) nhỏ hơn và chúng được truyền độc lập với nhau. Mỗi đoạn tin được gán một số thứ tự, số thứ tự này giúp cho tầng vận tải phía nhận tái hợp các đoạn lại thành bản tin hoàn chỉnh. - Kiểm soát kết nối: Tại tầng vận tải người ta sử dụng hai kỹ thuật truyền số liệu: kết nối có hướng hoặc kết nối vô hướng. Kết nối có hướng nối gửi yêu cầu kết nối đến tầng vận tải của máy nhận, nếu được chấp thuận thì mới chuyển các đoạn dữ liệu, sau khi truyền xong dữ liệu phải gửi tiếp yêu cầu hủy kết nối. Kết nối vô hướng không phải gửi yêu cầu kết nối trước khi truyền dữ liệu (datagram), do đó kết nối vô hướng sẽ không tin cậy bằng kết nối có hướng, tính tin cậy trong truyền dữ liệu vô hướng do các tiến trình tầng trên đảm nhiệm. - Kiểm soát lưu lượng: Tầng vận tải chịu trách nhiệm kiểm soát lưu lượng giữa hai máy tính đầu cuối của người sử dụng. Để thực hiện chức năng này, phần thông tin điều khiển của đoạn tin phải có thành phần kiểm soát lượng dữ liệu được phép gửi đi. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 19
  20. - Kiểm soát lỗi: Tầng vận tải chịu trách nhiệm kiểm soát lỗi tại các thiết bị đầu cuối của người sử dụng. Tất cả các đoạn tin gửi đi phải được đảm bảm đến đích chính xác, nếu có lỗi thì phải truyền lại. 2.2.3.5 Tầng phiên Tầng phiên đóng vai trò kiểm soát viên hội thoại giữa các tiến trình trên lớp ứng dụng qua mạng, nó đảm bảo nhiệm vụ thiết lập, duy trì và đồng bộ hóa tính tương tác giữa các tiến trình đồng cấp trên các máy tính khác nhau. Tầng phiên đảm nhiệm các chức năng sau: - Kiểm soát hội thoại: Tầng phiên cho phép hai tiến trình cùng tham gia vào một cuộc hội thoại. Nó cho phép truyền thông giữa hai tiến trình được thực hiện hoặc theo kiểu bán song công hoặc theo kiều song công. Ví dụ, hội thoại giữa một thiết bị đầu cuối với một máy chủ có thể theo kiểu bán song công. - Đồng bộ hóa: Tầng phiên cho phép một tiến trình thêm các mốc gọi là điểm đồng bộ (synchronization point) vào luồng dữ liệu. Ví dụ, nếu hệ thống cần gửi đi một tập tin lớn gồm N trang, cứ sau M trang nên chèn thêm các điểm đồng bộ để đảm bảo rằng việc nhận từng cụm M trang được thực hiện độc lập. Trong trường hợp này nếu như có lỗi khi đang truyền đi trang thứ P x M+1, việc truyền lại sẽ được bắt đầu từ trang P x M+1, không cần phải truyền lại các trang từ 1 đến trang P x M. 2.2.3.6 Tầng trình diễn Tầng trình diễn thực hiện các nhiệm vụ liên quan đến cú pháp và ngữ nghĩa của các thông tin được trao đổi giữa hai hệ thống. Tầng trình diễn có nhiệm vụ: - Mã hóa/Giải mã dữ liệu (Encode/Decode): Các tiến trình trên hai thiết bị trao đổi các thông tin dưới nhiều dạng khác nhau (xâu kí tự, số, âm thanh, hình ảnh ), các thông tin này sau đó được chuyển sang dạng bit để truyền đi. Do các hệ thống máy tính khác nhau sử dụng các chẩn mã hóa khác nhau, tầng trình diễn chịu trách nhiệm đảm bảo tính trong suốt đối với người sử dụng trên các hệ thống sử dụng cách mã hóa khác nhau đó. Tầng trình diễn tại phía gửi chuyển thông tin theo khuôn dạng của mình thành thông tin theo khuôn dạng chung. Tầng trình diễn tại máy nhận sẽ chuyển thông tin trong khuôn dạng chung thành thông tin theo khuôn dạng của máy nhận. - Nén/Giải nén: Nén dữ liệu là quá trình làm làm giảm số lượng bit cần thiết phải chuyển trên đường truyền vật lý, từ đó nâng cao hiệu suất truyền tin. Nén dữ liệu ngày càng trở nên quan trọng, đặc biệt trong việc truyền các dữ liệu đa phương tiện âm thanh, hình ảnh. - Mã hóa/Giải mã bảo mật (Encrypt/Decrypt): Hệ thống phải có khả năng đảm bảo tính bí mật khi chuyển những thông tin quan trọng. Do vậy phía gửi sẽ biến đổi thông tin ban đầu (bản rõ) thành một dạng khác (bản mã hóa) và gửi nó đến phía nhận - đây là tiến trình mã hóa. Phía nhận thực hiện quá trình ngược lại bằng cách chuyển bản tin nhận được (bản mã hóa) thành nguyên dạng ban đầu (bản rõ), quá trình này được gọi là giải mã. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 20
  21. 2.2.3.7 Tầng ứng dụng Tầng ứng dụng cung cấp các tiện ích để người dùng truy cập vào mạng như: các dịch vụ như gửi thư điện tử, truy cập và chuyển file từ xa . Tầng ứng dụng cũng cung cấp các phương thức cho các ứng dụng khác (ví dụ truy nhập cơ sở dữ liệu mô hình khách/chủ ). Tầng ứng dụng là tầng cao nhất trong mô hình OSI, do đó nó tạo ra dữ liệu thực sự chứ không có các thông tin điều khiển. Tầng ứng dụng cung cấp các dịch vụ sau: - Thiết bị đầu cuối ảo của mạng: một thiết bị đầu cuối ảo của mạng là phiên bản phần mềm của một thiết bị đầu cuối vật lý, cho phép người đùng đăng nhập vào một máy từ xa. - Quản lý, truy cập và chuyển tập tin: ứng dụng này cho phép người dùng truy cập tập tin, quản lý các tập trên một máy tính khác. - Các dịch vụ khác: Hai dịch vụ phổ biến nhất là thư điện tử và truy nhập web. Dịch vụ thư điện tử cho phép hai hoặc nhiều người người trao đổi thư với nhau qua mạng (gọi là thư điện tử). Dịch vụ truy nhập web cho phép người dùng đọc tin tức trên các trang thông tin điện tử. Nói chung các dịch vụ loại này rất nhiều và ngày càng đa dạng. 2.2.4 Mô hình TCP/IP Mô hình OSI là mô hình tham chiếu được ISO xây dựng nhằm tạo một chuẩn phục vụ việc nối kết các hệ thống mở. Tuy nhiên mô hình này chỉ dừng lại ở mức độ lý thuyết, trong thực tế mô hình TCP/IP đang được sử dụng rộng rãi nhất hiện nay (mạng Internet đang sử dụng mô hình này), hầu hết tất cả các hệ điều hành đều có cài đặt bộ giao thức TCP/IP. Bộ giao thức này được đặt tên theo hai giao thức chính của nó là giao thức điều khiển vận tải (TCP - Transmission Control Protocol) và giao thức liên mạng (IP - Internet protocol). Hình 2.7 Các tầng trong bộ giao thức TCP/IP Về mặt lịch sử, mô hình TCP/IP ra đời trước khi có mô hình OSI. Giống như mô hình OSI, mô hình cũng được phân thành bốn tầng, mỗi tầng gồm bộ giao thức đảm nhiệm các chức năng riêng biệt. Tuy số lượng tầng ít hơn, nhưng mô hình TCP/IP vẫn phải đảm nhiệm đầy đủ các chức năng đã nêu trong mô Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 21
  22. hình OSI. Mô hình TCP/IP chia theo 4 tầng: truy nhập mạng, mạng, vận tải và ứng dụng. 2.2.4.1 Tầng truy nhập mạng Đây là tầng thấp nhất của mô hình TCP/IP, chịu trách nhiệm nhận các gói tin của tầng trên Internet và việc truyền phát chúng trên một mạng xác định. Theo quan điểm hiện nay mô hình TCP/IP không còn bao gồm các đặc tả vật lý, nói cách khác tầng liên kết cũng không còn bao gồm vấn đề về phần cứng hay việc truyền tín hiệu vật lý nữa. Tuy nhiên trong các trường hợp triển khai cụ thể, tầng truy nhập mạng sẽ được chia thành hai tầng con thực hiện các chức năng của tầng liên kết dữ liệu và tầng vật lý của mô hình OSI. Đối với truy nhập mạng qua modem quay số, các gói IP thường được truyền bằng cách sử dụng giao thức PPP. Đối với truy nhập Internet băng thông rộng (broadband) như ADSL hay modem cáp, giao thức PPPoE thường được sử dụng. Mạng dây cục bộ (local wired network) thường sử dụng Ethernet, còn mạng không dây cục bộ thường dùng chuẩn IEEE 802.11. Đối với các mạng diện rộng (wide-area network), các giao thức thường được sử dụng là PPP đối với các đường T-carrier hoặc E-carrier, Frame relay, ATM (Asynchronous Transfer Mode), hoặc giao thức packet over SONET/SDH (POS). Tầng truy nhập mạng kết hợp của các thành phần vật lý thực sự như các bộ lặp, cáp mạng và các thiết bị nối khác. 2.2.4.2 Tầng Internet Tầng Internet tương ứng với tầng mạng trong mô hình OSI, nó đảm bảo liên kết logic giữa hai thiết bị đầu cuối của người sử dụng. Các giao thức trong tầng này nhận dữ liệu từ tầng vận tải cùng với một địa chỉ của máy đích mà gói tin sẽ được gửi tới đóng gói dữ liệu và thực hiện nhiệm vụ chọn đường để chuyển tiếp gói tin đến địa chỉ đích. Trong bộ giao thức liên mạng, giao thức IP thực hiện nhiệm vụ cơ bản dẫn đường dữ liệu từ nguồn tới đích. Giao thức IP có thể chuyển dữ liệu theo yêu cầu của nhiều giao thức tầng trên khác nhau; mỗi giao thức trong đó được định danh bởi một số hiệu giao thức duy nhất: giao thức ICMP (Internet Control Message Protocol) là giao thức 1 và giao thức IGMP (Internet Group Management Protocol) là giao thức 2. Một số giao thức truyền bởi giao thức IP, chẳng hạn ICMP (dùng để gửi thông tin chẩn đoán về truyền dữ liệu bằng IP) và IGMP (dùng để quản lý dữ liệu đa truyền (multicast)), được đặt lên trên IP nhưng thực hiện các chức năng của tầng liên mạng, điều này minh họa một sự bất tương thích giữa liên mạng và chồng TCP/IP và mô hình OSI. Tất cả các giao thức định tuyến, chẳng hạn giao thức BGP (Border Gateway Protocol), giao thức OSPF, và giao thức RIP (Routing information protocol|), đều thực sự là một phần của tầng mạng, mặc dù chúng có thể có vẻ thuộc về phần trên của chồng giao thức. 2.2.4.3 Tầng vận tải Nhiệm vụ trước tiên của tầng vận tải là đảm bảo liên kết giữa các tiến trình trên các thiết bị đầu cuối của người sử dụng. Tầng vận tải cũng có thể điều Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 22
  23. 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 đoạn tin bị mất hoặc bị lỗi. Nhiệm vụ của tầng vận tải là kết hợp các khả năng truyền bản tin từ đầu cuối đến đầu cuối mà không phụ thuộc vào mạng bên dưới, kiểm soát lỗi (error control), phân mảnh dữ liệu và điều khiển lưu lượng. Việc truyền bản tin giữa các tiến trình trên các thiết bị đầu cuối của người sử dụng tại tầng vận tải gồm hai loại: - Kết nối có hướng (connection-oriented), ví dụ giao thức TCP - Kết nối vô hướng (connectionless), ví dụ giao thức UDP Tầng vận tải có thể được xem như một cơ chế vận chuyển thông thường, nghĩa là trách nhiệm của một phương tiện vận tải là đảm bảo rằng hàng hóa/hành khách của nó đến đích an toàn và đầy đủ. Tầng vận tải cung cấp dịch vụ kết nối các ứng dụng với nhau thông qua việc sử dụng các cổng TCP và UDP. Do IP chỉ cung cấp dịch vụ phát chuyển nỗ lực tối đa (best effort delivery), tầng vận tải là tầng đầu tiên giải quyết vấn đề độ tin cậy. TCP là một giao thức kết nối có hướng, nó giải quyết nhiều vấn đề độ tin cậy để cung cấp một dòng dữ liệu đáng tin cậy: - Dữ liệu đến đích đúng thứ tự - Sửa lỗi dữ liệu ở mức độ tối thiểu - Loại bỏ dữ liệu trùng lặp - Gửi lại các gói tin bị thất lạc hoặc bị lỗi - Kiểm soát lưu lượng truyền tin UDP là một giao thức kết nối vô hướng. Giống như giao thức IP, nó là một giao thức nỗ lực tối đa phân phát dữ liệu và không tin cậy. Giao thức này thường được dùng cho các dịch vụ yêu không đòi hỏi độ chính xác cao. RTP (Real-time Transport Protocol - giao thức vận tải thời gian thực) là một giao thức được thiết kế cho dữ liệu thời gian thực, đó là giao thức tầng phiên sử dụng định dạng gói tin UDP. Tuy nhiên, nó vẫn được xếp vào giao thức thuộc tầng vận tải. 2.2.4.4 Tầng ứng dụng Đây là tầng cao nhất trong cấu trúc phân lớp của TCP/IP, nó bao gồm ba tầng trên của mô hình OSI. Tầng 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 chồng giao thức TCP/IP. 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 tầng vận tải để 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ó. Tầng ứng dụng là nơi các chương trình mạng thường dùng nhất làm việc nhằm liên lạc giữa các nút trong một mạng. Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu được truyền từ chương trình, trong định Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 23
  24. dạng được sử dụng nội bộ bởi ứng dụng này, và được đóng gói theo một giao thức tầng vận tải. Trong mô hình TCP/IP, không có tầng nào nằm giữa ứng dụng và các tầng vận tải, tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động như các giao thức tại tầng trình diễn và tầng phiên của mô hình OSI. Việc này thường được thực hiện qua các thư viện lập trình. Dữ liệu thực để gửi qua mạng được truyền cho tầng ứng dụng, nơi nó được đóng gói theo giao thức tầng ứng dụng. Từ đó, dữ liệu được truyền xuống giao thức tầng thấp tại tầng vận tải. Hai giao thức tầng thấp thông dụng nhất là TCP và UDP. Mỗi ứng dụng sử dụng dịch vụ của một trong hai giao thức trên đều cần có cổng. Hầu hết các ứng dụng phổ biến đều có các cổng riêng biệt (HTTP - Giao thức truyền siêu văn bản dùng cổng 80; FTP - Giao thức truyền tệp dùng cổng 21, v.v ) 2.2.5 So sánh mô hình OSI và mô hình TCP/IP Bộ giao thức trong mô hình TCP/IP đã được sử dụng trước khi mô hình OSI được công bố. Trong khi mô hình TCP/IP đã được triển khai thực tế trong các hệ thống mạng, việc sử dụng mô hình thường để diễn tả chức năng và hoạt động của mạng. Hai mô hình này có liên quan với nhau, nhưng không phải là hoàn toàn giống nhau. Điểm khác biệt đầu tiên dễ thấy nhất là số lượng của các tầng cấp. Mô hình của Bộ Quốc Phòng Mỹ (DoD model) với bộ giao thức IP chỉ có bốn hoặc năm tầng (tầng liên kết có thể được coi như là một tầng riêng biệt, song cũng có thể được phân tách ra thành hai tầng, tầng vật lý và tầng liên kết dữ liệu) trong khi đó mô hình OSI lại dùng bảy tầng. So sánh tên của chúng một cách chặt chẽ cho chúng ta thấy rằng, hai tầng tầng trình diễn và tầng phiên đã gộp lại vào tầng ứng dụng. Các tầng của mô hình OSI không có nhiều chức năng đủ để phản ánh hoạt động của mô hình TCP/IP. Chẳng hạn, cần phải có một tầng nằm giữa tầng mạng và tầng vận tải để chỉ ra nơi tồn tại của giao thức ICMP (Internet Control Message Protocol) và IGMP (Internet Group Management Protocol). Tương tự như vậy cũng cần phải có một tầng ở giữa tầng mạng và tầng liên kết dữ liệu dành cho giao thức ARP (Address Resolution Protocol) và giao thức RARP (Reverse Address Resolution Protocol). Bảng sau tóm tắt một số giao thức và vị trí của chúng trong mô hình OSI. Để thuận tiện, các phần tiếp theo sẽ trình bày các giao thức theo mô hình TCP/IP (vì đây là mô hình đang được áp dụng trên mạng Internet), đôi khi cũng sẽ dùng mô hình OSI để giải thích nguyên lý làm việc của các thiết bị trên mạng. Mô hình Mô hình Tầng Giao thức OSI TCP/IP Tầng ứng Tầng ứng dụng HTTP, SMTP, SNMP, FTP, Telnet, ECHO, 7 dụng SIP, SSH, NFS, RTSP, XMPP, Whois, ENRP Tầng trình 6 XDR, ASN.1, SMB, AFP, NCP diễn Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 24
  25. ASAP, TLS, SSH, ISO 8327 / CCITT X.225, 5 Tầng phiên RPC, NetBIOS, ASP 4 Tầng vận tải Tầng vận tải TCP, UDP, RTP, SCTP, SPX, ATP, IL Tầng Internet IP, ICMP, IGMP, IPX, BGP, OSPF, RIP, 3 Tầng mạng IGRP, EIGRP, ARP, RARP, X.25 Tầng liên kết Tầng truy nhập Ethernet 802.2, Token ring, HDLC, Frame 2 dữ liệu mạng relay, ISDN, ATM, 802.11 WiFi, FDDI, PPP Ethernet 802.3 (10BASE-T, 100BASE-T, 1 Tầng vật lý 1000BASE-T), SONET/SDH, T-carrier/E- carrier, 802.11 2.3 Tên miền và địa chỉ Mỗi con người có thể được xác định theo nhiều cách như: nhận biết qua tên trong giấy khai sinh, số chứng minh thư, số hộ chiếu . Dù có nhiều cách nhận biết để phân biệt mọi người nhưng phương thức nhận biết nào phụ thuộc vào hoàn cảnh. Ví dụ công an sử dụng số chứng minh thư nhân dân chứ không sử dụng tên. Bình thường mọi người thích nhớ tên nhau hơn là chứng minh thư. Giống như con người, máy tính trên mạng cũng có thể được xác định bằng nhiều cách: Tên máy tính hoặc tên miền. Những tên đó tương đối dễ nhớ đối với con người, nhưng cung cấp ít thông tin về vị trí trên mạng (tên miền www.ptit.edu.vn chỉ cho chúng ta biết máy tính đó thuộc Việt Nam). Hơn nữa tên máy tính bao gồm nhiều ký tự - cả chữ cái và chữ số - có độ dài thay đổi nên thiết bị định tuyến khó có thể xử lý được. Vì vậy, máy tính được xác định thông qua địa chỉ logic gọi là địa chỉ IP. Địa chỉ IP gồm có 32 bit (phiên bản 4) hoặc 128 bit (phiên bản 6) và có cấu trúc phân cấp, để đơn giản chúng ta sẽ chỉ nói đến địa chỉ IP phiên bản 4. Địa chỉ IP phân cấp vì khi duyệt địa chỉ từ trái qua phải, chúng ta nhận được thêm nhiều thông tin xác đinh về vị trí của máy tính trên mạng (Vị trí ở trong mạng của các mạng, trong một mạng . . . ). Điều này tương tự khi xét địa chỉ bưu điện từ dưới lên, chúng ta nhận được nhiều thông tin về địa chỉ đó. 2.3.1 Các dịch vụ tên miền Có hai cách để xác định một máy tính: dựa vào tên máy tính hoặc địa chỉ IP. Con người thích sử dụng tên máy dễ nhớ, trong khi thiết bị định tuyến lại sử dụng địa chỉ IP có cấu trúc phân cấp và độ dài cố định. Để dung hoà giữa hai cách cần phải có một dịch vụ chỉ dẫn để chuyển đổi tên máy tính sang địa chỉ IP và đây chính là nhiệm vụ của hệ thống tên miền trên mạng Intemet (DNS). DNS là một cơ sở dữ liệu phân tán được đặt trên một hệ thống phân cấp các máy chủ tên miền và cung cấp dịch vụ thuộc tầng ứng dụng cho phép máy tính và máy chủ tên trao đổi thông tin phục vụ mục đích xác định địa chỉ IP. Giao thức trao đổi tên miền DNS thuộc tầng ứng dung và chạy trên nền giao thức UDP với số hiệu cổng là 53. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 25
  26. Thông thường DNS được các giao thức tầng ứng dụng khác như HTTP, SMTP và FTP sử dụng để xác định địa chỉ IP từ tên máy tính do người dùng đưa vào. Điều gì xảy ra khi người sử dụng muốn truy nhập vào trang www.ptit.edu.vn? Để gửi được bản tin HTTP yêu cầu tới máy chủ web thì máy tính của người sử dụng phải xác định được địa chỉ IP của www.ptit.edu.vn. Điều này được thực hiện như sau: máy tính của người sử dụng chạy ứng dụng DNS. Trình duyệt sẽ lấy ra tên máy tính (www.ptit.edu.vn) từ địa chỉ URL trên trình duyệt và chuyển nó cho tiến trình DNS trên máy trạm. Tiến trình DNS máy trạm gửi một yêu cầu chứa tên miền www.ptit.edu.vn tới máy chủ DNS đã được đăng ký trong cấu hình địa chỉ. Nhận được yêu cầu này, máy chủ DNS sẽ tìm kiếm trong cơ sưor dữ liệu của mình, nếu không tìm thấy sẽ gửi chuyển tiếp yêu cầu đó đến máy chủ tên miền cấp cao hơn. Kết quả là tiến trình DNS máy trạm sẽ nhận được một bản tin trả lời từ máy chủ DNS chứa địa chi IP cần xác định. Sau đó trình duyệt sẽ mở một kết nối TCP tới tiến trình HTTP máy chủ trên máy tính có địa chỉ IP vừa được xác định. Rõ ràng các ứng dụng Internet sử dụng DNS hoạt động chậm đi. Tuy nhiên, địa chỉ IP đã được xác định thường được ghi tạm trong một máy chủ DNS trong một thời gian nhất định và như vậy làm giảm tải cho hệ thống DNS cũng như độ trễ của ứng dụng. Bên cạnh dịch vụ xác định địa chỉ IP từ tên máy, DNS cung cấp một số dịch vụ quan trọng sau: 2.3.1.1 Dịch vụ đặt bí danh cho máy tính Máy tinh có thể có một hoặc nhiều bí danh, ví dụ tên máy chủ trang web Server1.www.ptit.edu.vn có thể có hai bí đanh là www.ptit.edu.vn và ptit.edu.vn. Tên bí danh thường dễ nhớ hơn tên thật. Một ứng dụng có thể yêu cầu DNS xác định tên thật cũng như địa chỉ IP của một tên bí danh. 2.3.1.2 Dịch vụ đặt bí danh cho máy chủ Địa chỉ của thư điện tử cần dễ nhớ. Ví dụ nếu trên máy chủ của học viện Công nghệ bưu chính viễn thông (trang thông tin điện tử là www.ptit.edu.vn) thì địa chỉ hộp thư điện tử của các thành viên sẽ là XXX@ptit.edu.vn. Ứng dụng có thể sử dụng DNS để xác định tên đầy đủ của một bí danh cũng như địa chỉ IP của máy tính đó. Trên thực tế, DNS cho phép đặt tên miền cho các dịch vụ của một máy chủ, ví dụ Học viện Công nghệ Bưu chính viễn thông có tên miền là ptit.edu.vn thì các dịch vụ cơ bản như trang web có tên miền là www.ptit.edu.vn, thư điện tử là mail.ptit.edu.vn 2.3.1.3 Phân tán tải DNS thực hiện việc phân tán tải cho các máy chủ, đặc biệt là các máy chủ web nhân bản (các máy chủ có nội dung giống hệt nhau). Những trang có nhiều người truy cập như yahoo.com được đặt trên nhiều máy chủ giống hệt nhau. Mỗi máy chủ là một hệ thống đầu cuối khác nhau, có địa chỉ IP khác nhau. Đối với các máy chủ giống hệt nhau như vậy, một nhóm địa chỉ IP sẽ gắn với tên đầy đủ của một máy nào đó. Cơ sở dữ liệu DNS chứa toàn bộ nhóm địa chỉ IP đó. Khi máy khách gửi truy vấn DNS để xác định địa chỉ IP thì máy chủ sẽ gửi toàn bộ nhóm địa chỉ IP đó nhưng máy chủ thay đổi thứ tự các địa chỉ IP trong nhóm. Thông thường máy khách gửi bản tin HTTP tới máy tính có địa chỉ Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 26
  27. IP được liệt kê đầu tiên trong nhóm. sự hoán chuyển vị trí các địa chỉ IP mà DNS thực hiện đã phân tải cho các máy chủ. Việc hoán vị của DNS cũng được ở dụng cho email khi nhiều máy chủ thư điện tử có chung bí danh. DNS được đặc tả trong RFC 1034 và RFC 1035 và cập nhật trong một số RFC khác. DNS là hệ thống phức tạp và chúng ta chỉ nghiên cứu một vài khía cạnh của nó. Chi tiết về DNS có thể đọc trong [Abitz 1993]. Giống như các giao thức HTTP, FPT hay SMTP, giao thức DNS nằm ở tầng ứng dụng vì nó hoạt động giữa hai thực thể truyền thông đầu cuối sử dụng mô hình khách/ chủ, sử dụng một giao thức ở tầng vận tải để trao đổi bản tin DNS giữa hai đầu cuối. Tuy nhiên vai trò của DNS khác các ứng dụng Web, FTP hay Email nhiều. DNS không phải ứng dụng được người dùng trực tiếp sử dụng mà DNS chỉ cung cấp một dịch vụ Internet thiết yếu cho các ứng dụng: chuyển đổi tên máy tính sang địa chỉ IP. 2.3.2 Cơ chế hoạt động của dịch vụ tên miền Máy trạm gửi bản tin truy vấn tên miền đến máy chủ DNS đã được đăng ký trong phần cấu hình địa chỉ IP, trong bản tin chứa tên miền cần xác định địa chỉ IP. Sau một khoảng thời gian nào đó – từ vài phần nghìn giây đến vài chục giây, máy trạm nhận được bản tin trả lời của DNS chứa địa chỉ IP cần xác định. Vì vậy, với máy khách thì DNS là một dịch vụ xác định IP đơn giản và dễ hiểu. Nhưng triển khai dịch vụ đó thực sự rất phức tạp, bao gồm nhiều máy chủ tên miền đặt khắp nơi trên thế giới và một giao thức ở tầng ứng dụng xác định cách thức trao đổi thông tin giữa các máy chủ tên miền. Để triển khai DNS, người ta có thể đưa ra một kiến trúc đơn giản sau: có một máy chủ chứa tất cả các ánh xạ tên và địa chỉ IP. Theo thiết kế tập trung này, máy khách chỉ cần gửi tất cả các truy vấn tới máy chủ duy nhất và máy chủ này sẽ trực tiếp trả lời mọi truy vấn. Mặc dù tính đơn giản của thiết kế này rất hấp dẫn nhưng nó hoàn toàn không thích hợp cho mạng Intemet với số lượng lớn và ngày càng tăng các máy tính. Thiết kể tập trung như vậy nẩy sinh một số vấn đề sau: - Điểm hỏng duy nhất: nếu máy chủ tên miền duy nhất ngừng làm việc cũng có nghĩa là toàn bộ mạng Internet ngừng hoạt động. - Khối lượng xử lý lớn: một máy chủ tên miền duy nhất phải xử lý tất cả các truy vấn DNS (cho tất cả các bản tin yêu cầu từ hàng tỉ máy tính trên toàn cầu). - Cơ sở dữ liệu tập trung ở xa: máy chủ tên miền duy nhất không thể gần tất cả các máy khách. Nếu máy chủ tên miền đặt ở Hoa Kỳ thì tất cả truy vấn từ các nước khác phải chuyển tới phía bên kia trái đất và có thể qua một đường kết nối chậm và tắc nghẽn. Hậu quả là các ứng dụng phải chịu độ trễ rất lớn. - Bảo trì: máy chủ tên miền phải ghi nhớ thông tin về tất cả các tên miền trên mạng Intemet. Khi đó cơ sở dữ liệu sẽ rất lớn và máy chủ tên miền phải cập nhật thường xuyên thông tin cho mọi tên miền mới, đồng thời phải giải quyết Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 27
  28. các vấn đề kiểm chứng và xác nhận khi người dùng sử dụng cơ sở dữ liệu tập trung. Như vậy, một cơ sở dữ liệu tập trung trên một máy chủ tên miền duy nhất không phù hợp khi quy mô hệ thống lớn. Do đó, hệ thống máy chủ têm miền được thiết kế phân tán, đó là một ví dụ điển hình về triển khai cơ sở dữ liệu phân tán trên mạng Internet. Để giải quyết vấn đề quy mô mạng , DNS sử dụng nhiều máy chủ tên miền tổ chức phân cấp và phân tán trên toàn cầu. Không có máy chủ tên miền nào chứa tất cả tên và địa chỉ IP các tên miền trên mạng Internet, những thông tin này được phân tán trên nhiều máy chủ tên miền. Có ba loại máy chủ tên miền: máy chủ tên miền cục bộ, máy chủ tên miền gốc và máy chủ tên miền ủy quyền. Các máy chủ tên miền đó trao đổi thông tin với nhau và với các máy tính khác. Máy chủ tên miền cục bộ: Mỗi nhà cung cấp dịch vụ Internet (ISP) đều có máy chủ tên miền cục bộ (còn được gọi là máy chủ tên miền mặc định). Khi máy tính trong cơ quan tạo ra một bản tin truy vấn DNS thì đầu tiên bản tin đó được gửi tới máy chủ tên miền đó. Địa chỉ IP của máy chủ tên miền cục bộ phải được cấu hình trong máy tính của người sử dụng (trong máy tính chạy hệ điều hành windows, gõ lệnh ipconfig /all). Loại máy chủ tên miền thường gần với máy trạm, trong trường hợp tại cơ quan của một tổ chức, nó có thể ở trên cùng mạng nội bộ. Với các ISP thì khoảng cách giữa máy chủ tên miền và các máy tính của người sử dụng chỉ là vài thiết bị định tuyến. Nếu máy tính yêu cầu xác định địa chỉ của một máy tính khác trong cùng một ISP thì máy chủ tên miền cục bộ có thể ngay lập tức xác định được địa chi IP mà không phải liên hệ với bất kỳ máy chủ tên miền nào khác. Máy chủ tên miền gốc: Trên mạng Intemet có 13 máy chủ tên miền gốc, hầu hết đặt tại Bắc Mỹ. Khi máy chủ tên miền cục bộ không có thông tin về tên miền được yêu cầu thì máy chủ tên miền cục bộ sẽ đóng vai trò máy khách DNS và gửi câu hỏi truy vấn tới một trong số các máy chủ tên miền gốc. Nếu máy chủ tên miền gốc có thông tin của tên miền được hỏi, nó sẽ gửi một bản tin trả lời đến máy chủ tên miền cục bộ và sau đó thông tin này được máy chủ tên miền cục bộ gửi trả lời cho máy trạm đã yêu cầu. Nếu máy chủ tên miền gốc không có thông tin tên miền đó, nó sẽ tìm kiếm thông tin về máy chủ tên miền quản lý tên miền đã yêu cầu. Máy chủ tên miền ủy quyền: Mỗi máy tính phải đăng ký tới một máy chủ tên miền ủy quyền. Thông thường máy chủ tên miền ủy quyền một máy tính là một máy chủ tên miền trong miền ISP của máy tính đó (thực tế mỗi máy tính phải có ít nhất hai máy chủ tên miền ủy quyền để đề phòng trường hợp một máy chủ tên miền bị hỏng). Có thể định nghĩa, máy chủ tên miền ủy quyền của một máy tính là máy chủ tên miền luôn lưu trữ bản ghi DNS cho phép xác định địa chỉ IP của máy tính đó từ tên. Khi máy chủ tên miền ủy quyền nhận được truy vấn từ máy chủ tên miền gốc, Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 28
  29. nó sẽ gửi một bản tin DNS trả lời chứa ánh xạ được yêu cầu. Sau đó, máy chủ tên miền gốc gửi ánh xạ đó tới máy chủ và máy chủ tên miền cục bộ lại tiếp tục gửi ánh xạ đó tới máy tính yêu cầu. Nhiều máy chủ tên miền vừa là máy chủ tên miền cục bộ vừa là máy chủ tên miền ủy quyền. Xét ví dụ đơn giản sau. Giả sử trạm muốn có địa chỉ IP của máy tính tên miền là www.yahoo.com, giả sử máy chủ gốc của miền là opendns.com và máy chủ tên miền ủy quyền của www.yahoo.com là dns.yahoo.com. Đầu tiên máy trạm gửi một bản tin truy vấn tới máy chủ tên miền cục bộ dns.vnn.vn. Bản tin đó chứa tên miền www.yahoo.com cần xác định địa chỉ IP. Máy chủ tên miền cục bộ không chứa bản ghi tên miền www.yahoo.com, do đó nó gửi bản tin tới máy chủ tên miền gốc, nhưng nó phân tích phần đuôi của tên miền là .com do đó nó gửi tới máy chủ tên miền gốc chuyên quản lý các tên miền có phần đuôi là .com, trong trường hợp này nó gửi đến máy chủ opendns.com. Máy chủ tên miền opendns.com không chứa bản ghi về tên miền www.yahoo.com nhưng lại chứa địa chỉ IP của máy chủ tên miền ủy quyền dns.yahoo.com của tên miền www.yahoo.com, vì vậy nó trả về địa chỉ IP của máy chủ dns.yahoo.com cho máy chủ tên miền cục bộ dns.vnn.vn. Nhận được địa chỉ IP này, máy chủ tên miền dns.vnn.vn gửi tiếp bản tin đến máy chủ dns.yahoo.com để yêu cầu cung cấp địa chỉ IP của tên miền www.yahoo.com, tại đây máy chủ tên miền dns.yahoo.com có chứa địa chỉ IP của máy chủ www.yahoo.com, nó gửi kết quả cho máy chủ tên miền cục bộ dns.vnn.vn, máy chủ tên miền dns.vnn.vn sẽ chuyển tiếp cho máy trạm và đồng thời lưu địa chỉ này trong cơ sở dữ liệu tạm của nó. Một đặc tính quan trọng của DNS là lưu trữ tạm thời các bản ghi DNS (DNS caching). Trên thực tế, DNS lưu trữ tạm thời để làm giảm độ trễ cũng như làm giảm số bản tin DNS trao đổi trên mạng. Ý tưởng này rất đơn giản: Khi nhận được ánh xạ DNS của máy tính nào đó, bên cạnh việc gửi tiếp bản tin, máy chủ tên miền sẽ lưu ánh xạ này vào bộ nhớ cục bộ (ổ địa cứng hay RAM). Với ánh xạ tên máy - địa chỉ IP được lưu trữ, nếu có một truy vấn khác yêu cầu địa chỉ IP của cùng tên máy mà máy chủ tên miền vừa lưu trữ, máy chủ tên miền sẽ xác định được địa chỉ áp mong muốn, ngay cả khi nó không phải là máy chủ tên miền ủy quyền cho máy tính đó. Để tránh bị lạc hậu, thông tin lưu trữ tạm thời sẽ bị xoá bỏ sau một khoảng thời gian nhất định (thường là 48 giờ). 2.3.3 Bản ghi dịch vụ tên miền Máy chủ tên miền cũng triển khai cơ sở dữ liệu phân tán, ghi lại các bản ghi tài nguyên cho các ánh xạ tên máy một địa chỉ IP. Mỗi bản tin trả lời DNS chứa một hay nhiều bản ghi tài nguyên, chi tiết trong RFC 1034, RFC 1035. Bản ghi tài nguyên gồm 4 trường sau: (Name, Value, Type, TTL). TTL là thời gian tồn tại của bản ghi tài nguyên, dùng để xác định thời điểm có thể xoá bản ghi tài nguyên khỏi bộ nhớ lưu trữ. Ý nghĩa của trường Name và Value phụ thuộc vào trường Type: Nếu Type = A thì Name là tên máy và Value là địa chỉ IP của máy đó. Bản ghi kiểu A là ánh xạ Tên máy - Địa chỉ IP chuẩn. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 29
  30. Nếu Type = NS thì Name là một miền và Value là tên máy của máy chủ tên miền ủy quyền của các máy tính trong miền đó. Bản ghi này thường được sử dụng để gửi tiếp các truy vấn DNS. Nếu Type = CNAME thì Value là tên đầy đủ của máy có tên bí danh đặt trong Name. Bản ghi kiểu này cho phép xác định tên đầy đủ của một máy tính từ tên bí danh. Nếu Type : MX thì Value là tên máy của máy chủ thư điện tử có tên bí danh đặt trong Name. Hình 2.8 Khuôn dạng bản tin DNS Nếu một máy chủ tên miền là máy chủ tên miền ủy quyền cho một máy tính nào đó thì máy chủ tên miền sẽ chứa bản ghi kiểu A của máy tính đó (ngay cả nếu máy chủ tên miền đó không là máy chủ tên miền ủy quyền thì có thể nó chứa bản ghi kiểu A trong bộ nhớ tạm của nó). Nếu máy chủ tên miền không là máy chủ tên miền ủy quyền của máy tính được hỏi thì nó sẽ chứa một bản ghi kiểu NS cho miền của máy tính này và nó cũng có một bản ghi kiểu A xác định địa chỉ IP của máy chủ tên miền của tên miền này đặt trong trường Value của bản ghi NS. Có hai loại bản tin DNS: bản tin yêu cầu và bản tin trả lời, cả hai kiểu bản tin này có chung khuôn dạng minh họa trên hình 2.8. Mười hai byte đầu tiên là phần tiêu đề gồm một số trường sau: Trường đầu tiên là một định danh 16 bit cho mỗi bản tin yêu cầu, 16 bít định danh này được ghi lại vào bản tin trả lời, cho phép máy khách xác định được đó là câu trả lời cho bản tin yêu cầu nào. Có nhiều cờ trong trường Flag (mối cờ ứng với một bit), cờ truy vấn (query/reply flag) xác định bản tin là yêu cầu (0) hay là trả lời (1). Cờ authoritiative được đặt trong bản tin trả lời khi máy chủ tên miền là máy chủ tên miền ủy quyền của tên máy tính cần xác định địa chỉ IP, cờ mong muốn đệ quy truy vấn (recursive-desired query) được đặt khi máy khách (máy trạm hay máy chủ tên miền) mong muốn máy chủ tên miền thực hiện truy vấn đệ quy Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 30
  31. khi nó không có bản ghi đó, cờ chấp nhận đệ quy (recursion-available flag) được đặt trong bản tin trả lời nếu máy chủ tên miền đó hỗ trợ đệ quy. Trong phần tiêu đề cũng có 4 trường số lượng, các trường này xác định số lượng các bản ghi trong 4 phần dữ liệu sau phần tiêu đề. Phần câu hỏi (Question session) chứa thông tin về câu hỏi được tạo ra. Nó bao gồm trường tên chứa tên đang được hỏi và trường kiểu xác định kiểu câu hỏi cho tên máy tính đó (Kiểu A cho tên máy tính, kiểu MX cho máy chủ thư điện tử). Trong bản tin trả lời từ máy chủ tên miền, phần trả lời (answer section) chứa các bản ghi tài nguyên cho tên được yêu cầu trước đó. Mỗi bản ghi tài nguyên có 4 trường: Type (A, NS, CNAME, MX), Name, Value, TTL. Bản tin trả lời có thể có nhiều bản ghi tài nguyên vì tên máy tính có thể ứng với nhiều địa chỉ IP. Phần ủy quyền (authonty section) chứa các bản ghi của các máy chủ ủy quyền. Phần phụ trợ (additional section) chứa các bản ghi khác. Ví dụ trường trả lời trong bản tin trả lời một truy vấn MX sẽ chứa tên đầy đủ của máy chủ thư điện tử có tên bí danh đặt ở trong Name. Phần phụ trợ có thể có một bản ghi kiểu A cung cấp địa chỉ IP cho chính máy chủ thư điện tử đó. Các phần trên mô tả cách thức lấy dữ liệu trong cơ sở dữ liệu DNS. vậy làm thế nào để đưa được dữ liệu vào cơ sở dữ liệu? Cho tới gần đây, nội dung của máy chủ DNS được cấu hình tĩnh, ví dụ, thông qua file cấu hình được người quản trị hệ thống tạo ra gần đây, lựa chọn UPDATE được đưa vào giao thức DNS cho phép dữ liệu được tự động thêm vào hay xoá bỏ khỏi cơ sở dữ liệu thông qua bản tin DNS. RFC 2136 đặc tả quá trình cập nhật động của DNS. 2.4 Nguyên tắc thiết kế Internet Mạng Internet thực chất là mạng của các mạng được kết nối trên toàn cầu, do đó việc thiết kế mạng Internet phải dựa trên mô hình phân cấp. Như vậy chúng ta có thể phân biệt hai loại thiết kế: thiết kế cho mạng diện rộng và thiết kế cho mạng nội bộ. Dù là loại nào thì việc thiết kế đều phải tuân thủ các bước sau: Xác định yêu cầu: Trước khi thiết kế cần phải xác định các yêu cầu đối với mạng bao gồm: - Yêu cầu kỹ thuật. - Yêu cầu về hiệu năng. - Yêu cầu về ứng dụng. - Yêu cầu về quản lý mạng. - Yêu cầu về an ninh và an toàn mạng. - Yêu cầu ràng buộc về tài chính, thời gian thực hiện, yêu cầu về chính trị của dự án, xác định nguồn nhân lực, xác định các tài nguyên đã có và có thể tái sử dụng. Mục đích của giai đoạn này là nhằm xác định mong muốn của khách hàng trên mạng mà chúng ta sắp xây dựng. Những câu hỏi cần được trả lời trong giai đoạn này là: Xây dựng mạng để làm gì? Sử dụng cho mục đích gì? Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 31
  32. Các máy tính nào sẽ được nối mạng? Những người nào sẽ được sử dụng mạng, mức độ khai thác sử dụng mạng của từng người / nhóm người ra sao? Trong tương lai gần (3 đến 5 năm tới) có nối thêm máy tính vào mạng không, nếu có thì nối ở đâu, số lượng bao nhiêu? Phương pháp thực hiện của giai đoạn này là phỏng vấn khách hàng, nhân viên các phòng mạng có máy tính sẽ nối mạng. Thông thường các đối tượng mà phỏng vấn không có chuyên môn sâu hoặc không có chuyên môn về mạng, cho nên hạn chế sử dụng những thuật ngữ chuyên môn để trao đổi với họ. Chẳng hạn nên hỏi khách hàng “Bạn có muốn người trong cơ quan bạn gửi mail được cho nhau không?”, hơn là hỏi “Bạn có muốn cài đặt Mail server cho mạng không? ”. Những câu trả lời của khách hàng thường không có cấu trúc, rất lộn xộn, nó xuất phát từ góc nhìn của người sử dụng, không phải là góc nhìn của kỹ sư mạng. Người thực hiện phỏng vấn phải có kỹ năng và kinh nghiệm trong lĩnh vực này, phải biết cách đặt câu hỏi và tổng hợp thông tin. Một công việc cũng hết sức quan trọng trong giai đoạn này là “Quan sát địa hình” để xác định những nơi mạng sẽ đi qua, khoảng cách xa nhất giữa hai máy tính trong mạng, dự kiến đường đi của dây mạng, quan sát hiện trạng công trình kiến trúc nơi mạng sẽ đi qua. Địa hình đóng vai trò quan trọng trong việc chọn công nghệ và ảnh hưởng lớn đến chi phí xây dựng và vận hành mạng. Chú ý đến ràng buộc về mặt thẩm mỹ cho các công trình kiến trúc khi chúng ta triển khai đường dây mạng bên trong nó. Giải pháp để nối kết mạng cho 2 tòa nhà tách rời nhau bằng một khoảng không phải đặc biệt lưu ý. Sau khi khảo sát địa hình, cần vẽ lại địa hình hoặc yêu cầu khách hàng cung cấp cho chúng ta sơ đồ thiết kế của công trình kiến trúc mà mạng đi qua. Trong quá trình phỏng vấn và khảo sát địa hình, đồng thời ta cũng cần tìm hiểu yêu cầu trao đổi thông tin giữa các phòng ban, bộ phận trong cơ quan khách hàng, mức độ thường xuyên và lượng thông tin trao đổi. Điều này giúp ích ta trong việc chọn băng thông cần thiết cho các nhánh mạng sau này. Phân tích yêu cầu: Khi đã có được yêu cầu của khách hàng, bước kế tiếp cần phải phân tích yêu cầu để xây dựng bảng “Đặc tả yêu cầu hệ thống mạng”, trong đó xác định rõ những vấn đề sau: - Những dịch vụ mạng nào cần phải có trên mạng ? (Dịch vụ chia sẻ tập tin, chia sẻ máy in, Dịch vụ web, Dịch vụ thư điện tử, Truy cập Internet hay không?, ) - Mô hình mạng là gì? (Workgoup hay Client / Server? ) - Mức độ yêu cầu an toàn mạng. - Ràng buộc về băng thông tối thiểu trên mạng. - Xác định số lượng nút mạng để quyết định phương thức phân cấp, chọn kỹ thuật thiết bị chuyển mạch. - Dựa vào cơ cấu tổ chức để phân đoạn vật lý đảm bảo hai yêu cầu an ninh và đảm bảo chất lượng dịch vụ. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 32
  33. - Dựa vào mô hình vật lý để lựa chọn môi trường truyền dẫn. - Dự báo các yêu cầu mở rộng. Thiết kế giải pháp: Người thiết kế cần phải đưa ra hình trạng mạng, bao gồm hình trạng vật lý và hình trạng logic, các cônng nghệ cần sử dụng. Bước kế tiếp trong tiến trình xây dựng mạng là thiết kế giải pháp để thỏa mãn những yêu cầu đặt ra trong bảng Đặc tả yêu cầu hệ thống mạng. Việc chọn lựa giải pháp cho một hệ thống mạng phụ thuộc vào nhiều yếu tố, có thể liệt kê như sau: Kinh phí dành cho hệ thống mạng. Công nghệ phổ biến trên thị trường. Thói quen về công nghệ của khách hàng. Yêu cầu về tính ổn định và băng thông của hệ thống mạng. Ràng buộc về pháp lý. Tùy thuộc vào mỗi khách hàng cụ thể mà thứ tự ưu tiên, sự chi phối của các yếu tố sẽ khác nhau dẫn đến giải pháp thiết kế sẽ khác nhau. Tuy nhiên các công việc mà giai đoạn thiết kế phải làm thì giống nhau, chúng được mô tả như sau: Thiết kế sơ đồ mạng ở mức mô hình liên quan đến việc chọn lựa mô hình mạng, giao thức mạng và thiết đặt các cấu hình cho các thành phần nhận dạng mạng. Mô hình mạng được chọn phải hỗ trợ được tất cả các dịch vụ đã được mô tả trong bảng Đặc tả yêu cầu hệ thống mạng. Mô hình mạng có thể chọn là Workgroup hay Domain (Client/Server) đi kèm với giao thức TCP/IP, NETBEUI hay IPX/SPX . Ví dụ: Một hệ thống mạng chỉ cần có dịch vụ chia sẻ máy in và thư mục giữa những người dùng trong mạng cục bộ và không đặt nặng vấn đề an toàn mạng thì ta có thể chọn Mô hình Workgroup. Một hệ thống mạng chỉ cần có dịch vụ chia sẻ máy in và thư mục giữa những người dùng trong mạng cục bộ nhưng có yêu cầu quản lý người dùng trên mạng thì phải chọn Mô hình Domain. Nếu hai mạng trên cần có dịch vụ mail hoặc kích thước mạng được mở rộng, số lượng máy tính trong mạng lớn thì cần lưu ý thêm về giao thức sử dụng cho mạng phải là TCP/IP. Mỗi mô hình mạng có yêu cầu thiết đặt cấu hình riêng. Những vấn đề chung nhất khi thiết đặt cấu hình cho mô hình mạng là: Định vị các thành phần nhận dạng mạng, bao gồm việc đặt tên cho Domain, Workgroup, máy tính, định địa chỉ IP cho các máy, định cổng cho từng dịch vụ. Phân chia mạng con, thực hiện tìm đường đi cho thông tin trên mạng. Cần phải xây dựng chiến lược khai thác và quản lý tài nguyên mạng ,chiến lược này nhằm xác định ai được quyền làm gì trên hệ thống mạng. Thông thường, người dùng trong mạng được nhóm lại thành từng nhóm và việc phân quyền được thực hiện trên các nhóm người dùng. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 33
  34. Căn cứ vào sơ đồ thiết kế mạng ở mức mô hình, kết hợp với kết quả khảo sát địa hình bước kế tiếp ta tiến hành thiết kế mạng ở mức vật lý. Sơ đồ mạng ở mức vật lý mô tả chi tiết về vị trí đi dây mạng ở địa hình, vị trí của các thiết bị nối kết mạng như Hub, Switch, Router, vị trí các máy chủ và các máy trạm. Từ đó đưa ra được một bảng dự trù các thiết bị mạng cần mua. Trong đó mỗi thiết bị cần nêu rõ: Tên thiết bị, thông số kỹ thuật, đơn vị tính, đơn giá, Lựa chọn phần cứng, phần mềm: Dựa trên các phân tích yêu cầu và kinh phí dự kiến cho việc triển khai để lựa chọn thiết bị của các nhà cung cấp thiết bị mạng, phần mềm hệ điều hành và các phần mềm ứng dụng. Một mô hình mạng có thể được cài đặt dưới nhiều hệ điều hành khác nhau. Chẳng hạn với mô hình Domain, ta có nhiều lựa chọn như: Windows NT, Windows 2003, Netware, Unix, Linux, Tương tự, các giao thức thông dụng như TCP/IP, NETBEUI, IPX/SPX cũng được hỗ trợ trong hầu hết các hệ điều hành. Chính vì thế ta có một phạm vi chọn lựa rất lớn. Quyết định chọn lựa hệ điều hành mạng thông thường dựa vào các yếu tố như: Giá thành phần mềm của giải pháp. Sự quen thuộc của khách hàng đối với phần mềm. Sự quen thuộc của người xây dựng mạng đối với phần mềm. Hệ điều hành là nền tảng để cho các phần mềm sau đó vận hành trên nó. Giá thành phần mềm của giải pháp không phải chỉ có giá thành của hệ điều hành được chọn mà nó còn bao gồm cả giá thành của các phầm mềm ứng dụng chạy trên nó. Hiện nay có 2 xu hướng chọn lựa hệ điều hành mạng: các hệ điều hành mạng của Microsoft Windows hoặc các phiên bản của Unix, Linux. Sau khi đã chọn hệ điều hành mạng, bước kế tiếp là tiến hành chọn các phần mềm ứng dụng cho từng dịch vụ. Các phần mềm này phải tương thích với hệ điều hành đã chọn. Tính toán giá thành: Tính toán giá thành để đảm bảo các chỉ tiêu kỹ thuật, các yêu cầu của ứng dụng, tính khả mở của hệ thống. Việc tính toán giá thành cần phải xem xét tới yếu tố đầu tư ban đầu và chi phí phải trả trong quá trình vận hành hệ thống. Triển khai mẫu thử nghiệm: Triển khai ở quy mô nhỏ nhưng vẫn minh họa được toàn bộ các yêu cầu về kỹ thuật, yêu cầu về ứng dụng làm cơ sở cho việc đánh giá khả năng và giá thành của mạng trước khi triển khai trên diện rộng. Khi bản thiết kế đã được thẩm định, bước kế tiếp là tiến hành lắp đặt phần cứng và cài đặt phần mềm mạng theo thiết kế. Cài đặt phần cứng liên quan đến việc đi dây mạng và lắp đặt các thiết bị nối kết mạng (Hub, Switch, Router) vào đúng vị trí như trong thiết kế mạng ở mức vật lý đã mô tả. Tiến trình cài đặt phần mềm bao gồm: Cài đặt hệ điều hành mạng cho các máy chủ, các máy trạm Cài đặt và cấu hình các dịch vụ mạng. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 34
  35. Tạo người dùng, phân quyền sử dụng mạng cho người dùng. Tiến trình cài đặt và cấu hình phần mềm phải tuân thủ theo sơ đồ thiết kế mạng mức mô hình đã mô tả. Việc phân quyền cho người dùng pheo theo đúng chiến lược khai thác và quản lý tài nguyên mạng. Nếu trong mạng có sử dụng router hay phân nhánh mạng con thì cần thiết phải thực hiện bước xây dựng bảng định tuyến trên các router và trên các máy tính. Kiểm thử và đánh giá: Sau khi đã cài đặt xong phần cứng và các máy tính đã được nối vào mạng, bước kế tiếp là kiểm tra sự vận hành của mạng. Trước tiên, kiểm tra sự nối kết giữa các máy tính với nhau. Sau đó, kiểm tra hoạt động của các dịch vụ, khả năng truy cập của người dùng vào các dịch vụ và mức độ an toàn của hệ thống. Nội dung kiểm thử dựa vào bảng đặc tả yêu cầu mạng đã được xác định lúc đầu. Đối chiếu với các yêu cầu xác định ban đầu, nếu không đáp ứng thì phải lặp lại các bước trên để tìm ra giải pháp tối ưu nhất có thể. Đánh giá bản thiết kế mạng cần phải dựa trên các tiêu chí sau: - Đáp ứng yêu cầu người sử dụng - Giá thành thấp - Dễ cài đặt - Dễ mở rộng - Dễ cô lập trong trường hợp xảy ra lỗi. Đối với thiết kế cho mạng diện rộng (thường là nhiệm vụ của các nhà cung cấp dịch vụ Internet), người ta chia thành ba lớp sau: Lớp lõi: Lớp lõi là trục xương sống của mạng thường dùng các bộ chuyển mạch có tốc độ cao, nó yêu cầu độ tin cậy cao, có công suất dư thừa, có khả năng tự chịu lỗi, có khả năng thích nghi cao, đáp ứng nhanh, dễ quản lý, có khả năng lọc gói, hay lọc các tiến trình đang truyền trong mạng. Lớp phân phối: Lớp phân phối là gianh giới giữa lớp truy nhập và lớp lõi của mạng. lớp phân tán thực hiện các chức năng đảm bảo gửi dữ liệu đến từng phân đoạn mạng, đảm bảo an ninh-an toàn, phân đoạn mạng theo nhóm công tác, chia miền, định tuyến giữa các mạng, chuyển môi trường truyền dẫn, định tuyến giữa các miền, tạo biên giới giữa các miền trong định tuyến tĩnh và động, thực hiện các bộ lọc gói tin, thực hiện các cơ chế đảm bảo chất lượng dịch vụ. Lớp truy nhập: Lớp truy nhập cung cấp các khả năng truy nhập cho người dùng cục bộ hay từ xa truy nhập vào mạng, thường được thực hiện bằng các bộ chuyển mạch trong một khu vực nhỏ. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 35
  36. 2.5 Các yếu tố tạo nên hiệu năng mạng Hiệu năng mạng là khái niệm cho biết hiệu suất hoạt động của hệ thống mạng. Hiệu năng chủ yếu được xác định bởi sự kết hợp của nhiều yếu tố, có những yếu như: Băng thông, thông lượng, thời gian đáp ứng, độ trễ, độ tin cậy, tỉ lệ lỗi, tốc độ xử lý của phần mềm ứng dụng, tính sẵn sàng của hệ thống. Tuỳ theo mục đích nghiên cứu cụ thể, hiệu năng có thể chỉ bao gồm một nhân tố nào đó hoặc là sự kết hợp một số trong các nhân tố nêu trên. 2.5.1 Các yếu tố đánh giá hiệu năng mạng Có thể phân các yếu tố đánh giá hiệu năng thành hai loại: các yếu tố hướng tới người sử dụng và các yếu tố hướng tới hệ thống. Đối với người sử dụng, thời gian đáp ứng là yếu tố quan trọng nhất, đặc biệt trong các hệ thống thời gian thực hoặc các môi trường hệ thống tương tác. Đó là khoảng thời gian từ khi gửi một yêu cầu cho đến khi nhận được kết quả chính xác. Trong các hệ thống tương tác, đôi khi người ta sử dụng yếu tố thời gian phản ứng của hệ thống thay cho thời gian đáp ứng, yếu tố này được tính bằng khoảng thời gian từ khi dữ liệu yêu cầu đến được hệ thống cho đến khi yêu cầu chứa trong dữ liệu đó nhận được khe thời gian phục vụ đầu tiên. Đây là yếu tố thể hiện mức độ hiệu dụng của bộ lập lịch của hệ thống trong việc nhanh chóng cung cấp dịch vụ cho một yêu cầu mới đến. Trong các hệ thống mạng máy tính, các đại lượng thời gian đáp ứng, thời gian phản ứng của hệ thống đều được xem là các biến ngẫu nhiên, vì vậy người ta thường nói về phân bố, kỳ vọng, phương sai của chúng. Các yếu tố hướng tới hệ thống điển hình là băng thông, thông lượng và thời gian trễ. Băng thông được định nghĩa là lượng thông tin tối đa có thể chuyển tải trên mạng trong một đơn vị thời gian, trong khi đó thông lượng được định nghĩa là lượng thông tin thực tế được vận chuyển qua mạng trong một đơn vị thời gian. Đơn vị thông tin ở đây có thể là bit, byte hay gói số liệu Nếu các đơn vị thông tin đi vào mạng theo một cơ chế độc lập với trạng thái của mạng, thì thông lượng cũng chính bằng tốc độ đến trung bình nếu mạng vẫn còn có khả năng vận chuyển, không dẫn đến trạng thái bị tắc nghẽn. Một số trường hợp người ta sử dụng đại lượng hệ số sử dụng đường truyền, đó là tỉ số của thông lượng trên băng thông. Thời gian trễ là thời gian trung bình để vận chuyển một gói số liệu qua mạng từ nguồn tới đích. Cũng có trường hợp người ta sử dụng đại lượng thời gian trễ chuẩn hoá, đó là tỉ số của thời gian trễ trên một tham số thời gian nào đó, thí dụ thời gian cần thiết để truyền một gói tin. 2.5.2 Vai trò của việc đánh giá hiệu năng mạng máy tính Trong suốt lịch sử phát triển của mạng máy tính, vấn đề đánh giá và dự đoán hiệu năng mạng luôn thu hút sự quan tâm của những người nghiên cứu và thiết kế mạng, mục đích chính là để nắm được và cải thiện đặc trưng chi phí và hiệu năng. Yêu cầu đánh giá và dự đoán hiệu năng mạng đặt ra ngay từ khi người ta thiết kế kiến trúc của hệ thống cho đến khi mạng đã được lắp đặt và đưa vào hoạt động. Trong giai đoạn đầu của quá trình thiết kế, người ta thường phải dự đoán hai điều: Thứ nhất, các ứng dụng sẽ chạy trên mạng và các yêu cầu dịch vụ mà các ứng dụng này đòi hỏi hệ thống mạng phải đáp ứng, thứ hai lựa chọn Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 36
  37. kiến trúc dựa trên các công nghệ phần cứng và phần mềm sẽ được phát triển và đưa ra thị trường trong tương lai khi hệ thống mạng bước vào giai đoạn triển khai thực hiện. Trong giai đoạn thiết kế chi tiết, việc dự đoán và đánh giá hiệu năng sẽ trở nên cụ thể hơn. Thí dụ sẽ chọn đường truyền vật lý như thế nào, các đặc tính của đường truyền được chọn sẽ ảnh hưởng thế nào đến hiệu năng của mạng. Các kỹ thuật được dùng để dự đoán và đánh giá hiệu năng mạng trong giai đoạn thiết kế và triển khai thực hiện có khi chỉ là các tính toán bằng tay, nhưng cũng có khi là các mô phỏng rất tinh vi. Việc so sánh hiệu năng dự đoán với hiệu năng thực tế đạt được thường giúp cho nhà nghiên cứu thấy được các khiếm khuyết chính trong thiết kế hoặc các lỗi trong việc lập trình hệ thống. Ngày nay, việc dự đoán và đánh giá hiệu năng thường được người ta coi là một phần không thể thiếu được của công việc thiết kế và triển khai thực hiện hệ thống. Sau khi triển khai hệ thống mạng, hai công việc quan trọng cần phải thực hiện: Cấu hình mạng và tinh chỉnh mạng. Cấu hình mạng: Sau khi mạng đã được triển khai thực hiện, việc dự đoán và đánh giá hiệu năng mạng đối với các ứng dụng cụ thể cũng có ý nghĩa quan trọng. Nhằm đạt được sự tối ưu hoá, nhà sản xuất phải chỉ ra được các cách kết hợp và tổ chức phần cứng và phần mềm mạng để đem lại một giải pháp tốt nhất cho các yêu cầu của khách hàng, việc này thường được gọi là định cấu hình mạng. Mặc dù có thể vẫn sử dụng các công cụ và phương pháp đã được sử dụng trong giai đoạn phát triển hệ thống, nhưng cần phải bổ sung thêm một số yếu tố nữa. Đặc điểm môi trường của người sử dụng sản phẩm mạng cần được biểu diễn bằng các tham số định lượng và đưa vào mô hình mô phỏng hiệu năng. Điều chỉnh hiệu suất hoạt động của hệ thống: Sau khi hệ thống mạng đã được lắp đặt và đi vào vận hành, người quản trị hệ thống cần phải làm sao cho hệ thống đạt được hiệu năng hoạt động tốt nhất, việc này được gọi là điều chỉnh hiệu suất hoạt động của hệ thống. Đối với các hệ thống mạng, việc tìm ra được điểm làm việc tối ưu và ổn định trên toàn mạng là rất khó, nó phụ thuộc vào nhiều yếu tố khác nhau và đòi hỏi kinh nghiệm thực tiễn của người quản trị hệ thống. 2.5.3 Các phương pháp đánh giá hiệu năng mạng Có nhiều phương pháp đánh giá hiệu năng mạng máy tính, có thể chia chúng làm ba loại: mô hình giải tích, mô phỏng và phương pháp đo lường. Mô hình giải tích: Trong các mạng chuyển mạch gói, gói tin là các khối dữ liệu có chiều dài thay đổi được, được truyền qua mạng từ nguồn tới đích theo một con đường nào đó do hệ thống mạng quyết định. Các tài nguyên mạng sẽ được chia sẻ giữa các gói số liệu khi chúng đi qua mạng. Số lượng và chiều dài các gói số liệu đi vào hoặc đi qua mạng tại mọi thời điểm, thời gian kéo dài các cuộc kết nối v.v., tất cả các tham số này nói chung thay đổi theo thời gian và hiện trạng của hệ thống mạng. Vì vậy, để nêu ra các tiêu chuẩn đo lường định lượng về hiệu năng, cần Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 37
  38. phải sử dụng các khái niệm về xác suất để nghiên cứu sự tương tác của chúng với mạng. Lý thuyết hàng đợi đóng vai trò then chốt trong việc phân tích mạng, bởi vì đó là công cụ toán học thích hợp nhất để phát biểu và giải các bài toán về hiệu năng. Theo phương pháp này, chúng ta viết ra các mối quan hệ hàm giữa các tiêu chuẩn hiệu năng cần quan tâm và các tham số của hệ thống mạng bằng các phương trình có thể giải được bằng giải tích. Mô phỏng: Mô phỏng là sự bắt chước một hay nhiều khía cạnh của sự vật có thực, bằng một cách nào đó càng giống càng tốt. Trong vấn đề đánh giá hiệu năng mạng, mô phỏng được hiểu là một kỹ thuật sử dụng máy tính điện tử số để làm các thí nghiệm về mạng có liên quan đến thời gian. Mô hình mô phỏng giả lập hành vi hoạt động của mạng, ngay cả khi người nghiên cứu chỉ quan tâm đến giá trị trung bình của một số độ đo trong trạng thái dừng. Cấu trúc và độ phức tạp của bộ mô phỏng phụ thuộc vào phạm vi của thí nghiệm mô phỏng, nó thường được xây dựng có cấu trúc, cho phép mô-đun hoá chương trình mô phỏng thành tập các chương trình con, sao cho việc sửa đổi hoặc bổ sung các chương trình con được dễ dàng. Ngoài ra, chương trình mô phỏng cũng phải được xây dựng sao cho đạt được tốc độ cao nhằm làm giảm thời gian chạy mô phỏng càng nhiều càng tốt. Phương pháp đo lường: Đây là phương pháp xác định hiệu năng dựa trên việc đo các tham số mạng cấu thành độ đo hiệu năng cần quan tâm trên mạng thực, việc đo hiệu năng nhằm thực hiện các nhiệm vụ sau: - Giám sát hiệu năng của mạng. - Thu thập số liệu để lập mô hình dữ liệu vào cho các phương pháp đánh giá hiệu năng bằng giải tích hoặc mô phỏng. - Kiểm chứng các mô hình khác dựa trên các số liệu đo được. Đo hiệu năng không chỉ quan trọng trong các giai đoạn triển khai thực hiện và tích hợp hệ thống mà còn cả trong các giai đoạn lắp đặt và vận hành hệ thống. Bởi vì sau khi lắp đặt và đưa vào sử dụng, mỗi một hệ thống cụ thể sẽ có một tải hệ thống và các độ đo hiệu năng được quan tâm riêng của nó, cho nên sau khi lắp đặt, người ta thường phải điều chỉnh cấu hình cho phù hợp. Các tham số cấu hình sẽ được chọn sau khi các phép đo hiệu năng cho thấy các tham số cấu hình này làm cho hệ thống đạt được hiệu năng tốt nhất. Trong thực tế, mọi người đều thừa nhận tầm quan trọng của việc đo và đánh giá hiệu năng. Chúng ta có thể thấy rõ điều này qua việc, hầu như tất cả các hệ thống mạng đều tích hợp bên trong nó các công cụ đo và đánh giá hiệu năng; nhờ đó có thể đo hiệu năng bất cứ lúc nào trong suốt thời gian tồn tại của hệ thống. So sánh các phương pháp đánh giá hiệu năng: Phương pháp mô hình Giải tích: Sử dụng mô hình giải tích có thể thay đổi các tham số hệ thống và cấu hình mạng trong một miền rộng với chi phí thấp mà vẫn có thể đạt được các kết quả mong muốn. Tuy nhiên, các mô hình giải tích mà chúng ta xây dựng thường là không thể giải được nếu không được đơn Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 38
  39. giản hoá nhờ các giả thiết, hoặc được phân rã thành các mô hình nhiều cấp. Các mô hình giải được thường rất đơn giản hoặc khác xa thực tế, cho nên phương pháp này thường chỉ được sử dụng ngay trong giai đoạn đầu của việc thiết kế mạng, giúp cho người thiết kế dự đoán được các giá trị giới hạn của hiệu năng. Ngoài ra, các kết quả của phương pháp này bắt buộc phải được kiểm nghiệm bằng kết quả của các phương pháp khác, như mô phỏng hoặc đo. Phương pháp mô phỏng: Trong những trường hợp mô hình giải tích mà chúng ta nhận được, dù đã được đơn giản hoá, hoặc phân rã nhưng vẫn không thể giải được bằng toán học, khi đó chúng ta sẽ chỉ còn một phương pháp là mô phỏng. Phương pháp mô phỏng có thể được sử dụng ngay trong giai đoạn đầu của việc thiết kế hệ thống mạng cho đến giai đoạn triển khai thực hiện và tích hợp hệ thống. Phương pháp này nói chung, đòi hỏi một chi phí rất cao cho việc xây dựng bộ mô phỏng cũng như kiểm chứng tính đúng đắn của nó. Tuy nhiên, sau khi đã xây dựng xong bộ mô phỏng, người nghiên cứu có thể tiến hành chạy chương trình mô phỏng bao nhiêu lần tuỳ ý, với độ chính xác theo yêu cầu và chi phí cho mỗi lần chạy thường là rất thấp. Các kết quả mô phỏng nói chung vẫn cần được kiểm chứng, bằng phương pháp giải tích hoặc đo lường. Phương pháp mô hình giải tích và mô hình mô phỏng đóng vai trò rất quan trọng trong việc thiết kế và triển khai thực hiện hệ thống, đặc biệt là ở giai đoạn đầu của dự án. Phương pháp đo lường: Phương pháp đo chỉ có thể thực hiện được trên đang hoạt động, nó đòi hỏi chi phí cho các công cụ đo và cho việc tiến hành đo. Việc đo cần được tiến hành tại nhiều điểm trên mạng thực ở những thời điểm khác nhau và cần lặp đi lặp lại trong một khoảng thời gian đủ dài, thậm chí có thể dài đến hàng tháng. Ngoài ra, người nghiên cứu phải có kiến thức về lý thuyết thống kê thì mới có thể rút ra được các kết luận hữu ích từ các số liệu thu thập được. Mặc dầu vậy, phương pháp đo lường vẫn có thể không phát hiện hoặc dự đoán được các hiện tượng đặc biệt của mạng. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 39
  40. CHƯƠNG 3: TẦNG ỨNG DỤNG 3.1 Các khái niệm và cài đặt các giao thức tầng ứng dụng Ứng dụng mạng là động lực phát triển của mạng máy tính, đã có nhiều phát minh đột phá trong việc phát triển các ứng dụng mạng. Bắt đầu từ thập niên 60, những ứng dụng đơn giản tương tác với người dùng qua chế độ dòng lệnh (text- based) đã trở nên phổ biến như truy cập máy tính từ xa (telnet), thư điện tử (email), truyền tập tin (ftp), nhóm thông tin (newsgroup), và trò chuyện từ xa (chat). Hiện nay, những ứng dụng đa phương tiện phức tạp hơn như World Wide Web, điện thoại trực tuyến, hội thảo từ xa, chia sẻ tập tin ngày càng trở nên quen thuộc. Mặc dù chương trình ứng dụng mạng có nhiều loại khác nhau, có thể có nhiều thành phần tương tác với nhau, nhưng lõi của chúng là phần mềm. Phần mềm ứng dụng mạng được cài đặt phân tán trên các thiết bị đầu cuối của người sử dụng như máy tính, điện thoại di động Ví dụ, với việc truy nhập trang tin điện tử có hai phần mềm tương tác với nhau: phần mềm trình duyệt trong máy tính của người dùng và phần mềm cho phép truy nhập vào nội dung được cài đặt trên máy chủ web. Việc kết nối được thực hiện giữa các tiến trình chứ không phải giữa các chương trình phần mềm, tiến trình là một chương trình chạy trên thiết bị đầu cuối. Khi các tiến trình chạy trên cùng một thiết bị, chúng sẽ trao đổi dữ liệu với nhau thông qua cơ chế truyền thông liên tiến trình, hệ điều hành của thiết bị đầu cuối người sử dụng sẽ kiểm soát cơ chế này. Việc kết nối như vậy sẽ được thực hiện bằng cách trao đổi bản tin qua mạng máy tính. Tiến trình gửi sẽ tạo và gửi bản tin qua mạng, tiến trình nhận sẽ nhận bản tin và có thể phản hồi lại bằng cách gửi một bản tin trả lời. Ứng dụng mạng có các giao thức định nghĩa khuôn dạng, thứ tự trao đổi các bản tin cũng như hành vi của mỗi bên khi nhận được bản tin. 3.1.1 Mô hình dịch vụ của tầng ứng dụng Cần phân biệt ứng dụng mạng và giao thức tầng ứng dụng, giao thức tầng ứng dụng chỉ và một phần (cho dù là phần quan trọng) của ứng dụng mạng. Ví dụ Web là ứng dụng mạng cho phép người dùng lấy các thông tin từ máy chủ web nhưng để làm được điều đó thì ứng dụng mạng phải sử dụng nhiều giao thức khác nhau của tầng ứng dụng. Ứng dụng mạng bao gồm nhiều thành phần, như tiêu chuẩn định dạng văn bản (HTML), trình duyệt Web (Netscape Navigator hay Microsoft Internet Explorer), phần mềm máy chủ web (Apache, Microsoft, và Netscape), và giao thức tầng ứng dụng. Giao thức tầng ứng dụng của Web - HTTP (Hypertext Transfer Protocol, RFC 2616), định nghĩa cách thức chuyển bản tin giữa trình duyệt và máy chủ web, như vậy HTTP chỉ là một phần của ứng dụng Web. Một ví dụ khác là ứng dụng thư điện tử, nó cũng bao gồm nhiều thành phần: máy chủ thư điện tử có chức năng như một hòm thư, máy chủ đọc thư điện tử cho phép người dùng đọc và gửi thư, chuẩn định nghĩa cấu trúc của thư Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 40
  41. điện tử và giao thức tầng ứng dụng định nghĩa cách thức chuyển bản tin giữa máy chủ thư điện tử và máy chủ đọc thư điện tử, cũng như ý nghĩa của một số trường trong thư (ví dụ các tiêu đề thư : người nhận, người gửi ). Giao thức tầng ứng dụng cho thư điện tử là SMTP (Simple Mail Transfer Protocol, RFC 821). Do đó, giao thức SMTP chỉ là một phần của ứng dụng thư điện tử. Giao thức tầng ứng dụng định nghĩa cách thức truyền bản tin giữa các tiến trình ứng dụng chạy trên các thiết bị khác nhau, nó xác định: - Kiểu bản tin trao đổi, ví dụ như bản tin yêu cầu hay bản tin trả lời. - Cú pháp của bản tin, ví dụ các trường trong bản tin cũng như cách xác định chúng. - Ý nghĩa của các trường. - Qui tắc xác định tiến trình gửi và trả lời bản tin khi nào và như thế nào. Hình 3.1 Các ứng dụng trên mạng Nhiều giao thức tầng ứng dụng được đặc tả trong các, ví dụ: đặc tả của HTTP là HTTP RFC 2616. Nếu người thiết kế trình duyệt tuân theo các qui tắc của HTTP RFC 2616, trình duyệt sẽ có thể lấy được các trang WEB từ bất kỳ máy chủ web nào tuân theo các qui tắc của RFC 2616. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 41
  42. 3.1.2 Mô hình khách chủ Trong mô hình khách/chủ (Client/Server), một hay một số máy tính được thiết lập để cung cấp các dịch vụ như file server, mail server, Web server, Printer server, Các máy tính được thiết lập để cung cấp các dịch vụ được gọi là Server, còn các máy tính truy cập và sử dụng dịch vụ thì được gọi là Client. Giao thức ứng dụng mạng thường chia ra hai: máy khách và máy chủ, phần máy khách trong thiết bị liên lạc với phần máy chủ trong một thiết bị khác. Ví dụ: trình duyệt Web thuộc máy khách và phần cài đặt trang web thuộc máy chủ. Trong nhiều ứng dụng, máy tính sẽ thực hiện cả phần máy khách và phần máy chủ của ứng dụng. 3.1.3 Mô hình ngang hàng Trong mô hình ngang hàng (peer-to-peer)các máy tính trong mạng có thể hoạt động vừa như một Client vừa như một Server. Ví dụ xét một phiên làm việc Telnet giữa máy A và máy B. Nếu máy A bắt đầu trước (có nghĩa là người dùng ở máy A đăng nhập vào máy B), khi đó máy A chạy phía máy khách và máy B chạy phía máy chủ của ứng dụng. Mặt khác, nếu máy B bắt đầu trước thì máy B chạy phía máy khách của ứng dụng. FTP - được dùng để truyền tập tin giữa hai máy là ví dụ khác. Sau khi thiết lập phiên làm việc FTP giữa hai máy tính, mỗi máy đều có thể truyền tập tin tới máy kia trong suốt phiên làm việc. Tuy nhiên giống như hầu hết các ứng dụng mạng, máy nào bắt đầu trước được coi là máy khách. hơn nữa, máy tính có thể chạy cả phía máy khách và máy chủ tại cùng một thời điểm. Ví dụ: máy chủ thư điện tử đóng vai trò máy khách khi gửi thư và đóng vai trò máy chủ của khi nhận thư. 3.2 Các giao thức thường dùng tại lớp ứng dụng Các ứng dụng mạng ngày càng đa dạng và phong phú, phần này sẽ trình bày một số giao thức dùng trong các ứng dụng phổ biến: Web, truyền tập tin, thư điện tử và dịch vụ tên miền. Web là ứng dụng đầu tiên và vì Web được sử dụng phổ biến và giao thức tầng ứng dụng của nó - HTTP, tương đối đơn giản và minh họa nhiều đặc trưng cơ bản của giao thức. Tiếp theo là ứng dụng truyền tập tin, bởi vì ứng dụng này có nhiều đặc điểm trái ngược với HTTP. Chúng ta cũng sẽ nghiên cứu thư điện tử, một trong những ứng dụng đầu tiên và thông dụng nhất của Internet. Thư điện tử ngày nay sử dụng nhiều giao thức tầng ứng dụng. Web, truyền tập tin, và thư điện tử đều yêu cầu một dịch vụ truyền đáng tin cậy, không có yêu cầu thời gian và yêu cầu về băng thông. Do vậy ba ứng dụng này sử dụng TCP ở tầng vận tải. Ứng dụng thứ tư là DNS (Domain Nam System) cung cấp dịch vụ chuyển đổi tên miền thành địa chỉ IP. Người dùng không tương tác trực tiếp với DNS mà yêu cầu dịch vụ DNS gián tiếp thông qua các ứng dụng khác (ví dụ Web, truyền file và thư điện tử). DNS minh họa rõ việc triển khai một cơ sở dữ liệu phân tán trên mạng như thế nào. 3.2.1 Giao thức truy nhập trang web HTTP Cho đến những năm 1990, Internet chỉ được sử dụng trong các cơ quan nghiên cứu, các trường đại học với các dịch vụ đơn giản như truy cập từ xa, Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 42
  43. truyền tập tin, nhận và gửi thư điện tử. Mặc dù các ứng dụng này đã phổ biến - nhưng Internet về cơ bản vẫn chỉ được biết tới trong cộng đồng nghiên cứu. Vào đầu thập niên 90, ứng dụng quan trọng nhất của Internet - World Wide Web xuất hiện, và nhanh chóng được mọi người chấp nhận. Nó thay đổi cách thức tương tác giữa con người và môi trường làm việc. Chính điều này đã giúp đưa Intemet từ một trong rất nhiều mạng thông tin (ví dụ mạng trực tuyến Prodigy, American Onlie hay Compuserve, hệ thống thông tin quốc gia : Minitee/Tranpac ở Pháp, Private X25, Frame Relay) thành một mạng lớn nhất toàn cầu. Lịch sử phát triển của ngành công nghệ viễn thông ảnh hưởng lớn đến xã hội loài người. Công nghệ đầu tiên là điện thoại - được phát minh vào năm 1870. Điện thoại cho phép hai người nói chuyện trực tiếp mà không cần ở trong cùng một vùng. Nó có những ảnh hưởng cả tốt lẫn xấu đến xã hội. Công nghệ tiếp theo là truyền thanh, truyền hình - ra đời vào những năm 1920-1930, giúp con người thu nhận một tượng thông tin rất lớn bằng âm thanh và hình ảnh, và tác động lớn đến xã hội. Có lẽ công nghệ thứ ba làm thay đổi cuộc sống và công việc của con người là Web. Sức lôi cuốn của Web đối với con người là ở chỗ Web hoạt động theo yêu cầu, nghĩa là có thể nhận được thông tin cần thiết vào các thời điểm cần thiết. Điều này khác so với công nghệ quảng bá (truyền thanh, truyền hình) chỉ phát đi những nội dung có sẵn tại những thời điểm định trước. Ngoài ra Web có nhiều đặc điểm lý thú khác. Ai cũng có thể dễ dàng trở thành các nhà xuất bản; các siêu liên kết và các công cụ tìm kiếm giúp ta tìm kiểm qua nhiều trang web. Các hình ảnh đồ họa và hoạt hình khuấy động thị giác. Các thành phần khác như: Form, Java applet, Active X cho phép tương tác tới các website khác. 3.2.1.1 Tổng quan về giao thức HTTP Hyper Text Transfer Protocol (HTTP) - giao thức tầng ứng dụng của Web - là trái tim của Web. HTTP được triển khai trên cả hai phía máy khách và máy chủ. Các tiến trình máy khách và máy chủ trên các hệ thống đầu cuối khác nhau giao tiếp với nhau thông qua việc trao đổi các bản tin HTTP. HTTP quy định cấu trúc bản tin cũng như cách thức trao đổi bản tin giữa máy khách và máy chủ. Trước khi nói về HTTP, chúng ta hãy nói lại các thuật ngữ về web. Trang Web (webpage - hay còn gọi là một tập tin) chứa các đối tượng (Object). Đối tượng đơn giản chỉ là một file như file HTML, file ảnh JPEG, file ảnh GIF file java applet, một đoạn âm thanh Đối tượng được xác định qua địa chỉ URL. Trang Web chứa một file HTML cơ sở và tham chiếu đến các đối tượng khác. Ví dụ một trang web chứa một tập tin HTML văn bản và 5 đối tượng ảnh JPEG khi đó trang web cỏ 6 đối tượng: 1 file văn bản HTML và 5 file ảnh. File HTML cơ sở này tham chiếu đến các đối tượng khác thông qua địa chỉ URL. Mỗi địa chỉ URL có hai thành phần là: tên của máy chủ và đường dẫn của đối tượng. Đây là một địa chỉ URL www.ptit.edu.vn/Portals/0/ptitlogo72.gif www.ptit.edu.vn là tên máy chủ và Portals/0/ptitlogo72.gif là đường đẫn đối tượng. Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 43
  44. Trình duyệt (Browser) - chương trình giao tiếp người dùng của ứng dụng Web cho phép hiển thị trang Web. Browser là phía máy khách của giao thức HTTP. Hiện nay có rất nhiều phần mềm trình duyệt nhưng phổ biến nhất là Nestcape Communication và Microsoft Internet Explorer. Máy chủ web lưu giữ các đối tượng web và được xác định qua địa chỉ URL . Phần mềm Máy chủ web là phía máy chủ của giao thức HTTP. một số phần mềm Máy chủ web phổ biến là Apache, Microsoft Internet Information Máy chủ và Nestcape Enterprise Máy chủ. HTTP xác định cách thức trình duyệt yêu cầu trang web từ web máy chủ cũng như cách thức máy chủ gửi trang web được yêu cầu tới trình duyệt. dưới đây chúng ta sẽ nói rõ hơn về quá trình trao đổi giữa máy khách và máy chủ. Hình 2.6 minh họa quá trình này. Khi người dùng yêu cầu một đối tượng (ví dụ kích vào một siêu liên kết), browser sẽ gửi một bản tin HTTP tới máy chủ yêu cầu đối tượng đó. Máy chủ nhận được yêu cầu và trả lời bằng cách gửi lại một thông điệp trả lời chứa đối tượng được yêu cầu. Hình 3.2 tương tác máy khách/máy chủ Cho tới những năm 1997, phần lớn các trình duyệt Web và Máy chủ web tuân thủ phiên bản HTTP 1.0 (đặc tả trong RFC 1945), từ năm 1998 một số trình duyệt và máy chủ web sử dụng phiên bản 1.1 theo khuyến nghị RFC 2616. Phiên bản mới này tương thích với phiên bản 1.0, nghĩa là Web máy chủ dùng phiên bản 1.1 có thể nói chuyện được với trình duyệt sử dụng phiên bản 1.0 và ngược lại cả phiên bản 1.0 và 1.1 đều sử dụng TCP làm giao thức ở tầng vận tải. HTTP máy khách khởi tạo một kết nối TCP tới HTTP máy chủ. Sau khi thiết lập được kết nối, cả tiến trình browser và Máy chủ web đều truy cập tới TCP thông qua socket. Máy chủ nhận bản tin yêu cầu này và gửi bản tin trả lời qua socket. Sau khi gửi bản tin qua socket thì bản tin nằm ngoài tầm kiểm soát của máy khách và chính thực thể TCP chịu trách nhiệm chuyển nó sang phía bên kia. Giao thức TCP cung cấp dịch vụ truyền tin tin cậy cho HTTP, như vậy bản tin của tiến trình máy trạm sẽ được chuyển tải nguyên vẹn đến máy chủ và ngược lại. Giao Bài giảng Mạng máy tính – Ths. Nguyễn Xuân Anh 44