OSI Model
Mô Hình OSI Cho Người Mới Làm Quen Với Network
OSI Model là gì?
Open Systems Interconnection (OSI) model là một khung khái niệm được phát triển bởi Tổ chức Tiêu chuẩn Quốc tế (ISO) nhằm chuẩn hóa giao tiếp mạng bằng cách chia nó thành bảy lớp trừu tượng, mỗi lớp xử lý các chức năng cụ thể để cho phép khả năng tương tác giữa các hệ thống đa dạng.
Mô hình tham chiếu này cung cấp một ngôn ngữ phổ quát để hiểu cách dữ liệu di chuyển qua mạng, từ truyền tải vật lý đến tương tác cấp ứng dụng, mà không chỉ định các giao thức cụ thể.
So Sánh OSI vs. TCP/IP Model
OSI Model
7 Lớp- Khung tham chiếu lý thuyết
- Được phát triển bởi ISO vào cuối những năm 1970
- Tách biệt lớp nghiêm ngặt
- Sử dụng cho mục đích giáo dục và khái niệm
- Xử lý lỗi phân tán
TCP/IP Model
4 Lớp- Triển khai thực tế
- Được phát triển bởi DARPA cho ARPANET
- Tương tác lớp linh hoạt
- Nền tảng cho Internet hiện đại
- Xử lý lỗi tại lớp Transport
Bảy Lớp của OSI
Mỗi lớp cung cấp dịch vụ cho lớp bên trên và dựa vào lớp bên dưới
Application Layer
Cung cấp dịch vụ mạng trực tiếp cho các ứng dụng người dùng cuối. Hỗ trợ các giao thức như HTTP, FTP, SMTP cho truyền tệp, email và duyệt web.
Presentation Layer
Xử lý dịch thuật dữ liệu, mã hóa và định dạng. Đảm bảo biểu diễn an toàn thông qua SSL/TLS và quản lý chuyển đổi cú pháp (ASCII sang EBCDIC).
Session Layer
Thiết lập, quản lý và kết thúc các phiên giao tiếp giữa các ứng dụng. Xử lý kiểm soát hội thoại và điểm đồng bộ hóa để phục hồi.
Transport Layer
Cung cấp giao tiếp đầu-cuối đáng tin cậy. Phân đoạn dữ liệu thành các gói, đảm bảo giao hàng với xác nhận sử dụng giao thức TCP hoặc UDP.
Network Layer
Quản lý định tuyến đầu-cuối và địa chỉ logic. Sử dụng các giao thức như IP để chuyển tiếp gói qua nhiều mạng thông qua router.
Data Link Layer
Chịu trách nhiệm truyền dữ liệu từ nút đến nút. Đóng khung các bit thành các đơn vị logic, phát hiện lỗi qua checksum sử dụng các giao thức như Ethernet.
Physical Layer
Xử lý truyền các bit thô qua phương tiện vật lý. Xác định các thông số kỹ thuật điện, cơ khí cho các thiết bị như cáp, hub và repeater.
Luồng Dữ Liệu trong OSI Model
Xử lý gói chi tiết thông qua đóng gói và giải đóng gói
Đóng Gói (Gửi)
Dữ liệu di chuyển xuống từ Lớp 7 đến Lớp 1, với mỗi lớp thêm header riêng (và đôi khi trailer) để tạo Protocol Data Unit (PDU).
Giải Đóng Gói (Nhận)
Dữ liệu di chuyển lên từ Lớp 1 đến Lớp 7, với mỗi lớp loại bỏ header/trailer tương ứng và xử lý thông tin.
🔄 Xử Lý Gói Theo Từng Lớp
Application Layer
Dữ liệuHành động người dùng: Người dùng soạn email, nhập URL, hoặc khởi động bất kỳ hành động ứng dụng mạng nào.
Chọn giao thức: Ứng dụng chọn giao thức phù hợp (HTTP cho web, SMTP cho email, FTP cho truyền tệp).
Chuẩn bị dữ liệu: Ứng dụng định dạng dữ liệu và chuyển nó đến Presentation Layer dưới dạng Dữ liệu thô.
Presentation Layer
Dữ liệu đã định dạngDịch dữ liệu: Chuyển đổi dữ liệu sang định dạng chuẩn mà cả người gửi và người nhận đều có thể hiểu (ví dụ: ASCII, EBCDIC, Unicode).
Nén: Nén dữ liệu để giảm kích thước cho truyền tải nhanh hơn (tùy chọn, phụ thuộc vào giao thức).
Mã hóa: Mã hóa dữ liệu bằng SSL/TLS cho bảo mật nếu cần, đảm bảo tính bảo mật trong quá trình truyền.
Chuyển xuống: Dữ liệu đã định dạng và bảo mật được chuyển đến Session Layer.
Session Layer
Dữ liệu phiênThiết lập phiên: Tạo và duy trì phiên giao tiếp giữa các ứng dụng nguồn và đích.
Kiểm soát hội thoại: Quản lý chế độ giao tiếp (simplex, half-duplex, hoặc full-duplex) và điều phối trao đổi dữ liệu.
Đồng bộ hóa: Thêm các điểm kiểm tra để phục hồi dữ liệu (ví dụ: mỗi 5MB trong truyền tệp 100MB) để tiếp tục sau khi gặp lỗi.
Chuyển xuống: Dữ liệu đã được quản lý phiên được chuyển đến Transport Layer để phân đoạn.
Transport Layer
Segment (TCP) / Datagram (UDP)Phân đoạn: Chia dữ liệu thành các phần nhỏ hơn gọi là segment (TCP) hoặc datagram (UDP) để phù hợp với giới hạn mạng.
Thêm header: Gắn header TCP/UDP chứa:
- Số cổng nguồn (ví dụ: 54321)
- Số cổng đích (ví dụ: 80 cho HTTP, 443 cho HTTPS, 25 cho SMTP)
- Số thứ tự (chỉ TCP, để sắp xếp)
- Số xác nhận (chỉ TCP)
- Checksum để phát hiện lỗi
Kiểm soát luồng: Triển khai windowing để quản lý tốc độ truyền và ngăn chặn làm quá tải bên nhận.
Chuyển xuống: Các segment được chuyển đến Network Layer để định tuyến.
Network Layer
PacketThêm IP header: Gắn header IP (IPv4 hoặc IPv6) chứa:
- Địa chỉ IP nguồn (ví dụ: 192.168.1.100)
- Địa chỉ IP đích (ví dụ: 203.0.113.50)
- Time to Live (TTL) để ngăn vòng lặp vô hạn
- Loại giao thức (TCP=6, UDP=17, ICMP=1)
- Header checksum để đảm bảo toàn vẹn
Quyết định định tuyến: Xác định đường dẫn tốt nhất đến đích bằng bảng định tuyến và thuật toán (OSPF, BGP, RIP).
Phân mảnh: Nếu packet quá lớn cho mạng tiếp theo, phân mảnh nó thành các packet nhỏ hơn (mỗi packet có header IP riêng).
Chuyển xuống: Các packet được chuyển tiếp đến Data Link Layer để giao hàng cục bộ.
Data Link Layer
FrameThêm Ethernet header: Thêm frame header chứa:
- Địa chỉ MAC nguồn (ví dụ: AA:BB:CC:DD:EE:FF)
- Địa chỉ MAC đích (từ phân giải ARP)
- Loại frame (ví dụ: 0x0800 cho IPv4, 0x86DD cho IPv6)
Thêm trailer (FCS): Gắn Frame Check Sequence (CRC checksum) để phát hiện lỗi truyền tại cấp vật lý.
Kiểm soát truy cập phương tiện: Quản lý truy cập vào phương tiện vật lý bằng CSMA/CD (Ethernet) hoặc CSMA/CA (Wi-Fi) để tránh xung đột.
Chuyển xuống: Frame hoàn chỉnh được chuyển đến Physical Layer để truyền.
Physical Layer
Bit (1 và 0)Frame thành bit: Chuyển đổi frame hoàn chỉnh thành luồng bit nhị phân (chuỗi các số 1 và 0).
Mã hóa tín hiệu: Mã hóa bit thành tín hiệu điện (cáp đồng), xung ánh sáng (cáp quang), hoặc sóng radio (không dây).
Truyền: Gửi tín hiệu đã mã hóa qua phương tiện vật lý (cáp Ethernet, cáp quang, Wi-Fi, v.v.).
Thuộc tính vật lý: Quản lý mức điện áp, đồng bộ hóa bit, tốc độ bit, chế độ truyền và cấu trúc vật lý.
Physical Layer
Bit (1 và 0)Nhận tín hiệu: Nhận tín hiệu điện, xung ánh sáng, hoặc sóng radio từ phương tiện truyền vật lý.
Giải mã tín hiệu: Giải mã tín hiệu nhận được trở lại thành luồng bit nhị phân (1 và 0).
Đồng bộ hóa bit: Đồng bộ hóa các bit nhận được bằng tín hiệu đồng hồ để đảm bảo thời gian chính xác.
Chuyển lên: Luồng bit được chuyển đến Data Link Layer để tái tạo frame.
Data Link Layer
FrameTái tạo frame: Chuyển đổi luồng bit trở lại thành cấu trúc frame bằng cách xác định các dấu phân cách frame.
Phát hiện lỗi: Kiểm tra Frame Check Sequence (FCS/CRC) trong trailer để xác minh tính toàn vẹn của frame. Loại bỏ frame bị hỏng.
Xác minh địa chỉ: Đọc địa chỉ MAC đích từ frame header:
- Nếu MAC khớp với địa chỉ thiết bị → Chấp nhận frame
- Nếu MAC là broadcast (FF:FF:FF:FF:FF:FF) → Chấp nhận frame
- Nếu MAC không khớp → Loại bỏ frame
Loại bỏ header & trailer: Tách Ethernet header và FCS trailer, trích xuất packet.
Chuyển lên: Packet được chuyển đến Network Layer để xác minh định tuyến.
Network Layer
PacketXác thực IP header: Xác minh checksum IP header để đảm bảo tính toàn vẹn của packet trong quá trình truyền.
Kiểm tra đích: Kiểm tra địa chỉ IP đích:
- Nếu IP khớp với địa chỉ thiết bị → Chấp nhận packet
- Nếu IP là broadcast/multicast → Xử lý phù hợp
- Nếu thiết bị là router → Chuyển tiếp đến hop tiếp theo
- Ngược lại → Loại bỏ packet
Tái lắp ráp: Nếu packet bị phân mảnh, thu thập tất cả các mảnh và tái lắp ráp chúng thành packet gốc bằng các trường nhận dạng.
Nhận dạng giao thức: Đọc trường giao thức trong IP header để xác định lớp tiếp theo (TCP=6, UDP=17, ICMP=1).
Loại bỏ IP header: Tách IP header, để lộ segment/datagram.
Chuyển lên: Segment được chuyển tiếp đến Transport Layer để tái lắp ráp.
Transport Layer
Segment (TCP) / Datagram (UDP)Nhận dạng cổng: Đọc số cổng đích từ header để xác định ứng dụng mục tiêu:
- Cổng 80 → HTTP (Trình duyệt Web)
- Cổng 443 → HTTPS (Web an toàn)
- Cổng 25 → SMTP (Email)
- Cổng 22 → SSH (Secure Shell)
Kiểm tra lỗi: Xác thực checksum để phát hiện lỗi truyền. TCP yêu cầu truyền lại nếu phát hiện lỗi; UDP loại bỏ segment xấu.
Sắp xếp & tái lắp ráp (TCP): Sử dụng số thứ tự để sắp xếp lại các segment đến không đúng thứ tự, đảm bảo chuỗi dữ liệu chính xác.
Xác nhận (TCP): Gửi packet ACK trở lại người gửi xác nhận nhận segment thành công.
Loại bỏ Transport header: Tách TCP/UDP header để trích xuất luồng dữ liệu gốc.
Chuyển lên: Dữ liệu đã tái lắp ráp được chuyển đến Session Layer để quản lý phiên.
Session Layer
Dữ liệu phiênNhận dạng phiên: Xác định phiên hoạt động mà dữ liệu này thuộc về bằng ID phiên và thông tin nguồn.
Quản lý hội thoại: Quản lý luồng giao tiếp đảm bảo lượt lên tiếng phù hợp trong chế độ half-duplex hoặc đồng thời trong full-duplex.
Xác minh điểm kiểm tra: Xác thực các điểm kiểm tra đồng bộ hóa để đảm bảo truyền dữ liệu hoàn chỉnh và cho phép phục hồi nếu cần.
Duy trì phiên: Giữ phiên hoạt động trong quá trình truyền dữ liệu hoặc khởi tạo kết thúc phiên khi hoàn thành.
Chuyển lên: Dữ liệu đã xác minh phiên được chuyển tiếp đến Presentation Layer để giải mã.
Presentation Layer
Dữ liệu đã định dạngGiải mã: Nếu dữ liệu được mã hóa (SSL/TLS), giải mã nó bằng khóa thích hợp để khôi phục nội dung gốc.
Giải nén: Nếu dữ liệu được nén, giải nén nó trở lại kích thước gốc để xử lý.
Dịch định dạng: Chuyển đổi dữ liệu từ định dạng chuẩn mạng sang định dạng cụ thể của ứng dụng (ví dụ: EBCDIC sang ASCII, JPEG, PNG, MP4).
Chuyển đổi bộ ký tự: Đảm bảo mã hóa ký tự phù hợp cho ứng dụng nhận (UTF-8, ASCII, Unicode).
Chuyển lên: Dữ liệu đã giải mã và định dạng được chuyển đến Application Layer.
Application Layer
Dữ liệuXử lý giao thức: Ứng dụng xử lý dữ liệu theo quy tắc giao thức (HTTP hiển thị trang web, SMTP gửi email, FTP lưu tệp).
Diễn giải dữ liệu: Ứng dụng diễn giải dữ liệu nhận được dựa trên loại và mục đích của nó.
Trình bày cho người dùng: Hiển thị dữ liệu cho người dùng:
- Trình duyệt web hiển thị trang HTML
- Ứng dụng email hiển thị tin nhắn trong hộp thư đến
- FTP client xác nhận tải xuống tệp
- Trình phát video phát nội dung
✅ Hoàn thành: Dữ liệu được giao thành công! Người dùng nhận email, xem trang web, hoặc tải xuống tệp.
🔑 Các Khái Niệm Chính
Protocol Data Unit (PDU)
Dữ liệu → Segment → Packet → Frame → Bit
Tương tác cùng lớp
Mỗi lớp trên người gửi giao tiếp với lớp tương ứng trên người nhận bằng header/trailer.
Tương tác lớp kề
Mỗi lớp cung cấp dịch vụ cho lớp bên trên và sử dụng dịch vụ từ lớp bên dưới.