MỤC LỤC 1 DANH MỤC CÁC HÌNH VẼ 2 DANH MỤC BẢNG BIỂU 4 DANH MỤC TỪ VIẾT TẮT 4 LỜI CẢM ƠN 5 CHƯƠNG 1: TỔNG QUAN VỀ MẠNG TRUYỀN SỐ LIỆU 6 1.1 Mạng máy tính 6 1.1.1 Đường biên mạng 6 1.1.1.1 Mô hình ngang hàng 7 1.1.1.2 Mạng khách chủ (Client – Server) 8 1.1.2 Đường biên mạng 8 1.1.2.1 Mạng chuyển mạch 8 1.1.2.2 Mạng chuyển gói 9 1.1.2.3 So sánh mạng chuyển mạch và mạng chuyển gói 10 1.1.3 Lợi ích của mạng máy tính 10 1.2 Phần cứng mạng máy tính 11 1.2.1 Phân loại theo kỹ thuật truyền tin 11 1.2.1.1 Mạng quảng bá 11 1.2.1.2 Mạng điểm nối điểm 11 1.2.2 Phân loại theo phạm vi địa lý 12 1.2.2.1 Mạng cục bộ (LAN Local Area Network ) 13 1.2.2.2 Mạng đô thị (MAN Metropolitan Area Network) 13 1.2.2.3 Mạng diện rộng (WAN Wide Area Network) 13 1.2.3 Mạng không dây 14 1.2.3.1 Nối kết hệ thống 14 1.2.3.2 Mạng cục bộ không dây 14 1.2.3.3 Mạng diện rộng không dây 14 1.3 Phần mềm mạng 15 1.3.1 Cấu trúc thứ bậc của giao thức 15 1.3.2 Ví dụ về cấu trúc thứ bậc của giao thức 17 1.3.3 Dịch vụ mạng 18 1.4 Mô hình hệ thống mở OSI (Open System Interconnection) 18 1.4.1 Nguyên tắc định nghĩa các tầng hệ thống mở 18 1.4.2 Các giao thức trong mô hình OSI 19 1.4.3 Vai trò và chức năng của các tầng 20 1.4.4 Truyền dữ liệu trong mô hình OSI 21 1.5 Một số định nghĩa cơ bản 22 CHƯƠNG 2: ĐIỀU KHIỂN KHẮC PHỤC LỖI TRÊN ĐƯỜNG TRUYỀN 27 2.1 Giới thiệu chung 27 2.1.1 Mô hình mạng truyền số liệu 27 2.1.2 Định nghĩa 28 2.1.3 Đặc tả và kiểm chứng giao thức 28 2.1.4 Đánh giá hiệu suất giao thức 29 2.2 Các giao thức bảo vệ số liệu và phát hiện lỗi 30 2.2.1 Giới thiệu chung 30 2.2.2 Các phương pháp phát hiện lỗi 32 2.2.2.1 Kiểm tra chẵn lẻ theo khối 32 2.2.2.2 Phương pháp phát hiện lỗi CRC (Cyclic Redundancy Check) 32 2.2.2.3 Phương pháp phát hiện lỗi Hamming 37 2.3 Một số giao thức khắc phục lỗi 39 2.3.1 Giao thức truyền đơn công không ràng buộc (Unrestricted Simplex Protocol) 41 2.3.2 Giao thức Dừng và Chờ (Stop and Wait) 41 2.3.3 Giao thức truyền đơn công cho kênh truyền có nhiễu 43 2.3.4 Giao thức cửa sổ trượt (Sliding Windows) 44 2.3.4.1 Vấn đề truyền tải thông tin theo hai chiều (Duplex) 44 2.3.4.2 Giới thiệu về giao thức cửa sổ trượt 45 2.3.4.3 Hoạt động của cửa sổ trượt 46 2.3.4.4 Cài đặt giao thức cửa sổ trượt kích thước 1 bit 47 2.3.5 Ví dụ về các giao thức 48 2.3.5.1 Giao thức GoBackN 48 2.3.5.2 Giao thức Selective Repeat 51 CHƯƠNG 3: KIỂM SOÁT DỮ LIỆU TRÊN ĐƯỜNG TRUYỀN 55 3.1 Một số giải thuật chọn đường 55 3.1.1 Phân loại giải thuật chọn đường 55 3.1.2 Các giải thuật tìm đường tối ưu 56 3.1.3 Giải thuật tìm đường đi ngắn nhất Dijkstra 56 3.1.4 Giải thuật chọn đường tối ưu FordFulkerson 58 3.1.5 Giải thuật Vector khoảng cách 62 3.1.6 Giải pháp chọn đường “Trạng thái nối kết” (Link State) 63 3.1.7 Định tuyến phân cấp (Hierarchical Routing) 66 3.2 Các giải thuật chống tắc nghẽn 70 3.2.1 Các nguyên tắc chung để điều khiển tắc nghẽn 71 3.2.2 Các biện pháp phòng ngừa tắc nghẽn 72 3.2.3 Điều khiển tắc nghẽn trong các mạng con dạng mạch ảo 73 3.2.4 Điều khiển tắc nghẽn trong mạng con dạng Datagram 74 3.3 Điều khiển lưu lượng trong mạng chuyển mạch khung (Frame Relay) 75 3.3.1 Kiến trúc mạng chuyển mạch khung 75 3.3.2 Nguyên tắc hoạt động 76 3.3.2.1 Cấu trúc gói số liệu 76 3.3.2.2 Cấu trúc kênh ảo 77 3.4 Điều khiển lưu lượng trong phương thức truyền dẫn không đồng bộ ATM 79 3.4.1 Đặc trưng công nghệ 79 3.4.2 Mô hình qui chiếu 79 3.4.3 Điều khiển lưu lượng 80 3.4.3.1 Quản lý tài nguyên 80 3.4.3.2 Điều khiển chấp nhận kết nối 81 3.4.3.3 Điều khiển tham số sử dụng 81 3.4.3.4 Điều khiển dựa trên độ ưu tiên tế bào 81 3.4.3.5 Điều khiển tạo dòng lưu lượng 81 3.4.3.6 Điều khiển có phản hồi 82 TÀI LIỆU THAM KHẢO 84
Trang 1MỤC LỤC
TÀI LIỆU THAM KHẢO 84
Trang 2DANH MỤC CÁC HÌNH VẼ
Trang
Hình 1.1 Mạng cục bộ đơn giản
Hình 1.2 Mạng diện rộng phức tạp
Hình 1.3 Đường biên mạng
Hình 1.4 Mô hình mạng ngang hàng
Hình 1.5 Mô hình Client – Server
Hình 1.6 Mạng chuyển mạch
Hình 1.7 Mạng chuyển gói
Hình 1.8 Chia sẻ đường truyền trong mạng chuyển gói
Hình 1.9 Kiểu đường thẳng
Hình 1.10 Mạng hình sao
Hình 1.11 Mạng hình tròn
Hình 1.12 Mô hình mạng cục bộ
Hình 1.13 Mạng diện rộng
Hình 1.14 Thiết bị kết nối không dây
Hình 1.15 Mạng cục bộ không dây
Hình 1.16 Mạng diện rộng không dây
Hình 1.17 Mô hình gửi và nhận thư tín quốc tế
Hình 1.18 Ứng dụng 3 tầng
Hình 1.19 Đơn vị dữ liệu truyền qua các tầng
Hình 1.20 Mô hình hệ thống mở OSI
Hình 1.21 Xử lý dữ liệu qua các tầng
Hình 1.22 Kiến trúc của một số hệ điều hành mạng thông dụng
Hình 1.23 Cấu trúc gói dữ liệu
Hình 1.24 Phương thức hướng kết nối
Hình 1.25 Phương thức không kết nối
Hình 2.1 Mô hình truyền số liệu
Hình 2.2 Mô hình xử lý lỗi trong truyền dữ liệu
Hình 2.3 Cấu trúc cửa sổ trượt
Hình 2.4 Hoạt động của cửa sổ trượt
Hình 2.5 Giao thức Go-Back-N
Hình 2.6 Giao thức Selective Repeat với cửa sổ trượt lớn hơn 1
Hình 3.1: Mạng được biểu diễn như đồ thị
Hình 3.2 Mô hình hóa mạng thành đồ thị
Trang 3Hình 3.3 Hình trạng mạng
Hình 3.4 Cây đường đi ngắn nhất từ nút 1
Hình 3.5 Hình trạng mạng
Hình 3.6: Cây đường đi ngắn nhất về nút 6
Hình 3.7 Một mạng làm ví dụ trong giải thuật Distance-Vector
Hình 3.8: Việc làm ngập mạng với các gói tin LSP
Hình 3.9: Vạch đường phân cấp
Hình 3.10: Mô hình mạng có hệ thống không dây
Hình 3.11 Vạch đường trong mạng di động
Hình 3.12 Mô tả tắc nghẽn
Hình 3.13 (a) Một mạng con bị tắc nghẽn .
Hình 3.13 (b) Mạng con được vẽ lại sau khi loại trừ các điểm gây tắc nghẽn .
Hình 3.14 (a) Một mạng con bị tắc nghẽn .
Hình 3.15 (a) Một gói tin chặn chỉ tác động lên nút nguồn
Hình 3.15 (b)Một gói tin chặn tác động lên mọi nút mà nó đi qua
Hình 3.16 Cấu trúc gói số liệu
Hình 3.17 Thiết lập và giải phóng kênh
Trang 4DANH MỤC BẢNG BIỂU
Bảng 3.1: Đường đi ngắn nhất từ nút 1
Bảng 3.2:Đường đi ngắn nhất về nút 6
Bảng 3.3:Các khoảng cách ban đầu được lưu tại mỗi nút
Bảng 3.4: Bảng vạch đường khởi đầu tại nút A
Bảng 3.5: Bảng vạch đường cuối cùng tại nút A
Bảng 3.6: Các khoảng cách cuối cùng được lưu tại mỗi nút
Bảng 3.7: Vạch đường đầy đủ của nút A
Bảng 3.8: Vạch đường phân cấp của host 1A
DANH MỤC TỪ VIẾT TẮT
Trang 5LỜI CẢM ƠN
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ MẠNG TRUYỀN SỐ LIỆU1.1 Mạng máy tính
Mạng máy tính là mạng của hai hay nhiều máy tính được kết nối với nhau thông qua một đường truyền vật lý theo một kiến trúc nào đó
Mạng có thể có kiến trúc đơn giản như hình dưới đây:
Hình 1.1 Mạng cục bộ đơn giản
Hay phức tạp hơn là hệ thống gồm nhiều mạng đơn giản nối lại với nhau như hình sau:
Hình 1.2 Mạng diện rộng phức tạp
Một hệ thống mạng tổng quát được cấu thành từ 3 thành phần:
- Đường biên mạng (Network Edge): gồm các máy tính (Host) và các chương trình ứng dụng mạng (Network Application)
- Đường trục mạng (Network Core): gồm các bộ chọn đường (Router) đóng vài trò
là một mạng trung tâm nối kết các mạng lại với nhau
- Mạng truy cập, đường truyền vật lý (Access Network, Physical media): gồm các
đường truyền tải thông tin
1.1.1 Đường biên mạng
Bao gồm các máy tính (Host) trên mạng nơi thực thi các chương trình ứng dụng mạng (Network Application) Đôi khi người ta còn gọi chúng là các Hệ thống cuối (End Systems)
Trang 7với ý nghĩa đây chính là nơi xuất phát của thông tin di chuyển trên mạng, cũng như là điểm dừng của thông tin
Hình 1.3 Đường biên mạng
Quá trình trao đổi thông tin giữa hai máy tính trên mạng có thể diễn ra theo hai mô hình:
- Mô hình Khách - Chủ (Client/Server model)
- Mô hình ngang hàng (Peer-to-Peer model).
1.1.1.1 Mô hình ngang hàng
Mạng ngang hàng cung cấp việc kết nối cơ bản giữa các máy tính nhưng không có bất kỳ máy nào đóng vai trò phục vụ Một máy tính trên mạng có thể vừa là Client vừa là Server Trong môi trường này người dùng trên từng máy chịu trách nhiệm điều hành và chia sẻ tài nguyên của máy tính mình.Mô hình này chỉ phù hợp với tổ chức nhỏ (khoảng hơn 10 người)
và không quan tâm tới vấn để bảo mật
- Dữ liệu phân tán do không cho phép quản lí tập trung
- Khả năng bảo mật thấp rất dễ bị xâm nhập
- Các tài nguyên không được sắp xếp nên rất khó định vị và tìm kiếm
Trang 81.1.1.2 Mạng khách chủ (Client – Server)
Trong mô hình mạng khách chủ có một hệ thống máy tính cung cấp tài nguyên và dịch vụ
cho cả hệ thống mạng sử dụng gọi là máy chủ (Server) Một hệ thống máy tính sử dụng các tài nguyên dịch vụ đó được gọi là máy khách (Client) Các server có cấu hình mạnh (tốc độ
xử lý nhanh,kích thước lưu trữ lớn) hoặc là các máy chuyên dụng
Mô hình khách chủ dùng các hệ điều hành mạng: Windows NT, Novell Netware, Unix,
Windows 2000
Ưu điểm:
- Dễ bảo mật, backup và đồng bộ với nhau
- Tài nguyên và dịch vụ được tập trung nên dễ chia sẻ và quản lý và có thể phục vụ cho nhiều người dùng
Nhược điểm:
- Server chuyên dụng rất đắt tiền nên phải có nhà quản trị cho hệ thống
Hình 1.5 Mô hình Client – Server
1.1.2 Đường biên mạng
Là hệ thống mạng của các bộ chọn đường (Routers), làm nhiệm vụ chọn đường và
chuyển tiếp thông tin, đảm bảo sự trao đổi thông tin thông suốt giữa hai máy tính nằm trên hai nhánh mạng cách xa nhau
Để thông tin được truyền đi trên mạng, người ta có thể sử dụng một trong hai chế độ truyền tải thông tin là:
- Chuyển mạch (Circuit switching)
- Chuyển gói (Packet switching).
1.1.2.1 Mạng chuyển mạch
Chế độ này hoạt động theo mô hình của hệ thống điện thoại Để 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 (Call) Nếu máy B chấp nhận cuộc gọi, một kênh ảo
được thiết lập dành riêng cho thông tin trao đổi giữa A và B
Trang 9Tấ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ộ hoán chuyển thông tin đều được dành riêng cho cuộc gọi, không chia sẻ cho các cuộc gọi khác, mặc dù có những khoảng lớn thời gian hai bên giao tiếp “im lặng”
Hình 1.6 Mạng chuyển mạch
Tài nguyên (băng thông) sẽ được chia thành nhiều những “phần” bằng nhau và sẽ gán cho các cuộc gọi Khi cuộc gọi sở hữu một “phần” tài nguyên nào đó, mặc dù không sử dụng đến nó cũng không chia sẻ tài nguyên 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 thành những “phần” có thể được thực hiện bằng một trong hai kỹ thuật:
- Phân chia theo tần số (FDMA-Frequency Division Multi Access)
- Phân chia theo thời gian (TDMA- Time Division Multi Access)
1.1.2.2 Mạng chuyển gói
Hình 1.7 Mạng chuyển gói Trong phương pháp này, thông tin trao đổi giữa hai máy tính (End systems) được phân thành những gói tin (Packet) 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 (ví dụ của A và B) sẽ chia sẻ nhau băng thông của kênh truyền Mỗi gói tin sẽ sử dụng toàn bộ băng thông của kênh truyền khi nó được phép Điều này sẽ dẫn đến tình trạng lượng thông tin cần truyền đi vượt quá khả năng đáp ứng của kênh truyền Trong trường hợp này, các router sẽ ứng sử theo giải thuật lưu và
Trang 10chuyển tiếp (store and forward), tức lưu lại các gói tin chưa gởi đi được vào hàng đợi chờ
cho đến khi kênh truyền rãnh sẽ lần lượt gởi chúng đi
1.1.2.3 So sánh mạng chuyển mạch và mạng chuyển gói
Hình 1.8 Chia sẻ đường truyền trong mạng chuyển gói
Chuyển gói cho phép có nhiều người sử dụng mạng hơn:
Giả sử:
- Một đường truyền 1 Mbit
- Mỗi người dùng được cấp 100Kbps khi truy cập “active”
- Thời gian active chiếm 10% tổng thời gian
Khi đó:
- Chuyển mạch: cho phép tối đa 10 users
- Chuyển gói: cho phép 35 users, (xác suất có hơn 10 “active” đồng thời là nhỏ hơn 0.004)
Chuyển gói:
- Thích hợp cho lượng lưu thông dữ liệu lớn nhờ cơ chế chia sẻ tài nguyên và không cần thiết lập cuộc
- Cần có cơ chế điều khiển tắt nghẽn và mất dữ liệu
- Không hỗ trợ được cơ chế chuyển mạch để đảm bảo tăng băng thông cố định cho một số ứng dụng về âm thanh và hình ảnh
1.1.3 Lợi ích của mạng máy tính
- Tiết kiệm được tài nguyên phần cứng
- Trao đổi dữ liệu trở nên dễ dàng hơn
- Chia sẻ ứng dụng
- Tập trung dữ liệu, bảo mật và backup tốt
- Sử dụng các phần mềm ứng dụng trên mạng
- Sử dụng các dịch vụ Internet
Trang 11Dựa vào cấp phát đường tryền cho các node, các mạng có cấu trúc quảng bá được chia thành hai loại: Quảng bá tĩnh và quảng bá động
Quảng bá động bao gồm quảng bá động tập trung và quảng bá động phân tán
Quảng bá tĩnh: Chia thời gian thành nhiều khoảng rời rạc và dùng cơ chế quay vòng
(Round Robin) để cấp phát đường truyền Các node có quyền được truy nhập đến cửa thời
gian của nó
Quảng bá động tập trung: Một thiết bị trung gian co chức năng tiếp nhận yêu cầu liên lạc
và cấp phát đường truyền cho các node
Ưu điểm : giảm tối đa thời gian chết của đường truyền, hiệu suất kênh truyền cao
Nhược điểm: thiết kế phức tạp và khó khăn
Quảng bá động phân tán: Không có bộ trung gian, các node tự quyết định có nên hay
không nên tuy cập đường truyền, phụ thuộc vào trạng thái của mạng
Các kết nối mạng kiểu quảng bá:
- Kết nối kiểu đường thẳng: các thiết bị cuối sử dụng chung môi trường truyền dẫn
Tại một thời điểm chỉ có một thiết bị cuối được phát số liệu
Hình 1.9 Kiểu đường thẳng
- Kết nối kiểu đường tròn: mặc dù dựa trên cơ sở kết nối vật lý điểm điểm, thuật
toán điều khiển truy nhập mạng đường tròn đảm bảo phương thức kết nối vật lý
- Kết nối vệ tinh: một trạm vệ tinh thực hiện thu phát số liệu với một nhóm các trạm
mặt đất
1.2.1.2 Mạng điểm nối điểm
Đường truyền nối từng cặp node lại với nhau theo một hình học xác định Một kênh truyền vật lý sẽ được thiết lập giữa hai node có nhu cầu trao đổi thông tin.Chức năng các
Trang 12node trung gian : tiếp nhận ,lưu trữ tạm thời và gửi tiếp thông tin sang node tiếp theo khi đường truyền rỗi
Cấu trúc điểm - điểm gọi là mạng lưu và gửi tiếp (Store - and - Forward ).
Ưu điểm :
- Ít khả năng đụng độ thông tin
Nhược điểm:
- Hiệu suất sử dụng đường truyền thấp
- Chiếm dụng tài nguyên,độ trễ lớn, tiêu tốn nhiều thời gian để thiết lập đường truyền và xử lí tại các node Vì vậy tốc độ trao đổi thông tin thấp
Các hình thức kết nối điểm-điểm:
Kết nối hình sao (Start): một thiết bị chính (Master) điều khiển quá trình trao đổi số liệu
giữa các thiết bị cuối
Hình 1.10 Mạng hình sao
Kết nối theo đường tròn: số liệu được chuyển tuần tự từ thiết bị cuối này đến thiết bị cuối
kế tiếp theo một chiều nhất định
Hình 1.11 Mạng hình tròn
Kết nối hình cây:
Kết nối toàn phần: một thiết bị cuối được kết nối với tất cả các thiết bị còn lại.
1.2.2 Phân loại theo phạm vi địa lý
Trang 13Nếu lấy khoảng cách địa lý làm yếu tố phân loại mạng thì ta có mạng cục bộ, mạng đô thị, mạng diện rộng, mạng toàn cầu
1.2.2.1 Mạng cục bộ (LAN - Local Area Network )
Mạng cục bộ là mạng được cài đặt trong phạm vi tương đối nhỏ hẹp như trong một toà
nhà, một xí nghiệp với khoảng cách lớn nhất giữa các máy tính trên mạng trong vòng vài
1.2.2.2 Mạng đô thị (MAN - Metropolitan Area Network)
Mạng đô thị được cài đặt trong phạm vi một đô thị, một trung tâm văn hoá xã hội, có bán kính tối đa khoảng 100 km trở lại
1.2.2.3 Mạng diện rộng (WAN - Wide Area Network)
Mạng diện rộng (WAN - Wide Area Network): là mạng có diện tích bao phủ rộng lớn,
phạm vi của mạng có thể vượt biên giới quốc gia thậm chí cả lục địa
Đặc điểm:
- Tốc độ truyền dữ liệu không cao
- Phạm vi địa lý không giới hạn
- Thường triển khai dựa vào các công ty truyền thông, bưu điện và dùng các hệ thống truyền thông này để tạo dựng đường truyền
Trang 14- Một mạng WAN có thể là sở hữu của một tập đoàn/tổ chức hoặc là mạng kết nối của nhiều tập đoàn/tổ chức.
Trang 15Thông thường mạng điện thoại di động số thuộc dạng này Với các công nghệ mới cho phép băng thông mạng có thể đạt đến 50 Mbps với khoảng cách vài kilomet
Trong hình 1.16(a) các máy tính sử dụng công nghệ mạng vô tuyến để nối kết với router
Ngược lại trong hình 1.16(b), các máy tính được nối bằng đường dây hữu tuyến với một
router, để từ đó router sử dụng kỹ thuật vô tuyến để liên lạc với các router khác
Hình 1.16 Mạng diện rộng không dây
1.3 Phần mềm mạng
Đây là thành phần quan trọng thật sự làm cho mạng máy tính vận hành chứ không phải là phần cứng Phần mềm mạng được xây dựng dựa trên nền tảng của 3 khái niệm là giao thức
(Protocol), dịch vụ (Service) và giao diện (Interface)
- Giao thức (Protocol): Mô tả cách thức hai thành phần giao tiếp trao đổi thông tin
với nhau
- Dịch vụ (Services): Mô tả những gì mà một mạng máy tính cung cấp cho các
thành phần muốn giao tiếp với nó
- Giao diện (Interfaces): Mô tả cách thức mà một khách hàng có thể sử dụng được
các dịch vụ mạng và cách thức các dịch vụ có thể được truy cập đến
1.3.1 Cấu trúc thứ bậc của giao thức
Nền tảng cho tất cả các phần mềm làm cho mạng máy tính hoạt động chính là khái niệm
kiến trúc thứ bậc của giao thức (Protocol hierachies) Nó tổ chức các dịch vụ mà một mạng máy tính cung cấp thành các tầng/lớp (Layers)
Hai thành phần bộ phận ở hai máy tính khác nhau, nhưng ở cùng cấp, chúng luôn luôn thống nhất với nhau về cách thức mà chúng sẽ trao đổi thông tin Qui tắc trao đổi thông tin
này được mô tả trong một giao thức (Protocol)
Một hệ mạng truyền tải dữ liệu thường được thiết kế dưới dạng phân tầng Để minh họa ý nghĩa của nó ta xem xét mô hình hoạt động của hệ thống gởi nhận thư tín thế giới
Hai đối tác A ở Paris và B ở Thành phố Cần Thơ thường xuyên trao đổi thư từ với nhau
Vì A không thể nói tiếng Việt và B không thể nói tiếng Pháp, trong khi đó cả hai có thể hiểu tiếng Anh, cho nên nó được chọn là ngôn ngữ để trao đổi thư từ, văn bản giữa A và B Cả hai
Trang 16gởi thư từ cơ quan của họ Trong công ty có bộ phận văn thư lãnh trách nhiệm tập hợp và gửi tất cả các thư của công ty ra bưu điện
Tiến trình A gởi cho B một lá thư diễn ra như sau:
1 A viết một lá thư bằng tiếng Pháp bằng bút máy của anh ta
2 A đưa lá thư cho thư ký, biết tiếng Anh để thông dịch lá thư ra tiếng Anh, sau đó
bỏ lá thư vào bao thư với địa chỉ người nhận là địa chỉ của B
3 Nhân viên của bộ phận văn thư chịu trách nhiệm thu thập thư của công ty ghé qua văn phòng của A để nhận thư cần gửi đi
4 Bộ phận văn thư thực hiện việc phân loại thư và dán tem lên các lá thư bằng một máy dán tem
5 Lá thư được gửi đến bưu điện ở Paris
6 Lá thư được ô tô chuyển đến trung tâm phân loại ở Paris
7 Những lá thư gửi sang Việt Nam được chuyển đến sân bay ở Paris bằng tàu điện ngầm
8 Lá thư gửi sang Việt nam được chuyển đến sân bay Tân Sơn Nhất (Thành Phố Hồ Chí Minh) bằng máy bay.
9 Thư được ô tô chở đến trung tâm phân loại thư của Thành Phố Hồ Chí Minh
10.Thư cho cơ quan của B được chuyển về Bưu điện Cần Thơ bằng ô tô
11.Thư cho cơ quan của B được chuyển đến công ty của B bằng ô tô
12.Bộ phận văn thư của công ty của B tiến hành phân loại thư
13.Thư được phát vào một giờ đã định đến các người nhận, trong trường hợp này có văn phòng của B
14.Thư ký của B mở thư ra và dịch nội dung lá thư gửi cho B sang tiếng Việt
15.B đọc lá thư của A đã gửi cho anh ta
Ta có thể tóm tắt lại tiến trình trên bằng một mô hình phân tầng với các nút của mạng thư tín này như sau:
Trang 17Hình 1.17 Mô hình gửi và nhận thư tín quốc tế
1.3.2 Ví dụ về cấu trúc thứ bậc của giao thức
Xem xét một ví dụ khác liên quan đến hệ thống truyền tập tin từ máy tính X sang máy Y Hai máy này được nối với nhau bởi một dây cáp tuần tự
Chúng ta xem xét một mô hình gồm 3 tầng:
- Người sử dụng muốn truyền một tập tin sẽ thực hiện một lời gọi đến tầng A nhờ
vào một hàm đã được định nghĩa sẵn, send_file(fileName, destination) Trong đó
fileName là tập tin cần truyền đi, destination là điạ chỉ của máy tính nhận tập tin
- Tầng A phân chia tập tin thành nhiều thông điệp và truyền từng thông điệp nhờ
lệnh send_message(MessageNo, destination) do tầng B cung cấp
- Tầng B quản lý việc gửi các thông điệp, đảm nhiệm việc phân chia các thông điệp
thành nhiều đơn vị truyền tin, gọi là các khung (frame); gửi các khung giữa X và Y tuân theo luật đã định trước (protocol) như tần suất gửi, điều khiển luồng, chờ báo
nhận của bên nhận, điều khiển lỗi
Hình 1.18 Ứng dụng 3 tầng
Trang 18Tầng B giao cho tầng C một chuỗi các bit mà chúng sẽ được truyền lên đường truyền vật
lý, không quan tâm gì về ý nghĩa của các bit, để đến nơi nhận
Thông tin được truyền trên một kênh truyền đơn giản hoặc phức tạp và được định hướng đến nơi nhận Bên nhận thực hiện ngược lại tiến trình của bên gửi Cả bên nhận và bên gửi cùng có số lần gửi/nhận giống nhau
Hình 1.19 Đơn vị dữ liệu truyền qua các tầng
Ta cũng chú ý rằng, kích thước của các đơn vị truyền tin trong từng tầng là khác nhau Ở tầng A đơn vị là một tập tin Tầng B, đơn vị truyền tin là các khung theo một cấu trúc đã được định nghĩa Tầng C, đơn vị truyền tin là các tín hiện được truyền trên đường truyền vật lý
1.3.3 Dịch vụ mạng
Hầu hết các tầng mạng đều cung cấp một hoặc cả hai kiểu dịch vụ: Định hướng nối kết và Không nối kết
- Dịch vụ định hướng nối kết (Connection-oriented): Đây là dịch vụ vận hành theo
mô hình của hệ thống điện thoại Đầu tiên bên gọi phải thiết lập một nối kết, kế đến thực hiện nhiều cuộc trao đổi thông tin và cuối cùng thì giải phóng nối kết
- Dịch vụ không nối kết (Connectionless): Đây là dịch vụ vận hành theo mô hình
kiểu thư tín Dữ liệu của bạn trước tiên được đặt vào trong một bao thư trên đó có ghi rõ địa chỉ của người nhận và địa chỉ của người gửi Sau đó sẽ gửi cả bao thư và nội dung đến người nhận
Mỗi loại dịch vụ được cung cấp với chất lượng khác nhau Các loại dịch vụ có nối kết thường đảm bảo thứ tự đến nơi của thông tin như thứ tự chúng đã được gửi đi, cũng như đảm bảo dữ liệu luôn đến nơi Hai điều này thường không được đảm bảo trong các dịch vụ loại không nối kết
1.4 Mô hình hệ thống mở OSI (Open System Interconnection)
Mô hình kết nối hệ thống mở OSI là mô hình căn bản về các tiến trình truyền thông, thiết lập các tiêu chuẩn kiến trúc mạng ở mức Quốc tế, là cơ sở chung để các hệ thống khác nhau
có thể liên kết và truyền thông được với nhau.Mô hình OSI tổ chức các giao thức truyền thông thành 7 tầng, mỗi tầng giải quyết 1 phần hẹp của tiến trình truyền thông, chia tiến trình
Trang 19truyền thông thành nhiều tầng và trong mỗi tầng có thể có nhiều giao thức khác nhau thực hiện các nhu cầu truyền thông cụ thể
1.4.1 Nguyên tắc định nghĩa các tầng hệ thống mở
Mô hình OSI tuân theo nguyên tắc phân tầng như sau:
- Không định nghĩa quá nhiều tầng để việc xác định và ghép nối các tầng không quá phức tạp
- Tạo các ranh giới các tầng sao cho việc giải thích các phục vụ và số các tương tác qua lại hai tầng là nhỏ nhất
- Tạo các tầng riêng biệt cho các chức năng khác biệt nhau hoàn toàn về kỹ thuật sử dụng hoặc quá trình thực hiên
- Các chức năng giống nhau được đặt trong cùng một tầng
- Lựa chọn ranh giới các tầng tại các điểm mà những thử nghiệm trong quá khứ thành công
- Các chức năng được xác định sao cho chúng có thể dễ dàng xác định lại, và các nghi thức của chúng có thể thay đổi trên mọi hướng
- Tạo ranh giới các tầng mà ở đó cần có những mức độ trừu tượng khác nhau trong việc sử dụng số liệu
- Cho phép thay đổi các chức năng hoặc giao thức trong tầng không ảnh hưởng đến các tầng khác
- Tạo các ranh giới giữa mỗi tầng với tầng trên và dưới nó
6 Presentation
Liên kết logic
Tầng Liên kếtTầng MạngTầng Vận chuyểnTầng PhiênTầng Trình bàyTầng Ứng dụng
Trang 20Hình 1.20 Mô hình hệ thống mở OSI
1.4.2 Các giao thức trong mô hình OSI
Có hai loại giao thức được sử dụng trong mô hình OSI:
- Giao thức liên kết (Connection - Oriented): Trước khi truyền dữ liệu các thực thể
đồng tầng trong hai hệ thống cần phải thiết lập một kết nối logic Chúng tương đương nhau về tập các tham số sẽ sử dụng giai đoạn truyền dữ liệu Dữ liệu được truyền với các cơ chế kiểm soát lỗi, kiểm soát luồng dữ liệu, cắt/hợp dữ liệu, nhằm nâng cao độ tin cậy và hiệu quả của quá trình truyền dữ liệu Sau khi trao đổi dữ liệu, liên kết sẽ được hủy bỏ Thiết lập liên kết logic sẽ nâng cao độ tin cậy và an toàn trong quá trình trao đổi dữ liệu
- Giao thức không liên kết (Connectionless): Dữ liệu được truyền độc lập trên các
tuyến khác nhau Với các giao thức không liên kết chỉ có giai đoạn duy nhất truyền dữ liệu
1.4.3 Vai trò và chức năng của các tầng
Tầng 1: Tầng vật lý (Physical Layer )
Qui định về các tính chất vật lý của hệ thống Tầng vật lý liên quan đến nhiệm vụ truyền dòng bit không cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý nhờ các phương tiện cơ, điện, hàm (chức năng), thủ tục
Tầng 2: Tầng liên kết dữ liệu ( Data Link Layer)
Cung cấp phương tiện để truyền thông tin qua liên kết vật lý bảo đảm độ tin cậy Tầng này qui định các chức năng của kênh số liệu trên một đường truyền giữa hai điểm của hệ thống thí dụ những qui định về sự đồng bộ hóa, đặc tính của khung dữ liệu, đánh số khung, kiểm tra lỗi, kiểm tra luồng dữ liệu trong quá trình liên lạc
Tầng 3: Tầng mạng ( Network Layer)
Qui định các chức năng mạng như chọn đường, gán địa chỉ, chuyển tiếp thông tin, thực hiện việc kiểm soát luồng dữ liệu, tách/hợp dữ liệu khi cần thiết Giao thức trong tầng này điều khiển truyền thông qua các mạng trong hệ thống với công nghệ chuyển mạch thích hợp
Tầng 4: Tầng vận chuyển ( Transport Layer)
Qui định các chức năng truyền dữ liệu giữa hai đầu mút (end to end) như tốc độ truyền,
xếp thứ tự các thông tin, tổ chức sự tái tạo bản tin (kiểm tra lỗi, phục hồi các từ bị mất trong quá trình liên lạc ) Giao thức trong tầng này cũng có thể thực hiện việc ghép kênh
(multiplexer), tách/hợp dữ liệu khi cần thiết.
Tầng 5: Tầng giao dịch ( Session Layer)
Trang 21Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng Giao thức của tầng này qui định các thủ tục thiết lập cuộc đối thoại giữa hai bên, có trách nhiệm thiết lập, duy trì, đồng bộ hóa và kết thúc cuộc đối thoại.
Tầng 6 : Tầng trình bày (Presentation Layer)
Tầng này xác định các qui tắc ngôn ngữ và có trách nhiệm đảm bảo số liệu thu được có một cú pháp có thể dịch được trong quá trình ứng dụng Nói cách khác tầng này mô tả các phương pháp trình bày dữ liệu như mã hóa, giải mã, nén dữ liệu Thí dụ mã ASCII 8 bit dùng cho màn hình là một qui định thuộc tầng 6 này
Tầng 7 :Tầng ứng dụng (Application Layer)
Tầng này qui định các ứng dụng thực tế, đưa ra các thủ tục cho việc xử lý số liệu của bản thân người sử dụng như cách thức xử lý từ, soạn văn bản Tầng này cũng qui định những thủ tục cho người sử dụng có thể truy nhập được vào môi trường
Tầng ứng dụng là tầng duy nhất không phải phục vụ tầng trên
1.4.4 Truyền dữ liệu trong mô hình OSI
Về nguyên tắc, tầng n của một hệ thống chỉ giao tiếp, trao đổi thông tin với tầng n của hệ thống khác Mỗi tầng sẽ có các đơn vị truyền dữ liệu riêng:
dữ liệu tương ứng sẽ được “tháo” ra
Đơn vị dữ liệu của mỗi tầng sẽ có một tiêu đề (Header) riêng, được mô tả trong hình sau:
Trang 22Hình 1.21 Xử lý dữ liệu qua các tầng
OSI chỉ là mô hình tham khảo, mỗi nhà sản xuất khi phát minh ra hệ thống mạng của mình sẽ thực hiện các chức năng ở từng tầng theo những cách thức riêng Các cách thức này thường được mô tả dưới dạng các chuẩn mạng hay các giao thức mạng Như vậy dẫn đến trường hợp cùng một chức năng nhưng hai hệ thống mạng khác nhau sẽ không tương tác được với nhau Hình vẽ dưới đây so sánh kiến trúc của các hệ điều hành mạng thông dụng với mô hình OSI
Hình 1.22 Kiến trúc của một số hệ điều hành mạng thông dụng
Để thực hiện các chức năng ở tầng 3 và tầng 4 trong mô hình OSI, mỗi hệ thống mạng sẽ
có các protocol riêng:
- UNIX: Tầng 3 dùng giao thức IP, tầng 4 giao thức TCP/UDP
- Netware: Tầng 3 dùng giao thức IPX, tầng 4 giao thức SPX
- Windows NT: chỉ dùng 1 giao thức NETBEUI
Nếu chỉ dừng lại ở đây thì các máy tính UNIX, Netware, NT sẽ không trao đổi thông tin được với nhau Với sự lớn mạnh của mạng Internet, các máy tính cài đặt các hệ điều hành
Trang 23khác nhau đòi hỏi phải giao tiếp được với nhau, tức phải sử dụng chung một giao thức Đó chính là bộ giao thức TCP/IP, giao thức của mạng Internet.
1.5 Một số định nghĩa cơ bản
Chức năng mức N (N-Funtion)
Chức năng mức N là một phần chức năng cấu thành chức năng của toàn bộ hệ thống, được qui định cho các thực thể ở mức N đảm nhiệm Một số chức năng cho việc trao đổi số liệu chính xác giữa các thực thể :
- Phát hiện lỗi (gói số liệu bị mất)
- Phát hiện lỗi số tuần tự của các gói số liệu
- Sửa lỗi bằng cách yêu cầu phát lại
- Điều khiển lưu lượng số liệu qua điểm truy nhập dịch vụ SAP
- Khởi động lại tiến trình trao đổi số liệu khi cần thiết …
Dịch vụ mức N (N – Service)
Dịch vụ mức N là kêt quả của việc thực hiện chức năng mức N Chức năng mức N thực hiện dựa trên cơ sở dịch vụ mức (N-1), đồng thời cung cấp kết quả thực hiện được ,cũng chính là dịch vụ mức N cho mức (N+1)
Thực thể mức N (N-Empty)
Thực thể mức N (N-Empty) là một tiến trình hoặc một chương trình có khả năng thu, phát
số liệu với một thực thể khác cùng mức chức năng theo các nguyên tắc sau:
- Một thực thể chỉ có thể trao đổi số liệu với một thực thể cùng mức chức năng
- Một thực thể chỉ có thể trao đổi số liệu với một thực thể khác cùng mức trên cơ sở
sử dụng dịch vụ được cung cấp bởi mức chức năng kề dưới nó
- Một thực thể có thể yêu cầu một thực thể khác ở mức chức năng kề nó cung cấp dịch vụ
Điểm truy cập dịch vụ mức N (N-SAP)
N-SAP là điểm truy cập dịch vụ mức Nở giao diện với mức (N+1) Dịch vụ được cung cấp qua điểm truy cập dịch vụ theo những nguyên tắc sau :
- Một thực thể mức N được phép phục vụ nhiều điểm truy nhập dịch vụ N-SAP’s
- Nhiều thực thể mức N không được phép phục vụ nhiều điểm truy nhập dịch vụ SAP
Trang 24- Một thực thể mức (N+1) được phép phục vụ nhiều điểm truy cập dịch vụ N-SAP’s.
N Một điểm truy cập dịch vụ NN SAP chỉ được phép phục vụ nhiều dùng bởi một thực thể mức (N+1)
Kênh kết nối mức N(N - Connection)
- Kênh kết nối mức N là kết nối logic giữa hai thực thể ở mức (N+1) thông qua hai điểm truy cập dịch vụ
- Kênh kết nối logic là khái niệm được định nghĩa để mô tả việc trao đổi số liệu giữa hai thực thể cùng mức
- Thực chất, số liệu trao đổi ở mức N được chuyển xuống các mức chức năng thấp hơn cho đến khi được chuyển qua hệ thống truyền dẫn vật lý tới đích
Giao thức mức N(N-Protocol)
- Giao thức mức N là tập hợp các qui định về cấu trúc khung gói số liệu và phương thức trao đổi số liệu giữa hai thực thể cùng mức
Xác định thực thể và điểm truy nhập dịch vụ
- Để xác định thực thể với một chức năng mức N, ta định nghĩa tên thực thể
(N-Entity-Title): Tên thực thể là tử định danh của thực thể đó ở mức logic tương ứng.
- Để xác định điểm truy nhập dịch vụ, người ta định nghĩa địa chỉ điểm truy nhập
Trang 25Hình 1.23 Cấu trúc gói dữ liệu
Trong đó:
- N- SDU là số liệu được chuyển cho thực thể mức N;
- N-PCI là số liệu điều khiển mức N;
- N-PDU là gói số liệu giao thức mức N, được tạo bởi phần số liệu ứng dụng N-DU
và phần số liệu điều khiển N-PCI
- Một gói số liệu N-SDU có thể được chia thành nhiều gói số liệu N-PDU
- Mỗi gói N-PDU được gán số liệu điều khiển riêng, bao gồm số tuần tự, số byte…
để đảm bảo đúng khi tạo lại gói số liệu N-SDU
Phương thức trao đổi số liệu
Có hai phương thức trao đổi số liệu:
Trao đổi số liệu hướng kết nối (Connection-oriented): cần thiết phải thiết lập một kênh
tuyền số liệu giữa hai thực thể thu/phát số liệu trước khi trao đổi số liệu và giải phóng kênh truyền sau khi kết thúc trao đổi số liệu
Các loại hình trao đổi số liệu hướng kết nối:
- Đơn công (Simplex): truyền số liệu theo một chiều;
- Bán song công (Half-duplex): tại một thời điểm dữ liệu được truyền theo một
chiều,có thể đổi chiều truyền tại một thời điểm khác;
- Song công (Duplex): tại một thời điểm dữ liệu được truyền đồng thời theo hai
chiều
Trang 26Hình 1.24 Phương thức hướng kết nối
Gồm 3 giai đoạn:
- Thiết lập kết nối (Connection setup): Phải tồn tại một kênh truyền số liệu mức
(N-1) để thiết lập kênh truyền số liệu mức N Các thực thể có nhu cầu trao đổi số liệu phải ở trong cùng một trạng thái hoạt động để có thể thực hiện đúng giao thức kết nối
- Trao đổi số liệu (Data Transfer): Các thực thể được kết nối thực hiện thu phát số
liệu Số liệu được truyền trong kênh truyền dưới dạng các gói số liệu, có quan hệ logic với nhau
Ví dụ: Một văn bản dưới dạng một tệp số liệu được chuyển thành nhiều gói số liệu theo một trình tự nhất định Nếu đảo trình tự các gói số liệu khi nhận hoặc không nhận đủ các gói
số liệu phát thì không tạo lại được văn bản đúng văn bản gốc
Có hai loại trao đổi số liệu:
- Trao đổi số liệu thông thường
- Trao đổi số liệu có ưu tiên: được sử dụng truyền các số liệu điều khiển quan trọng (như: Các số liệu thông báo trạng thái sự cố của hệ thống, số liệu xử lý sự cố, số liệu ngắt trong điều khiển công nghiệp.)
- Giải phóng kết nối thông thường kết nối được giải phóng sau khi việc trao đổi kết thúc Cũng có thể giải phóng kết nối tức thời theo yêu cầu đặc biệt, trong trường hợp này số liệu trao đổi có thể bị mất
Trao đổi số liệu không kết nối (Connectionless):
Số liệu được truyền từ thực thể nguồn đến thực thể đích ở mức N mà không cần đàm phán thiết lập kênh cũng như không tồn tại một kênh kết nối ở mức (N-1)
Các gói số liệu không có quan hệ logic vơi nhau; bản thân mỗi gói số liệu phải có đủ thông tin về thực thể nguồn, thực thể đích và các thông tin điều khiển khác để đảm bảo được chuyển tiếp chính xác trong mạng (Các gói tin có cơ chế tự định danh)
Trang 27Chỉ cần yêu cầu dịch vụ phát số liệu là đủ; không có yêu cầu khẳng định lại thông tin đã được phát hay chưa được phát
Hình 1.25 Phương thức không kết nối
Trang 28CHƯƠNG 2 ĐIỀU KHIỂN KHẮC PHỤC LỖI TRÊN ĐƯỜNG TRUYỀN
2.1 Giới thiệu chung
2.1.1 Mô hình mạng truyền số liệu
Hình 2.1 Mô hình truyền số liệu
DTE (Data Terminal Equipment – Thiết bị đầu cuối dữ liệu): là thiết bị lưu trữ và xử lý
thông tin Trong hệ thống truyền số liệu hiện đại thi DTE thường là máy tính hoặc máy Fax
hoặc là trạm cuối (Terminal) Như vậy tất cả các ứng dụng của người sử dụng (chương trình,
dữ liệu) đều nằm trong DTE
Chức năng của DTE lưu trữ các phần mềm ứng dụng, đóng gói dữ liệu rồi gửi ra DCE
hoặc nhận gói dữ liệu từ DCE theo một giao thức (Protocol) xác định DTE trao đổi với DCE
thông qua một chuẩn giao tiếp nào đó
Như vậy, mạng truyền số liệu chính là để nối các DTE lại cho phép chúng ta phân chia tài nguyên, trao đổi dữ liệu và lưu trữ thông tin dùng chung
DCE (Data Circuit terminal Equipment- Thiết bị cuối kênh dữ liệu) là thiết bị dùng để
nối các DTE với các đường (mạng) truyền thông nó có thể là một Modem, Multiplexer, Card mạng hoặc một thiết bị số nào đó như một máy tính nào đó trong trường hợp máy tính đó là một nút mạng và DTE được nối với mạng qua nút mạng đó DCE có thể được cài đặt bên trong DTE hoặc đứng riêng như một thiết bị độc lập
Trong thiết bị DCE thường có các phần mềm được ghi vào bộ nhớ ROM phần mềm và phần cứng kết hợp với nhau để thực hiện nhiệm vụ của nó vẫn là chuyển đổi tín hiệu biểu diễn dữ liệu của người dùng thành dạng chấp nhận được bởi đường truyền Giữa 2 thiết bị DTE việc trao đổi dữ liệu phải tuân thủ theo chuẩn, dữ liệu phải gửi theo một định dạng
(Format) xác định.
Thí dụ như chuẩn trao đổi dữ liệu tầng 2 của mô hình 7 lớp là HDLC (High level Data
Link Control) Trong máy Fax thì giao tiếp giữa DTE và DCE đã thiết kế và được tích hợp
vào trong một thiết bị, phần mềm điều khiển được cài đặt trong ROM
Trang 29Kênh truyền tin là môi trường mà trên đó 2 thiết bị DTE trao đổi dữ liệu với nhau trong
phiên làm việc.
2.1.2 Định nghĩa
Theo mô hình kết nối mở các hệ thống tính toán không đồng nhất OSI , giao thức là tập hợp các qui định về khuôn dạng số liệu và phương thức trao đổi số liệu giữa các thực thể trong cùng một mức chức năng
Những qui định cụ thể về giao thức :
- Cấu trúc khung gói số liệu bao gồm :
+ Các số liệu đồng bộ và số lượng byte tương ứng ; + Các số liệu điều khiển trong trường tiêu đề và số lượng byte tương ứng;+ Độ dài số liệu giao thức;
+ Qui tắc tính byte kiểm tra để bảo vệ, phát hiện lỗi
- Phương thức trao đổi số liệu: hướng kết nối và không kết nối
- Trình tự thời gian các giai đoạn trao đổi số liệu theo phương thức “ hướng kết nối” như : thiết lập kết nối, trao đổi số liệu,giải phóng kết nối
- Phương thức phát hiện và xử lý lỗi truyền số liệu
2.1.3 Đặc tả và kiểm chứng giao thức
Đặc tả giao thức là xác định tất cả các yêu cầu về khuôn dạng gói số liệu, bao gồm các số liệu điều khiển cần thiết và số liệu sử dụng, cũng như phương thức trao đổi số liệu, bao gồm trình tự và thời gian thực hiện từng bước, xử lý đối với các sự kiện trong và ngoài hệ thống (lỗi tràn bộ nhớ đệm, lỗi đồng bộ tiến trình…) giữa các thực thể trong cùng chức năng
Phân biệt giữa:
- Kiểm chứng thiết kế giao thức : kiểm chứng dặc tả giao thức một lần Và
Trang 30- Kiểm chứng thực hiện giao thức : kiểm chứng đối với mỗi phiên bản thực hiện giao thức
Một số phương pháp kiểm chứng giao thức :
- Phương pháp “phân tích đạt tới” cho các đặc tả giao thức sử dụng lưu đồ thời
gian và lưu đồ trạng thái
- Phương pháp “chứng minh chương trình” cho các đặc tả giao thức sử dụng ngôn
ngữ lập trình
- Phương pháp mô phỏng thử nghiệm
2.1.4 Đánh giá hiệu suất giao thức
Đối với một hệ thống tính toán, đánh giá hiệu suất là xác định về mặt định tính và định lượng chất lượng phục vụ của hệ thống tính toán đó
Đối với một giao thức, đánh giá hiệu suất là xác định về mặt định tính và định lượng chất lượng truyền tải đối với một lưu lượng số liệu nhất định Chất lượng truyền tải số liệu của giao thức được tính bằng các đại lượng như: thông lượng, nghĩa là: số lượng số liệu (tính bằng bit,byte hoặc gói số liệu) được truyền tải trong một đơn vị thời gian; thời gian trễ khi truyền tải số liệu giữa các hệ thống cuối; xác suất lỗi truyền số liệu; thời gian xử lý lỗi, khắc phục lỗi…
Có thể phân loại các phương pháp phân tích, đánh giá hiệu suất giao thức một các tổng quát như sau:
Đánh giá hiệu suất
Phương pháp đo thực tế, được áp dụng khi các yếu tố đảm bảo về kỹ thuật cho phép và chi phí cho các thiết bị đo và các phép đo có thể chấp nhận được đối với hệ thống đang hoạt động, phân tích, đánh giá hiệu suất hoạt động dựa trên các số liệu thu thập được bởi các hệ thống giám sát phần cứng, hệ thống giám sát phần mềm hoặc hệ thống giám sát lai
Mô hình hóa: là phương pháp sử dụng trong quá trình thiết kế hoặc đối với các hệ thống chưa tồn tại Mô hình hóa giải tích sử dụng các công cụ toán học một cách chính xác hoặc
Trang 31ngẫu nhiên hoặc dựa vào số liệu thu thập được khi vận hành để mô tả và xác định các thông
số hiệu suất của hệ thống Mô hình hóa mô phỏng sử dụng các chương trình máy tính để mô phỏng kiến trúc và qúa trình hoạt động của một hệ thống và trên cơ sở đó xác định các thông
số hiệu suất của hệ thống Phương pháp lai là hình thức kết hợp của hai phương pháp mô hình hóa giải thích và mô hình hóa mô phỏng
Mô hình hóa được thực hiện thông qua các bước:
- Thiết lập mô hình: phân tích hệ thống cần mô phỏng để xác định kiến trúc, các thành phần của hệ thống và mối quan hệ tương hỗ giữa các thành phần Tiếp theo, xác định các đại lượng cần thiết để mô tả động thái của hệ thống với tác động của tải đầu vào Các kết quả phân tích trên được tổng hợp trong mô hình hệ thống khái quát
- Thực hiện mô hình là việc tính toán các đại lượng mô tả hệ thống bằng các phương pháp toán học, sử dụng mô hình giải tích hoặc bằng phương pháp mô phỏng máy tính, sử dụng chương trình mô phỏng máy tính, được thể hiện dưới dạng các hệ thống hàng đợi
- Kiểm chứng mô hình: là việc so sánh các giá trị của các đại lượng tính toán được với giá trị của các đại lượng của hệ thống tồn tại thực tế
2.2 Các giao thức bảo vệ số liệu và phát hiện lỗi
2.2.1 Giới thiệu chung
Trong trao đổi số liệu máy tính, vấn đề quan trọng nhất là đảm bảo tính đúng đắn, tính chính xác của số liệu được trao đổi
Trong số liệu máy tính, giá trị của một bit bị thay đổi trong quá trình trao đổi số liệu, từ
“0” sang “1” và ngược lại, đã có thể làm sai toàn bộ việc nhận đúng một gói số liệu Như vậy, về bản chất lỗi truyền số liệu chính là “lỗi bit”
Để đánh giá chất lượng truyền dẫn của một đường truyền, người ta xác định “tỷ lệ lỗi bit” BER (Bit Erroe Rate ) BER là tỷ số giữa tổng các bit bị lỗi trên tổng số các bit được truyền.
τ = Số bít bị lỗi / Tổng số bít được truyền
Tỷ lệ lỗi này có giá trị từ 10-5 đến 10-8 Tùy thuộc vào từng loại ứng dụng, một lỗi có mức
độ nghiêm trọng khác nhau, chính vì thế cần có các cơ chế cho phép phát hiện lỗi cũng như sửa lỗi
Phân biệt lỗi bit đơn (Single bit Error) và lỗi bit chùm:
- Lỗi bit đơn: là lỗi từng bit riêng biệt, xuất hiện ngẫu nhiên trong cả gói số liệu
- Lỗi bit chùm: là tập hợp nhóm các bit bị lỗi xuất hiện liên tiếp trong cả gói số liệu
Trang 32Các thống kê cho thấy rằng 88% các lỗi xẩy ra do sai lệch một bit và 10% các lỗi xảy ra
do sự sai lệch 2 bit kề nhau Chính vì thế ta ưu tiên cho vấn đề phát hiện các lỗi trên một bit
và sửa đổi chúng một cách tự động
Với ý tưởng như thế, ta sử dụng các mã phát hiện lỗi: bên cạnh các thông tin hữu ích cần truyền đi, ta thêm vào các thông tin điều khiển Bên nhận thực hiện việc giải mã các thông tin điều khiển này để phân tích xem thông tin nhận được là chính xác hay có lỗi
Hình 2.2 Mô hình xử lý lỗi trong truyền dữ liệu
Thông tin điều khiển được đưa vào có thể theo 2 chiến lược:
- Phương pháp phát hiện lỗi trước (Forward Error Control): số liệu phát được thêm
vào đủ thông tin dư thừa theo một qui định nhất định cho phép bên nhận phát hiện chính xác vị trí bit lỗi và thực hiện sửa lỗi Phương pháp này thường được áp dụng cho đường truyền có độ trễ lan truyền tín hiệu lớn Ví dụ: đường truyền vệ tinh Các phương pháp phát hiện lỗi trước:
+ Phương pháp Hamming code+ Phương pháp Convolution code+ Phương pháp Reed-Solomon code
- Phương pháp phát hiện lỗi sau (Backward Error Control): số liệu phát được thêm
vào chỉ vừa đủ thông tin dư thừa để bên nhận phát hiện được lỗi mà không cần biết chính xác vị trí bit số liệu bị lỗi.Khi số liệu có lỗi, bên nhận yêu cầu bên gửi gửi lại thông tin Phương pháp này được áp dụng cho hệ thống truyền dẫn hữu tuyến Các phương pháp phát hiện lỗi sau :
+ Kiểm tra chẵn lẻ theo kí tự(Parity)
+ Kiểm tra chẵn lẻ theo khối+ Phương pháp mã dư vòng CRC(Cyclic Redundance Code)
2.2.2 Các phương pháp phát hiện lỗi
2.2.2.1 Kiểm tra chẵn lẻ theo khối
Trang 33Khi truyền đi một khối thông tin, mỗi ký tự được truyền đi sẽ được kiểm tra tính chẵn lẻ theo chiều ngang, đồng thời cả khối thông tin này cũng được kiểm tra tính chẵn lẻ theo chiều dọc Như vậy cứ sau một số byte nhất định thì một byte kiểm tra chẵn lẻ cũng được gửi đi byte chẵn lẻ này được tạo ra bằng cách kiểm ta tính chẵn lẻ của khối ký tự theo cột Dựa vào các bit kiểm tra ngang và dọc ta xác định được toạ độ của bit sai và sửa được bit sai này Một Frame coi như một khối ký tự sắp xếp có 2 chiều, mỗi ký tự có bit kiểm tra chẵn lẻ P Nếu ta sắp xếp các bit của ký tự đúng vị trí tương ứng từ trên xuống thì ta có một khối các ký tựTính theo chiều ngang, giá trị bit chẵn lẻ P của dòng thứ i sẽ là :
Với Ci : bit kiểm tra cột thứ i
m : số lượng ký tự trong một Frame
Chúng ta có thể thấy rằng mặc dù các lỗi 2 bit trong một ký tự sẽ thoát khỏi kiểm tra parity theo hàng, nhưng chúng sẽ bị phát hiện bởi kiểm tra parity theo cột tương ứng Dĩ nhiên điều này là đúng chỉ khi không có lỗi 2 bit xảy ra trong cùng một cột tại cùng thời điểm Rõ ràng xác suất xảy ra trường hợp này nhỏ hơn nhiều so với xác suất xảy ra lỗi 2 bit trong một ký tự
Tuy nhiên phương pháp này cung không hoàn toàn hiệu quả Giả sử bit thứ nhất và bit thứ 3 của ký tự thứ nhất bị sai kiểm tra hàng sẽ không bị sai, nhưng kiểm tra chẵn lẻ của cột
sẽ phát hiện bit thứ nhất và thứ 3 bị sai, ta biết sự truyền bị sai nhưng không biết sai ở vị trí nào Bây giờ ta lai giả thiết rằng bit thứ nhất và bit thứ 3 của ký tự thứ 5 cũng bị sai đồng thời vớí bit thứ nhất và bit thứ 3 của ký tự thứ nhất, lúc đó ta không phát hiện được cột bị sai, kết quả thu được bị sai nhưng ta không phát hiện được
2.2.2.2 Phương pháp phát hiện lỗi CRC (Cyclic Redundancy Check)
Một từ mã được viết dưới dạng một đa thức
C(x) = ( C n-1 X n-1 + C n-2 X n-2 + + C 1 X + C 0 )
Phương pháp kiểm tra tín hiệu bằng mã vòng được thực hiện như sau :
Tín hiệu cần phát đi trong khung gồm k bit sẽ được bên phát thêm vào n bit nữa để kiểm
Trang 34Bên thu khi nhận được tín hiệu nay sẽ đem chia cho một đa thức được gọi là đa thức sinh đã biết trước ( bên phát và bên thu đều cùng chọn đa thức này ) Nếu kết quả chia không dư coi như tín hiệu nhận được là đúng
N bit thêm vào đó được gọi là CRC (Cyclic Redundancy Check) Phương pháp tạo ra
CRC bao gồm việc dịch thông báo sang trái c bit (c chính là bậc của đa thức đã chọn trước) sau đó thực hiện phép chia cho da thức được chọn này Kết quả dư lại của phép chia chính là CRC Bên thu sau khi nhân được thông báo cũng đem chia cho hàm biết trước như bên phát Nếu kết quả bằng 0 phép truyền không sai số
Tính FCS gồm 4 bước:
- Bước 1: Chuyển thông báo nhị phân thành đa thức M(x) Chọn hàm cho trước G(x) có bậc c
G(x) = Xc +1 ( c chính là độ dài của CRC)
- Bước 2: Nhân M(x) với Xc
- Bước 3: Thực hiện phép tính M(x).Xc/G(x) ta được phần nguyên và số dư :
Q(x)+ R(x)/G(x)R(x) chính là CRC
- Bước 4: Thành lập FCS chính là thông báo cần truyền đi
Q(x) = X5 + X4 + X +1FCS = Xc M(x) + R(x) = X8 + X7 + X5 + X4 + X +1Thông tin cần truyền là
Trang 351 1 0 1 0 1 0 1 1
Thu và kiểm tra CRC
Để kiểm ta sai số khi truyền, bộ phận thu đem khối thông tin thu được chia cho G(x) theo modul 2 nếu phần dư còn lại là 0 mã nhậ được là đúng, ngu]ơcj lại là ai
=
) (
) ( ) (
x G
x R x M
=
) (
) (
x G
x M
X c
+ ( )
)(
x G
x R
= Q(x) +
)(
)(
x G
x R
+
)(
)(
x G
x R
= Q(x) +
)(
)(
x G
x R
(1 + 1)2
Mà (1+1)2 = 0 Vậy
)
(x G FCS
= Q(x) Phần dư bằng 0
Ví dụ 2
Thông tin truyền đi là : 1 1 0 1 0 1 0 1 1
Thông tin nhận được là : 1 1 0 1 0 1 0 1 1
Điều này có nghĩa là tryuyền đúng : R(x) = 0
Kiểm tra CRC như sau :
- Chuyển thông tin nhận được thành đa thức :
Trang 36bộ ghi dịch phụ thuộc vào giá trị C đó chọn của hàm sinh G(x)
Có 4 đa thức G(x) được dùng để tạo mã CRC thông dụng:
CRC_12 = x12 +x11 + x3 + x2 + x + 1
CRC_16 = x16+x15 + x2 + 1
CRC_CCITT = x16+x12 + x5 + 1
CRC_32 = x32+ x26+ x23+ x22 + x16+ x12 + x11+ x10+ x8+ x7 + x5 + x4 + x2+ x +1
CRC_12 dùng truyền với ký tự 6 bit và khung FCS dài 12 bit
CRC_16 & CRC_CCITT dùng truyền ký tự 8 bit và khung FCS dài 16 bit (ở Mỹ và
Âu châu)
CRC_32 Dùng trong mạng cục bộ (LAN) và một số ứng dụng của DOD (Department
Of Defense).
Khả năng dò sai của mã CRC
Một lỗi xảy ra ở một vị trí nào đó trong khung dữ liệu làm đảo bit ở vị trí đó của khung, điều này tương đương với phép tính EX-OR bit đó và bit 1 (vì 0+1=1 và 1+1=0)
Nếu gọi E là một khung có số lượng bit bằng với khung dữ liệu, trong đó chỉ các vị trí của bit lỗi = 1 và các bit khác = 0 thì khung thông tin Tr nhận được có thể viết
Tr = T + E.
Ví dụ: T = 11010111010
Dạng đa thức: T(x) = x10 + x9 + x7 + x5 + x4 + x3 + x
Trang 37Giả sử bản tin sai ở các bit x7 , x5 và x4
Khung E có dạng: E = 00010110000
E(x) = x7 + x5 + x4 Khung dữ liệu nhận được: Tr = 11000001010
Tr(x) =x10 + x9 + x3 + x Lưu ý phép cộng Modulo 2, tương ứng với phép toán EX-OR, nên x7+x7=(1+1)x7 = 0
Ta có
P
E P
T P
là 2 số hạng nên E(x) không thể chia đúng cho P(x) Vậy: Mã CRC luôn luôn cho
phép máy thu dò ra một bit sai
- Giả sử bản tin sai một chuỗi nhưng có tổng số bit sai là số lẻ: đa thức E(x) chứa
số lẻ bit 1 nên E(1) =1 Mặt khác, giả sử (x+1) là thừa số của P(x), ta có thể viết P(x) = (x+1)*H(x), H(x) là một đa thức Ta cũng giả sử lỗi này không được dò ra, nghĩa là E(x) chia đúng cho P(x), hay E(x) = P(x)*K(x) Thay P(x) = (x+1)*H(x) vào E(x) được E(x) = (x+1)*H(x)*K(x), biểu thức này cho E(1) = 0 Điều này trái với giả thiết ở trên, hay nói cách khác, máy thu sẽ dò ra lỗi nếu ta chọn P(x) sao
cho chia đúng cho (x+1) Vậy Máy thu sẽ luôn luôn dò ra lỗi gồm nhiều bit và có
tổng số bit lỗi là số lẻ nếu ta chọn P(x) chia đúng cho (x+1)
- Giả sử nhiễu làm sai một đoạn dữ liệu có chiều dài m ≤ bậc n của P(x)
Giả sử chuỗi bit sai có vị trí từ thứ i đến thứ i+m-1, E(x) có dạng:
E(x) = xi+m-1 + +xi = xi*(xm-1+ +1)
) (
) 1
(
* ) (
)
x P
x x x P x
Trang 38P(x) không là thừa số của xi nên E(x) chỉ chia đúng cho P(x) khi xm-1+ +1 chia đúng cho P(x) Vì m ≤ n hay m-1<n nên phép chia trên không thể là phép chia
đúng Vậy: Máy thu luôn luôn dò ra lỗi nếu chuỗi dữ liệu sai có chiều dài ≤ bậc
của P(x)
- Đoạn dữ liệu sai có chiều dài m >n
Từ kết quả trên :
) (
) 1
(
* ) (
)
x P
x x x P
x
Nhưng bây giờ m-1 ≥ n nên xm-1+ +1 có thể chia đúng cho P(x) Vậy vấn đề là
có bao nhiêu cơ hội để điều này xảy ra
+ Trường hợp m-1 = n hay (m=n+1) Vì bậc của P(x) là n nên để có phép
chia đúng P(x) phải có dạng xn+ +1 với các số hạng giữa xn và 1 phải hoàn toàn giống với các số hạng của xm-1+ +1 thì máy thu không dò được lỗi Có n-1 số hạng giữa xn và 1 nên có 2n-1 tổ hợp và nếu các tổ hợp này có xác suất xảy ra như nhau thì xác suất máy thu không nhận được lỗi
2.2.2.3 Phương pháp phát hiện lỗi Hamming
Mã Hamming là một bước phát triển của kiểm tra chẵn lẻ và có khả năng sửa sai do xác định được vị trí lỗi Số lượng bit của mã Hamming tùy thuộc số lượng bit của chuỗi dữ liệu
Ta có thể lý luận như sau để xác định số lượng bit của mã Hamming
Gọi m là số bit của chuỗi dữ liệu và n là số bit của mã Hamming, tổng số bit phát đi là m+n
- Với n = 1 ta xác định được 1 trong 2 kết quả: chuỗi dữ liệu sai hoặc đúng nhưng không biết vị trí lỗi
- Với n = 2, 1 trong 4 trường hợp xảy ra: 2 phép kiểm tra đều cho kết quả đúng, 2 phép kiểm tra đều cho kết quả sai, phép kiểm tra thứ nhất sai, phép kiểm tra thứ hai đúng và ngược lại 4 trường hợp này cho phép kết luận được 1 bit sai ở 1 trong
3 vị trí
- Với n=3, có 8 khả năng xảy ra và ta có thể kết luận được 1 bit sai ở 1 trong 7 vị trí
- Với số n bất kỳ, có 2n khả năng xảy ra và ta có thể kết luận được 1 bit sai ở 1 trong
2n -1 vị trí
Trang 39Vậy để có thể phát hiện 1 lỗi tại 1 vị trí cụ thể thì số n nhỏ nhất được chọn phải thỏa:
2 n - 1 ≥ m + n hay 2 n ≥ m + n + 1
Các bit của mã Hamming chèn vào vị trí 2n và dùng cho kiểm tra chẵn lẻ Các bit khác là bit thông tin (dữ liệu)
Dưới đây là một ví dụ để thấy cách xác định mã Hamming:
Giả sử chuỗi dữ liệu cần truyền gồm 4 bit như sau : 1 0 1 0
Với m = 4 , ta chọn n = 3, bất đẳng thức trên được thỏa
Gọi các bit của mã Hamming là H1 H2 và H4 (1, 2, 4 là các vị trí mà ta sẽ đặt 3 bit của mã Hamming vào dòng dữ liệu) Gọi các bit dòng dữ liệu là X3, X5, X6, X7
Tổ hợp các bit dữ liệu và bit mã, ta được :
1 2 3 4 5 6 7
H1 H2 X3 H4 X5 X6 X7 Giả sử ta chọn Parity chẵn, các bit mã sẽ được xác định như sau:
H1⊕ X3⊕ X5⊕X7 = 0
H1 = X3⊕ X5⊕X7 =1 ⊕ ( 0 ⊕ 0 ) = 1 ⊕ 0 = 1 Tương tự:
H2 = X3⊕ X6⊕X7 =1 ⊕ (1 ⊕ 0 ) = 1 ⊕ 1 = 0
H4 = X5⊕ X6⊕X7 =0 ⊕ (1 ⊕ 0 ) = 0 ⊕ 1 = 1 Bản tin bao gồm bit mã trở thành: 1 0 1 1 0 1 0
Ở máy thu để kiểm tra người ta thực hiện các phép toán:
C1 = H1⊕ X3⊕ X5⊕X7
C2 = H2⊕ X3⊕ X6⊕X7
C4 = H4⊕ X5⊕ X6⊕X7 Nếu C1= C2 = C4 = 0, không có lỗi xảy ra
Nếu C1 = 1, C2 = C4 = 0, một trong các bit ở vị trí 1, 3, 5, 7 bị lỗi Nhưng C2 = C4 = 0 có nghĩa là các bit ở vị trí 2, 3, 6, 7 và 4, 5, 6, 7 đã đúng Vậy bit sai phải ở vị trí 1
Lý luận tương tự ta có các trường hợp khác Thí dụ nếu C1= C2 = C4 = 1 thì bit lỗi là bit ở
vị trí 7
Thí dụ bản tin nhận được là: 1 0 1 1 1 1 0
Mạch dò sai sẽ tính C , C , C như sau:
Trang 40C1 = H1⊕ X3⊕ X5⊕X7 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1
C2 = H2⊕ X3⊕ X6⊕X7 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0
C4 = H4⊕ X5⊕ X6⊕ X7 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1
Vì chỉ bit X5 thuộc cả C1 và C4 nên bit sai là bit thứ 5
Quan sát tổ hợp C4 C2 C1 ta thấy C4 C2 C1 = 101 = (5)10 Như vậy giá trị có được của tổ hợp này cho ta biết vị trí bit sai cần sửa chữa
Nếu tổ hợp này bằng 0 chứng tỏ bản tin nhận đúng
Mã Hamming có thể được phát triển để dò ra hai bit sai và sửa được một bit lỗi
2.3 Một số giao thức khắc phục lỗi
Xét một số giao thức cơ bản được sử dụng nhiều trong việc điều khiển lỗi Các giao thức này được xây dựng dựa trên các giả định sau:
- Chúng ta có máy tính A muốn gởi dữ liệu cho máy tính B
- Luôn luôn có đủ dữ liệu cho máy A gởi đi
- Các giao diện giao tiếp với tầng mạng và tầng vật lý đã được định nghĩa chuẩn
- Bên nhận thông thường thực hiện việc chờ đợi một sự kiện nào đó phát sinh bằng cách gọi hàm wait_for_event()
Các giao thức được trình bày dưới dạng các chương trình viết bằng ngôn ngữ c Chúng sử
dụng các định nghĩa trong tập tin protocol.h có nội dung như sau:
typedef struct{unsigned char data[MAX_PKT]}; /* Định nghĩa kiểu của gói tin */
/* Chờ một sự kiện xuất hiện; trả về kiểu của sự kiện */