[2] Mô hình tham chiếu OSI

Mô hình tham chiếu OSI (Open System Interconnection) là mô hình được đề xuất từ năm 1977 và công bô lần đầu vào năm 1984. Đề các máy tính và các thiết bị mạng có thể truyền thông với nhau, cần phải có những qui tắc giao tiếp được các bên chấp nhận. Mô hình OSI là một khuôn mẫu, giúp chúng ta hiểu được, dữ liệu đi qua mạng như thế nào, đồng thời cũng giúp chúng ta hiểu được các chức năng mạng diễn ra tại mỗi lớp.

Hình 1 Mô hình tham chiếu OSI
Mô hình tham chiếu OSI, mô tả các thức đóng gói và truyền dữ liệu từ ứng dụng trên máy tính gửi, truyền dẫn qua môi trường mạng đến ứng dụng qua máy tính nhận. 
Mô hình OSI gồm có 7 lớp, mỗi lớp mô tả một phần chức năng độc lập như sau :

Hình 2 Bảy lớp chức năng trên mô hình OSI
  • Application (Lớp 7) : Giao diện tương tác giữa ứng dụng và dịch vụ mạng
  • Presentation (Lớp 6) : Thỏa thuận dạng trao đổi dữ liệu
  • Session (Lớp 5) : Thiết lập và duy trì các phiên giao dịch giữa hai Host
  • Transport (Lớp 4) : Xác định phương thức và đảm bảo việc truyền thông giữa 2 Host diễn ra thông suốt, tối ưu nhất
  • Network (Lớp 3) : Định hướng dữ liệu truyền trong môi trường liên mạng, đảm bảo đường đi tối ưu nhất cho dữ liệu truyền
  • Datalink (Lớp 2) : Cung cấp phương pháp truy cập đường truyền, cách thức đóng gói dữ liệu cho các loại đường truyền.
  • Physical (Lớp 1) : Lớp vật lý, chuyển đổi dữ liệu thành tín hiệu số. Ứng với các bit nhị phân và truyền đi.

Quá trình xử lý và vận chuyển của một gói dữ liệu (Encapsulation và De-encapsulation)

Hình 3 Quá trình xử lý và vận chuyển gói tin

Quá trình máy gửi (Host A)  xử lý dữ liệu:
  • Người dùng cung cấp thông tin cho các ứng dụng hoạt động ở lớp Application như văn bản, hình ảnh, âm thanh,...
  • Các thông tin ứng dụng được vận chuyển xuống lớp Presentation để chuyển đổi thành những định dạng chung, mã hóa và nén dữ liệu.
  • Dữ liệu tiếp tục được chuyển xuống lóp Session để bổ sung các thông tin về phiên giao dịch
  • Dữ liệu tiếp tục được chuyển xuống lớp Transport, tại lớp này dữ liệu được cắt ra thánh nhiều phân đoạn (Segment) và bổ sung thêm các thông tin về phương thức vận chuyển, để đảm bảo độ tin cậy.
  • Dữ liệu được chuyển xuống lớp Network. Tại lớp này , các phân đoạn (Segment) sẽ được đóng gói thành các gói tin (Packet), trong đó chưa các thông tin về định tuyến đường đi
  • Dữ liệu tiếp tục được chuyển xuống lớp Datalink. Tại lớp này, các gói tin (Packets) sẽ được đóng thành những khung (Frame) và bổ sung thêm các thông tin để kiểm tra gói tin (kiểm ở Host nhận)
  • Cuối cùng, mỗi khung (Frame) sẽ được lớp Physical chuyển thành một chuỗi các Bit nhị phân và đẩy lên phương tiện truyền dẫn để truyền đến các thiết bị khác.
Quá trình truyền dữ liệu từ máy gửi (Host A) đến máy nhận (Host B)
  • Quá trình đóng gói dữ liệu trên máy gửi
  • Lớp Physical trên máy gửi phát tín hiệu lên môi trường truyền tải, để truyền dữ liệu
  • Lớp Physical trên máy nhận, nhận dữ liệu
  • Quá trình gỡ gói, xử lý dữ liệu trên máy nhận.
Giữa bước 1 và 2 là quá trình tìm đường đi của gói tin. Thông thường, máy gửi đã biết địa chỉ IP của máy nhận. Vì thế, sau khi xác nhận được địa chỉ IP của máy nhận thì lớp Network của máy gửi sẽ so sánh địa chỉ IP của máy nhận và địa chỉ IP của chính nó:
- Nếu cùng địa chỉ mạng thì máy gửi sẽ tìm trong bảng MAC của mình để có được địa chỉ MAC của máy nhận. Trong trường hợp không có địa chỉ MAC tương ứng, nó sẽ sử dụng giao thức ARP để truy tìm địa chỉ MAC. Sau khi đã xác định được chỉ MAC, nó sẽ lưu trữ địa chỉ MAC này vào trong bảng MAC để lớp Datalink sử dụng lại trong các lần gửi sau đó. Sau khi có được địa chỉ MAC thì máy gửi sẽ tiến hành gửi gói tin đi.
- Nếu khác địa chỉ mạng, thì máy gửi sẽ tiếp tục kiểm tra xem máy có được khai báo Default Gateway hay không
  • Nếu có khai báo Default Gateway thì máy gửi sẽ tiến hành gửi gói tin thông qua Default Gateway
  • Nếu không có khai báo Default Gateway thì máy gửi sẽ loại bỏ gói tin và thông báo " Destination Host Unreachable "
Quá trình máy nhận (Host B) xử lý dữ liệu
  • Lớp Physical kiểm tra quá trình đồng bộ Bit và đặt chuỗi Bit đã nhận được vào vùng nhớ đệm. Sau đó thông báo cho lớp Datalink dữ liệu đã được nhận
  • Lớp Datalink kiểm tra lỗi Frame trong trường FCS (Frame check sequence) đươc đóng trong gói dữ kiệu. Nếu có lỗi Frame sẽ được loại bỏ. Sau đó kiểm tra tiếp địa chỉ MAC được đóng trong gói, xem có trùng với địa chỉ MAC của máy nhận hay không. Nếu đúng, thì nó sẽ loại bỏ header và chuyển lên lớp Network.
  • Ở lớp Network, địa chỉ IP được đóng trong gói tin sẽ được kiểm tra xem có đúng với địa chỉ IP của máy nhận hay không. Nếu đúng thì dữ liệu sẽ tiếp tục được chuyển lên cho lớp Transport
  • Ở lớp Transport, định danh các phân đoạn được sử lý. Các thông tin ACK (Acknowledge), NAK (Negative-Acknowledge) cũng được xử lý ở lớp này. Sau khi quá trình phục hồi lỗi và sắp xếp thứ tự các phân đoạn, dữ liệu được đưa lên lớp Session.
  • Lớp Session đàm bảo một chuỗi các thông điệp đã trọn vẹn. Sau khi các luồng đã hoàn tất, lớp Session chuyển dữ liệu sau header lớp 5 lên cho lớp Presentaion xử lý.
  • Dữ liệu được lớp Presentaion xử lý bằng cách chuyển đổi dạng thức dữ liệu. Sau đó kết quả chuyển lên cho lớp Application
  • Lớp Application xử lý header cuối cùng. Header này chưa các tham số thỏa thuận giữa hai trình ứng dụng. Do vậy tham số này thường chỉ được trao đổi lúc khởi động quá trình truyển thông giữa hai trình ứng dụng.