Khái niệm mô hình OSI
ISO (the International Standards Organization) là một tổ chức được thành lập năm 1971 với mục đích thiết lập các tiêu chuẩn quốc tế. Một trong các chuẩn ISO bao hàm mọi mặt của truyền thông mạng là mô hình OSI – Open Systems Interconnection model (Mô hình liên kết giữa các hệ thống mở). Đây là mô hình cho phép bất cứ hai hệ thống nào (cho dù khác nhau) có thể truyền thông với nhau mà không cần quan tâm đến kiến trúc bên dưới của chúng. Các giao thức của riêng một hãng sản xuất thường ngăn ngừa việc truyền thông giữa hai hệ thống không cùng một kiểu. Mô hình OSI ra đời với mục đích cho phép hai hệ thống bất kì truyền thông với nhau mà không cần thay đổi về mặt logic của bất cứ phần cứng hoặc phần mềm nào bên dưới. Mô hình OSI không phải là một giao thức; nó là một mô hình để nhận biết và thiết kế một kiến trúc mạng linh động, vững chắc và có khả năng liên tác (interoperable). Chú ý phân biệt ISO là một tổ chức còn OSI là một mô hình.
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. Mô hình gồm 7 tầng riêng biệt nhưng có liên quan đến 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. Việc hiểu những quy tắc cơ bản của mô hình OSI cung cấp một cơ sở vững chắc để khám phá truyền thông dữ liệu.
▪ Tầng vật lý (Physical layer)
▪ Tầng liên kết dữ liệu (Data Link layer)
▪ Tầng mạng (Network layer)
▪ Tầng giao vận (Transport layer)
▪ Tầng phiên (Session layer)
▪ Tầng trình diễn (Presentation layer)
▪ Tầng ứng dụng. (Application layer).
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 vật lý. Nó giải quyết những vấn đề liên quan đến đặc điểm kỹ thuật về cơ và điện của giữa card ghép nối (interface) với môi trường truyền dẫn. Nó cũng 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ý liên quan đến:
+ Đặc điểm vật lý của các phương tiện (thiết bị) giao tiếp và truyền thông: Tầng vật lý xác định các đặc điểm đặc tính giao diện giữa các thiết bị và các phương tiện truyền dẫn. Nó cũng xác định kiểu của phương tiện truyền dẫn thông tin.
+ Biểu diễn bit: Dữ liệu tầng vật lý là luồng bit liên tục (các chuỗi 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 hoặc quang. Tầng vật lý xác định phương thức mã hóa (các bit 0 và 1 được chuyển thành các tín hiệu như thế nào).
+ Tốc độ dữ liệu: Tốc độ truyền dẫn – số các bit được gửi đi trong một giây cũng được xác định bởi tầng vật lý. Nói cách khác, tầng vật lý xác định khoảng thời gian để truyền đi một bit.
+ Đồng bộ hóa các bit: Máy gửi và nhận phải được đồng bộ hóa ở mức bit. Nói cách khác, đồng hồ của máy gửi và nhận phải được đồng bộ hóa.
+ Cấu hình đường 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 (point-to-point), 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 (multipoint), một đường truyền được nhiều thiết bị dùng chung.
+ Topo (Mô hình ghép nối) vật lý: Topo 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ó thể sử dụng topo dạng lưới (mesh topology) (mỗi thiết bị được nối với tất cả các thiết bị còn lại), topo dạng sao (star topology) (mỗi thiết bị được nối với một thiết bị trung tâm), topo dạng vòng (trắng topology) (mỗi thiết bị được nối với một thiết bị bên cạnh, cứ như vậy tạo thành vòng), hay topo dạng bus (mỗi thiết bị được nối đến một đường truyền chung).
+ 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 (half-duplex), hay song công (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.
Như vậy, theo mô tả này, tầng vật lý bao gồm: môi trường truyền dẫn, thiết bị repeater, thiết bị hub, một phần hoạt động của card mạng.
Tầng liên kết dữ liệu
Nhiệm vụ của tầng liên kết dữ liệu là truyền thông giữa hai nút nối trực tiếp với nhau. Nó biến tầng vật lý không tin cậy thành đường truyền tin cậy cho tầng mạng bên trên.
Tầng liên kết dữ liệu chịu trách nhiệm:
+ Framing – Đóng gói dữ liệu: Tầng liên kết dữ liệu chia luồng bit nhận được từ tầng mạng thành các đơn vị dữ liệu gọi là các frame.
+ Định địa chỉ vật lý: Nếu gói dữ liệu được chuyển đến thiết bị khác trong mạng, tầng liên kết dữ liệu thêm vào tiêu đề của frame địa chỉ vật lý của nơi nhận (địa chỉ đích) và có thể địa chỉ vật lý của nơi gửi (địa chỉ nguồn): Nếu gói dữ liệu được chuyển đến các thiết bị bên ngoài mạng, địa chỉ nhận sẽ là địa chỉ của thiết bị trung gian kết nối mạng ra bên ngoài.
+ 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 frame bị lỗi hoặc bị mất. Nó cũng sử dụng kỹ thuật ngăn ngừa việc tạo frame trùng lặp. Kiểm soát lỗi thường được thực hiện bằng cách thêm một trailer vào phần cuối của frame.
+ 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.
Ở tầng liên kết dữ liệu, header của frame chứa các địa chỉ vật lý. Phần còn lại của header chứa các thông tin cần thiết cho tầng liên kết dữ liệu. Trailer thường chứa các bit dư để thực hiện kiểm soát lỗi.
Theo mô tả này, tầng liên kết dữ liệu chứa các giao thức của Ethernet (hoạt động trên card mạng), thiết bị bridge/switch.
Tầng mạng
Tầng mạng chịu trách nhiệm chuyển gói dữ liệu từ nơi gửi đến nơi nhận, gói dữ liệu có thể phải đi qua nhiều mạng (các chặng trung gian). Tầng liên kết dữ liệu thực hiện truyền gói dữ liệu giữa hai thiết bị trong cùng một mạng, còn tầng mạng đảm bảo rằng gói dữ liệu sẽ được chuyển từ nơi gửi đến đúng nơi nhận.
Nếu hai thiết bị có cùng một môi trường truyền thì tầng mạng không cần thiết. Tuy nhiên, nếu hai thiết bị ở trong hai mạng khác nhau, ở giữa chúng có nhiều thiết bị kết nối trung gian thì cần phải có tầng mạng để thực hiện việc chuyển dữ liệu từ nguồn đến đúng đích.
Tầng mạng có nhiệm vụ:
+ Định địa chỉ logic: Địa chỉ vật lý của tầng nên kết dữ liệu 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ó 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 tiêu đề vào mỗi gói dữ liệu gửi đi, trong tiêu đề 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ị. kết nối trung gian (router hoặc gateway) phải xác định tuyến đường (định tuyến) cho các gói dữ liệu để chúng đến được nơi nhận cuối cùng.
Theo mô tả này, tầng mạng chứa giao thức IP và các giao thức định tuyến (hoạt động trên router).
Tầng giao vận
Tầng giao vận chịu trách nhiệm chuyển toàn bộ thông điệp từ nơi gửi đến nơi nhận. Tầng mạng chuyển từng gói dữ liệu riêng lẻ từ nơi gửi đến nơi nhận mà không quan tâm đến quan hệ giữa các gói dữ liệu. Tầng mạng xử lý mỗi gói dữ liệu một cách độc lập, mặc dù các gói dữ liệu có thể thuộc về cùng một thông điệp hay thuộc các thông điệp khác nhau. Nói cách khác, tầng giao vận đảm bảo gửi thông điệp đến nơi nhận một cách toàn vẹn.
Tầng giao vận tạo ra một kết nối logic giữa hai cổng đầu cuối: tất cả các gói dữ liệu của cùng một thông điệp được truyền theo đường kết nối đó. Có ba giai đoạn của kết nối: thiết lập kết nối, truyền dữ liệu, giải phóng kết nối. Do phải truyền tất cả các gói dữ liệu trên một kết nối, tầng giao vận 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 giao vận chịu trách nhiệm:
+ Địa chỉ cổng (port number): Các máy tính thường chạy nhiều chương trình tại cùng một thời điểm.. Vì vậy việc chuyển thông điệp không chỉ là truyền dữ liệu từ một máy tính này đến một máy tính khác mà phải chuyển thông điệp từ tiến trình cụ thể trên máy tính này đến tiến trình cụ thể trên một máy tính khác. Header được thêm vào tại tầng giao vận phải chứa thông tin về một kiểu địa chỉ – địa chỉ cổng hay địa chỉ tiến trình. Sau khi tầng mạng chuyển gói dữ liệu tới thiết bị nhận, tầng giao vận ở phía nhận phải chuyển toàn bộ thông điệp đến đúng tiến trình nhận.
+ Phân mảnh và tái hợp: Mỗi thông điệp được chia thành các đoạn (segment) nhỏ, được truyền độc lập với nhau. Mỗi segment được gán một số thứ tự. Số thứ tự này cho phép tầng giao vận phía nhận lắp ráp các segment lại thành một thông điệp hoàn chỉnh hay phát hiện segment nào bị mất trong khi truyền.
+ Kiểm soát kết nối: Tầng giao vận có thể là hướng nối hoặc không hướng nối. Thực thể giao vận không hướng nối xử lý segment như một gói dữ liệu độc lập và chuyển nó đến tầng giao vận của máy nhận. Một tầng giao vận hướng nối thực hiện kết nối với tầng giao vận của máy nhận trước, sau đó mới chuyển các gói dữ liệu đi. Sau khi tất cả dữ liệu được chuyển đi, kết nối được giải phóng.
+ Kiểm soát lưu lượng: Giống như tầng liên kết dữ liệu, tầng giao vận chịu trách nhiệm kiểm soát lưu lượng. Tuy nhiên, việc kiểm soát lưu lượng tại tầng này được thực hiện đầu cuối chứ không phải trên đường truyền đơn.
+ Kiểm soát lỗi: Cũng giống như tầng liên kết dữ liệu, tầng giao vận chịu trách nhiệm kiểm soát lỗi. Tuy nhiên việc kiểm soát lỗi ở tầng này được thực hiện tại các thiết bị đầu cuối chứ không phải trên đường truyền trung gian. Tầng giao vận ở phía gửi đảm bảo rằng toàn bộ thông điệp đến tại tầng giao vận phía nhận là không bị lỗi (hỏng, mất, dư thừa). Việc khắc phục lỗi thường được thực hiện bằng cách yêu cầu truyền lại.
Tầng phiên
Các dịch vụ của ba tầng đầu (vật lý, liên kết dữ liệu, và mạng) chưa đủ để hai tiến trình trên hai thiết bị có thể truyền thông. Tầng phiên đóng vai trò kiểm soát viên” hội thoại (dialog) của mạng với nhiệm vụ thiết lập, duy trì và đồng bộ hóa tính liên tác giữa hai bên.
Tầng phiên chịu trách nhiệm về:
+ Kiểm soát hội thoại: Tầng phiên cho phép hai thực thể (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 mainframe 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 (trong thuật ngữ mạng 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 file có 2000 trang, cứ sau 100 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 100 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 523, việc truyền lại sẽ được bắt đầu từ trang 501, không cần phải truyền lại các trang từ 1 đến 500.
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ụ:
+ Phiên dịch (Translation): Các tiến trình trên hai thiết bị trao đổi các thông tin dưới dạng chuỗi ký tự, số, … 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 hệ thống mã hóa khác nhau, tầng trình diễn chịu trách nhiệm chuyển đổi giữa các 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.
+ Mã hóa: 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 thành một dạng khác và gửi nó đến phía nhận – đây là công việc mã hóa. Phía nhận thực hiện quá trình ngược lại biến thông điệp nhận được thành dạng ban đầu. Quá trình này được gọi là giải mã.
+ Nén: Nén dữ liệu làm giảm số lượng bit trên đường truyền. 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.
Tầng ứng dụng
Tầng ứng dụng cho phép người dùng (con người hay phần mềm) truy cập vào mạng bằng cách cung cấp giao diện người sử dụng, hỗ trợ các dịch vụ như gửi thư điện tử, truy cập và chuyển file từ xa, quản lý CSDL dùng chung và một số dịch vụ khác về thông tin. Chú ý rằng tầng ứng dụng sẽ tạo ra dữ liệu thực sự chứ không có các thông tin tiêu đề.