Kiến trúc phân tầng và mô hình OSI
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, hầu hết các máy tính đều được phân tí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, ...
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, hầu hết các máy tính đều được phân tí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 trước 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 nhà thiết kế. Trong hầu hết các mạng, mục đích của mỗi tầng là để cung cấp một số dịch vụ nhất định cho tầng cao hơn → mỗi tầng khi sử dụng không cần quan tâm đến các thao tác chi tiết mà các dịch vụ đó phải thực hiện.
- Nguyên tắc của kiến trúc mạng phân tầng:
- Mỗi hệ thống trong một mạng đều có cấu trúc tầng như nhau (số lượng tầng, chức năng của mỗi tầng)
- Dữ liệu không được truyền trực tiếp từ tầng 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 dữ liệu cùng với các thông tin điều khiển chuyển đến tầng ngay dưới nó và cứ thế cho đến tầng thấp nhất. Bên dưới tầng này là đường truyền vật lý, ở đấy sự truyền tin mới thực sự diễn ra. Đối với bên nhận thì các thông tin được chuyển từ tầng dưới lên trên cho tới tầng i của hệ thống nhận
- Giữa hai hệ thống kết nối chỉ ở tầng thấp nhất mới có liên kết vật lý còn ở tầng cao hơn chỉ là liên kết logic hay liên kết ảo
Các vấn đề cần phải giải quyết khi thiết kế các tầng
- Cơ chế nối, tách: mỗi một tầng cần có một cơ chế để thiết lập kết nối (tức là phải có một cơ chế để đánh địa chỉ tất cả các máy trong mạng), và có một cơ chế để kết thúc kết nối khi mà sự kết nối là không cần thiết nữa
- Các quy tắc truyền dữ liệu: Trong các hệ thống khác nhau dữ liệu có thể truyền theo một số cách khác nhau:
- Truyền một hướng
- Truyền theo cả hai hướng không đồng thời
- Truyền hai hướng đồng thời
- Kiểm soát lỗi: Đường truyền vật lý nói chung là không hoàn hảo, cần phải thoả thuận dùng mã nào để phát hiện, kiểm tra lỗi và sửa lỗi. Phía nhận phải có khả năng thông báo cho bên gửi biết các gói tin nào đã thu đúng, gói tin nào phát lại.
- Độ dài bản tin: Không phải mọi quá trình đều chấp nhận độ dài gói tin là tuỳ ý, cần phải có cơ chế để chia bản tin thành các gói tin đủ nhỏ
- Thứ tự các gói tin: Các kênh truyền có thể giữ không đúng thứ tự các gói tin → có cơ chế để bên thu ghép đúng thứ tự ban đầu.
- Tốc độ phát và thu dữ liệu: Bên phát có tốc độ cao có thể làm “lụt” bên thu có tốc độ thấp. Cần phải có cơ chế để bên thu báo cho bên phát biết tình trạng đó.
Tầng (layer)
- Mọi quá trình trao đổi thông tin giữa hai đối tượng đều thực hiện qua nhiều bước, các bước này độc lập tương đối với nhau. Thông tin được trao đổi giữa hai đối tượng A, B qua 3 bước:
- Phát tin: Thông tin chuyển từ tầng cao → tầng thấp
- Nhận tin: Thông tin chuyển từ tầng thấp → tầng cao
- Quá trình trao đổi thông tin trực tiếp qua đường truyền vật lý (thực hiện ở tầng cuối cùng)
Giao diện, dịch vụ, đơn vị dữ liệu
- Mối quan hệ giữa hai tầng kề nhau gọi là giao diện
- Mối quan hệ giữa hai tầng đồng mức của hai hệ thống khác nhau gọi là giao thức
- Thực thể (entity): là thành phần tích cực trong mỗi tầng, nó có thể là một tiến trình trong hệ đa xử lý hay là một trình con các thực thể trong cùng 1 tầng ở các hệ thống khác nhau (gọi là thực thể ngang hàng hay thực thể đồng mức)
- Mỗi thực thể có thể truyền thông lên tầng trên hoặc tầng dưới nó thông qua một giao diện (interface). Giao diện gồm một hoặc nhiều điểm truy nhập dịch vụ (Service Access Point - SAP). Tại các điểm truy nhập dịch vụ tầng trên chỉ có thể sử dụng dịch vụ do tầng dưới cung cấp.
- Thực thể được chia làm hai loại: thực thể cung cấp dịch vụ và sử dụng dịch vụ
- Thực thể cung cấp dịch vụ (service provide): là các thực thể ở tầng N cung cấp dịch vụ cho tầng N +1
- Thực thể sử dụng dịch vụ (service user): đó là các thực thể ở tầng N sử dụng dịch vụ do tầng N - 1 cung cấp
- Đơn vị dữ liệu sử dụng giao thức (Protocol Data Unit - PDU)
- Đơn vị dữ liệu dịch vụ (Service Data Unit - SDU)
- Thông tin điều khiển (Protocol Control Information - PCI)
Một đơn vị dữ liệu mà 1 thực thể ở tầng N của hệ thống A gửi sang thực thể ở tầng N ở một hệ thống B không bằng đường truyền trực tiếp mà phải truyền xuống dưới để truyền bằng tầng thấp nhất thông qua đường truyền vật lý.
- Dữ liệu ở tầng N-1 nhận được do tầng N truyền xuống gọi là SDU.
- Phần thông tin điều khiển của mỗi tầng gọi là PCI.
- Ở tầng N-1 phần thông tin điều khiển PCI thêm vào đầu của SDU tạo thành PDU. Nếu SDU quá dài thì cắt nhỏ thành nhiều đoạn, mỗi đoạn bổ sung phần PCI, tạo thành nhiều PDU.
Bên hệ thống nhận trình tự diễn ra theo chiều ngược lại. Qua mỗi tầng PCI tương ứng sẽ được phân tích và cắt bỏ khỏi PDU trước khi gửi lên tầng trên.
Giới thiệu
- Khi thiết kế các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng của mình. Từ đó dẫn đến tình trạng không tương thích giữa các mạng: phương pháp truy nhập đường truyền khác nhau, sử dụng họ giao thức khác nhau,... Sự không tương thích đó làm cho người sử dụng các mạng khác nhau không thể trao đổi thông tin với nhau được. Sự thúc bách của khách hàng khiến cho các nhà sản xuất và những nhà nghiên cứu, thông qua tổ chức chuẩn hoá quốc tế và quốc gia để tìm ra một giải pháp chung dẫn đến sự hội tụ của các sản phẩm mạng. Trên cơ sở đó những nhà thiết kế và các nghiên cứu lấy đó làm khung chuẩn cho sản phẩm của mình.
- 1977 Tổ chức tiêu chuẩn hoá quốc tế (International Organization for Standardization - ISO) đưa ra một tiêu chuẩn về mạng.
- 1984 ISO đưa ra mô hình 7 tầng gọi là mô hình tham chiếu cho việc nối kết các hệ thống mở (Reference Model for Open Systems Interconnection - OSI Reference Model) gọi tắt là mô hình OSI. Mô hình này được dùng làm cơ sở để nối kết các hệ thống mở phục vụ cho các ứng dụng phân tán → Mọi hệ thống tuân theo mô hình tham chiếu OSI đều có thể truyền thông tin với nhau.
Chức năng các tầng trong mô hình OSI
Tầng vật lý (physical)
- Tầng vật lý liên quan đến truyền dòng các bit giữa các máy với nhau bằng đường truyền vật lý. Tầng này liên kết các giao diện hàm cơ, quang và điện với cáp. Ngoài ra nó cũng chuyển tải những tín hiệu truyền dữ liệu do các tầng ở trên tạo ra.
- Việc thiết kế phải bảo đảm nếu bên phát gửi bít 1 thì bên thu cũng phải nhận bít 1 chứ không phải bít 0
- Tầng này phải quy định rõ mức điện áp biểu diễn dữ liệu 1 và 0 là bao nhiêu von trong vòng bao nhiêu giây
- Chiều truyền tin là 1 hay 2 chiều, cách thức kết nối và huỷ bỏ kết nối
- Định nghĩa cách kết nối cáp với card mạng: bộ nối có bao nhiêu chân, chức năng của mỗi chân
Tóm lại: Thiết kế tầng vật lý phải giải quyết các vấn đề ghép nối cơ, điện, tạo ra các hàm, thủ tục để truy nhập đường truyền, đường truyền các bít.
Tầng liên kết dữ liệu (data link)
- Cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy: gửi các khối dữ liệu với cơ chế đồng bộ hoá, kiểm soát lỗi và kiểm soát luồng dữ liệu cần thiết
- Các bước tầng liên kết dữ liệu thực hiện:
- Chia nhỏ thành các khối dữ liệu frame (vài trăm bytes), ghi thêm vào đầu và cuối của các frame những nhóm bít đặc biệt để làm ranh giới giữa các frame
- Trên các đường truyền vật lý luôn có lỗi nên tầng này phải giải quyết vấn đề sửa lỗi (do bản tin bị hỏng, mất và truyền lại)
- Giữ cho sự đồng bộ tốc độ giữa bên phát và bên thu
- Tóm lại: tầng liên kết dữ liệu chịu trách nhiệm chuyển khung dữ liệu không lỗi từ máy tính này sang máy tính khác thông qua tầng vật lý. Tầng này cho phép tầng mạng truyền dữ liệu gần như không phạm lỗi qua liên kết mạng
Tầng mạng (Network)
- Lập địa chỉ các thông điệp, diễn dịch địa chỉ và tên logic thành địa chỉ vật lý
- Kiểm soát và điều khiển đường truyền:Định rõ các bó tin được truyền đi theo con đường nào từ nguồn tới đích. Các con đường đó có thể là cố định đối với những mạng ít thay đổi, cũng có thể là động nghĩa là các con đường chỉ được xác định trước khi bắt đầu cuộc nói chuyện. Các con đường đó có thể thay đổi tuỳ theo trạng thái tải tức thời.
- Quản lý lưu lượng trên mạng: chuyển đổi gói, định tuyến, kiểm soát sự tắc nghẽn dữ liệu (nếu có nhiều gói tin cùng được gửi đi trên đường truyền thì có thể xảy ra tắc nghẽn )
- Kiểm soát luồng dữ liệu và cắt hợp dữ liệu (nếu cần)
Chú ý: Trong mạng phân tán nhiệm vụ của tầng rất đơn giản thậm chí có thể không tồn tại
Tầng giao vận (Transport)
- Thực hiện việc truyền dữ liệu giữa hai đầu nút (end - to - end)
- Thực hiện kiểm soát lỗi, kiểm soát luồng dữ liệu từ máy → máy. Đảm bảo gói tin truyền không phạm lỗi, theo đúng trình từ, không bị mất mát hay sao chép.
- Thực hiện việc ghép kênh, phân kênh cắt hợp dữ liệu (nếu cần). Đóng gói thông điệp, chia thông điệp dài thành nhiều gói tin và gộp các gói nhỏ thành một bộ
- Tầng này tạo ra một kết nối cho mỗi yêu cầu của tầng trên nó. Khi có nhiều yêu cầu từ tầng trên với thông lượng cao thì nó có thể tạo ra nhiều kết nối và cùng một lúc có thể gửi đi nhiều bó tin trên đường truyền
Tầng phiên (Session)
- Cung cấp phương tiện truyền thông giữa các ứng dụng: cho phép người sử dụng trên các máy khác nhau có thể thiết lập, duy trì, huỷ bỏ và đồng bộ hoá các phiên truyền thông giữa họ với nhau.
- Nhiệm vụ chính:
- Quản lý thẻ bài đối với những nghi thức: hai bên kết nối để truyền thông tin không đồng thời thực hiện một số thao tác. Để giải quyết vấn đề này tầng phiên cung cấp 1 thẻ bài, thẻ bài có thể được trao đổi và chỉ bên nào giữ thẻ bài mới có thể thực hiện một số thao tác quan trọng
- Vấn đề đồng bộ: khi cần truyền đi những tập tin dài tầng này chèn thêm các điểm kiểm tra (check point) vào luồng dữ liệu. Nếu phát hiện thấy lỗi thì chỉ có dữ liệu sau điểm kiểm tra cuối cùng mới phải truyền lại
Tầng trình diễn (Presentation)
- Quyết định dạng thức trao đổi dữ liệu giữa các máy tính mạng. Người ta có thể gọi đây là bộ dịch mạng. ở bên gửi, tầng này chuyển đổi cú pháp dữ liệu từ dạng thức do tầng ứng dụng gửi xuống sang dạng thức trung gian mà ứng dụng nào cũng có thể nhận biết. ở bên nhận, tầng này chuyển các dạng thức trung gian thành dạng thức thích hợp cho tầng ứng dụng của máy nhận.
- Tầng trình diễn chịu trách nhiệm chuyển đổi giao thức, biên dịch dữ liệu, mã hoá dữ liệu, thay đổi hay chuyển đổi ký tự và mở rộng lệnh đồ hoạ.
- Nén dữ liệu nhằm làm giảm bớt số bít cần truyền
- ở tầng này có bộ đổi hướng hoạt đông để đổi hướng các hoạt động nhập/xuất để gửi đến các tài nguyên trên mấy phục vụ
Tầng ứng dụng (Application)
- Cung cấp các phương tiện để người sử dụng có thể truy nhập được vào môi trường OSI, đồng thời cung cấp các dịch vụ thông tin phân tán.
- Tầng này đóng vai trò như cửa sổ dành cho hoạt động xử lý các trình ứng dụng nhằm truy nhập các dịch vụ mạng. Nó biểu diễn những dịch vụ hỗ trợ trực tiếp các ứng dụng người dùng, chẳng hạn như phần mềm chuyển tin, truy nhập cơ sở dữ liệu và email.
- Xử lý truy nhập mạng chung, kiểm soát lỗi và phục hồi lỗi.
Dịch vụ và hàm
- Dịch vụ là một dãy, một tập các thao tác sơ cấp hay là các hàm nguyên thủy mà một tầng cung cấp cho tầng trên nó. Dịch vụ liên quan đến 2 tầng kề nhau
Dịch vụ định hướng liên kết và dịch vụ không liên kết
ở mỗi tầng trong mô hình OSI có hai loại dịch vụ: dịch vụ định hướng liên kết (connection - oriented service) và dịch vụ không định hướng liên kết (connectionless service)
- Dịch vụ định hướng liên kết: là dịch vụ theo mô hình điện thoại, trước khi truyền dữ liệu cần thiết lập một liên kết logic giữa các thực thể đồng mức
- Dịch vụ không liên kết: không cần phải thiết lập liên kết logic và một đơn vị dữ liệu được truyền là độc lập với các đơn vị dữ liệu trước hoặc sau nó. Loại dịch vụ này theo mô hình bưu điện: mỗi bản tin hay mỗi bức thư cần có một địa chỉ cụ thể bên nhận
Trong phương pháp liên kết quá trình truyền thông gồm có 3 giai đoạn:
- Thiết lập liên kết (logic): hai thực thể đồng mức ở hai hệ thống sẽ thương lượng với nhau về tập các tham số sẽ sử dụng trong giai đoạn truyền sau (thể hiện bằng hàm connect)
- Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và quản lý kèm theo (kiểm soát lỗi, kiểm soát luồng dữ liệu, cắt/hợp dữ liệu,...) để tăng độ tin cậy và hiệu quả của việc truyền dữ liệu (hàm DATA).
- Huỷ bỏ liên kết (logic): giải phóng các tài nguyên hệ thống đã được cấp phát cho liên kết để dùng cho các liên kết khác (hàm DISCONNECT)
Trong mỗi loại dịch vụ được đặc trưng bằng chất lượng dịch vụ. Có dịch vụ đòi hỏi bên nhận tin gửi thông báo xác nhận khi đó độ tin cậy được bảo đảm
Có những ứng dụng không chấp nhận sự chậm trễ do phải xác nhận sự truyền tin (VD hệ thống truyền tin). Nhưng có nhiều ứng dụng như thư tín điện tử người gửi chỉ cần có một dịch vụ với độ tin cậy cao, chấp nhận sự chậm trễ
Các hàm nguyên thuỷ của dịch vụ
Một dịch vụ gồm 1 số thao tác sơ cấp hay các hàm nguyên thuỷ. Một thực thể cung cấp dịch vụ cho một thực thể ở tầng trên nó thông qua việc gọi các hàm nguyên thuỷ. Các hàm nguyên thuỷ chỉ rõ chức năng cần phải thực hiện và dùng để chuyển dữ liệu vào thông tin điều khiển. Có 4 hàm nguyên thuỷ được dùng để xác định tương tác giữa các tầng kề nhau
- Request (yêu cầu): người sử dụng dịch vụ dùng để gọi chức năng hoặc yêu cầu thực thể khác thực hiện một công việc nào đó.
- Indication (chỉ báo): người cung cấp dịch vụ dung để gọi một chức năng nào đó, chỉ báo một chức năng đã được gọi ở một điểm truy nhập dịch vụ
- Response (trả lời): người sử dụng dịch vụ dùng để hoàn tất một chức năng đã được gọi từ trước bởi một hàm nguyên thuỷ Indication ở điểm truy nhập dịch vụ đó
- Confirm (xác nhận): người cung cấp dịch vụ dùng để hoàn tất một chức năng đã được gọi từ trước bởi một hàm nguyên thuỷ Response tại điểm truy nhập dịch vụ
Quy trình thực hiện một giao tác giữa hai hệ thống A và B :
- Tầng N+1 của A gửi xuống tầng N kề dưới nó một hàm Request
- Tầng N của A cấu tạo một đơn vị dữ liệu để gửi yêu cầu đó sang tầng N của B theo giao thức tầng N đã xác định
- Nhận được yêu cầu, tầng N của B chỉ báo lên tầng N+1 kề trên nó bằng hàm Indication
- Tầng N của B trả lời bằng hàm Response gửi xuống tầng N kề dưới nó
- Tầng N của B cấu tạo một đơn vị dữ liệu để gửi trả lời đó về tầng N của A theo giao thức tầng N đã xác định
- Nhận được trả lời, tầng N của A xác nhận với tầng N+1 kề trên nó bằng hàm Confirm, kết thúc một giao tác giữa hai hệ thống.
Các thao tác sơ cấp nói chung là có tham số (VD Connect.Request). Các tham số gồm:
- Địa chỉ máy gọi
- Địa chỉ máy nhận
- Loại dịch vụ
- Kích thước cực đại của bản tin
Nếu thực thể bị gọi không chấp nhận kích thước cực đại mà bản tin đưa ra nó có thể yêu cầu kích thước mới trong thao tác của hàm Response. Các chi tiết của quá trình thoả thuận là một phần của nghi thức. Các dịch vụ có thể xác nhận hoặc không xác nhân.
- Các dịch vụ xác nhận có thể có các hàm nguyên thuỷ: Request, Indication, Response, Confirm
- Dịch vụ không xác nhận có hai hàm nguyên thuỷ: Resquest, Indication
Trong thực tế loại dịch vụ connect luôn luôn là có xác nhận, còn các loại dịch vụ DATA là không xác nhận hoặc có xác nhận
STT | Hàm nguyên thuỷ | ý nghĩa |
CONNECT.Request | Yêu cầu thiết lập liên kết | |
CONNECT.Indication | Báo cho thực thể bị gọi | |
CONNECT.Response | Đồng ý hay không đồng ý | |
CONNECT.Confirm | Xác nhận với bên gọi việc kết nối có được chấp nhận hay không | |
DATA.Request | Bên gọi yêu cầu truyền dữ liệu | |
DATA.Indication | Báo cho bên nhận biết là dữ liệu đã đến | |
DISCONNECT.Request | Yêu cầu huỷ bỏ liên kết | |
DISCONNECT.Indication | Báo cho bên nhận |
Ví dụ:
- CONNECT.Request Bạn quay số điện thoại của cô Lan
- CONNECT.Indication Chuông reo
- CONNECT.Response Cô Lan nhấc máy
- CONNECT.Confirm Chuông ngừng reo
- DATA.Request Bạn nói chuyện với cô Lan
- DATA.Indication Cô Lan nghe thấy bạn nói
- DISCONNECT.Request Cô trả lời bạn
- DISCONNECT.Indication Bạn nghe thấy câu trả lời
- DISCONNECT.Request Bạn cúp máy
- DISCONNECT.Indication Cô Lan nghe thấy bạn cúp máy.