Networking in Linux – Part I – OSI Model and TCP/IP Protocol
Chào cả nhà, hôm nay mình xin phép được chia sẻ một phần kiến thức mà team HAT đã tích tụ được từ việc tìm hiểu “How Linux works?”.
Chủ đề của bài viết này là “Networking in Linux – Phần I – Mô hình OSI và Giao thức TCP/IP”.
Đã bao giờ bạn hình dung về việc khi một truy vấn URL được gửi đi thì cả hệ thống hạ tầng phía dưới phải làm việc như thế nào để có kết quả trả về cho người thực hiện truy vấn URL trên?
Để hiểu về “Networking in Linux” thì trước tiên chúng ta sẽ tìm hiểu về một khái niệm Networking cơ bản nhất – mô hình OSI (Open Systems Interconnection model) và TCP/IP (Transmission Control Protocol/Internet Protocol), đây là 2 mô hình mà mọi Network/System Engineer bắt buộc phải nắm rõ cũng như tất cả các Developer nên biết.
OSI là một mô hình 7 lớp mang tính lý thuyết và khái niệm, dùng để mô tả đặc trưng cũng như tiêu chuẩn hoá các chức năng liên lạc của một hệ thống máy tính hoặc một hệ thống viễn thông. Để dễ hình dung thì mình sẽ mô tả ví dụ về quá trình xử lý dữ liệu xảy ra trong mô hình OSI khi chúng ta thực hiện việc click vào một URL, bao gồm:
Layer 7: Tại lớp thứ 7 của mô hình OSI (lớp Application), trình duyệt đang sử dụng (Chrome, Safari, Firefox…) sẽ quyết định việc nhận dạng máy chủ đích mà request sẽ gửi dữ liệu tới, kiểm tra xem máy chủ đó có online hay không (Network Process to Application)
Layer 6: Xảy ra tại lớp thứ 6 (lớp Presentation), dữ liệu sẽ được đóng gói và mã hoá (Data Encapsulation and Encryption) thành một định dạng chuẩn chung bất kể dữ liệu đầu vào là gì (HTML, Javascript files, image files…)
Layer 5: Tại lớp thứ 5 (Session Layer), một kết nối được khởi tạo giữa máy client (máy tính sử dụng trình duyệt để click vào URL) và web server (nơi ứng dụng web được đặt), ngay sau khi mà web server gửi trả lại nội dung web page cho phía client thì kết nối này sẽ được ngắt (terminated), mỗi kết nối như trên được định nghĩa là một phiên (a session)
Layer 4: Xảy ra tại lớp thứ 4 (Transport layer), lớp này quyết định việc chuyển giao dữ liệu đến đúng process của ứng dụng đang chạy, cũng như điều phối việc một số lượng dữ liệu bao nhiêu sẽ được gửi, ở tốc độ gửi là bao nhiêu. Hai giao thức rất quan trọng trong Transport layer là TCP và UDP
Layer 3: Tại Network Layer (Layer 3), lớp này chịu trách nhiệm tìm và định tuyến các gói tin dữ liệu đi đúng đường (routing). Giao thức quan trọng sử dụng là IP (Internet Protocol). Ở thế giới Internet, địa chỉ IP (cụ thể là IP Public) chính là mã định danh (Chứng Minh Thư Nhân Dân/Mã số Passport) của thiết bị.
Layer 2: Data Link Layer, lớp này chịu trách nhiệm giải mã dữ liệu thành các khung dữ liệu chứa các BITS, bao gồm 2 lớp con là MAC và LLC.
+ MAC (Medium Access Control) : kiểm soát việc các phần cứng máy tính truy cập dữ liệu và cấp quyền để chuyển giao dữ liệu. Địa chỉ MAC là địa chỉ vật lý và duy nhất đối với một thiết bị card mạng.
+ LLC là interface nằm giữa MAC và Network Layer
Layer 1: Physical Layer, bao gồm đường truyền internet (cable, hoặc sóng vô tuyến, sóng không dây), là môi trường để dữ liệu được truyền qua.
So với mô hình OSI, mô hình TCP/IP mang tính thực tiễn hơn, nó bao gồm 4 lớp và tương ứng với mô hình OSI như hình vẽ.
Ngày nay, việc chúng ta truy cập sử dụng internet đều hàng ngày đều sử dụng mô hình/giao thức TCP/IP.
Đến đây mình xin được kết thúc phần I của “Networking in Linux”. Ở phần tới mình sẽ trình bày về một số công cụ cũng như cách cấu hình một vài tính năng liên quan đến Network trên hệ điều hành Linux.
Nhờ mọi người đọc và cho ý kiến vì bài viết chắc chắn sẽ còn rất nhiều thiếu sót dưới quan điểm và kiến thức của mình. Thanks!
Nguồn tham khảo:
https://medium.com/@jinghua.shih/networking-the-osi-model-4a508d84444
https://en.wikipedia.org/wiki/OSI_model
https://en.wikipedia.org/wiki/Internet_protocol_suite