Trong thời đại công nghệ thông tin phát triển như hiện nay, ắt hẳn ai trong số chúng ta cũng đều sử dụng máy tính để phục vụ công việc cũng như nhu cầu giải trí của mỗi người.
Có thể nói, các ứng dụng như gửi email, hình ảnh, file dữ liệu… được sử dụng rất nhiều và không thể thiếu trong cuộc sống hằng ngày.
Vậy có bao giờ bạn tự đặt ra câu hỏi là làm thế nào mà dữ liệu có thể gửi đi được như vậy không?
Vâng! Bài viết này mình sẽ giúp các bạn hiểu rõ hơn về cơ chế đóng gói dữ liệu và nhận dữ liệu của một máy tính sẽ diễn ra như thế nào. Okay, bất đầu nhé !
#1. Quá trình đóng gói dữ liệu (máy gửi)
Quá trình đóng gói dữ liệu được diễn ra bên máy gửi đi, được diễn tả theo mô hình OSI như sau:
- Dữ liệu được sinh ra từ tầng ứng dụng (Application – Tầng 7) với nhiều dạng khác nhau, được chuyển xuống lớp Presentation – Tầng 6 để mã hóa và nén dữ liệu.
- Tiếp theo, dữ liệu sẽ được chuyển xuống lớp Session – Tầng 5 để bổ sung các thông tin cần thiết cho phiên làm việc này.
- Khi dữ liệu được chuyển xuống lớp Transport – Tầng 4, tại lớp này dữ liệu sẽ được chia nhỏ ra từng mảnh.
- Mục đích của việc này là để tăng tốc độ phù hợp với môi trường truyền dẫn và giảm thiểu độ thất thoát dữ liệu. Và nó sẽ đóng gói các thông tin Transport header vào các Data. Lúc này dữ liệu được gọi là 1 Segment.
- Dữ liệu tiếp tục được chuyển xuống tầng Network – Tầng 3, tại lớp này dữ liệu sẽ được đóng gói các thông tin Network Header chứa các thông tin quan trọng, trong đó có địa chỉ IP nguồn và đích. Lúc này dữ liệu được gọi là 1 Packet.
- Dữ liệu tiếp tục được chuyển xuống tầng Data Link – Tầng 2, tại lớp này dữ liệu sẽ được đóng gói các thông tin Frame header và Frame trailer báo hiệu quá trình đóng gói dữ liệu kết thúc. Lúc này dữ liệu được gọi là 1 Frame.
- Cuối cùng Frame được chuyển xuống tầng vật lý (Physical – Tầng 1) chuyển đổi thành các dạng tín hiệu thích hợp để truyền đi.
Như vậy, đóng gói dữ liệu là quá trình được thực hiện từ trên xuống theo mô hình OSI, là quá trình mà các giao thức thêm thông tin của chúng vào dữ liệu. Nó được lặp đi lặp lại theo từng lớp cho đến khi nó được gửi đi dưới dạng một luồng bit.
Ở mỗi giai đoạn của quá trình thì dữ liệu lại có một tên gọi khác nhau. PDU được gọi là đơn vị dữ liệu, các thuật ngữ như: Data, Segment, Packet, Frame, Bits được gọi là đơn vị dữ liệu tương ứng với các tầng trong mô hình OSI.
Hiện tại mình đã mở cửa Blog Chia Sẻ Kiến Thức Store ! – bán phần mềm trả phí với mức giá siêu rẻ – chỉ từ 180.000đ (bản quyền vĩnh viễn Windows 10/11, Office 365, 2021, 2016… và nhiều phần mềm bản quyền khác). Bảo hành full thời gian sử dụng nhé !
#2. Quá trình mở gói dữ liệu (máy nhận)
- Ở tầng Physical – Tầng 1, máy nhận sẽ kiểm tra thông tin quá trình đồng bộ và sẽ thông báo lại cho tầng Data Link rằng đã nhận được dữ liệu.
- Sau đó, tầng Data Link – Tầng 2 sẽ tiến hành kiểm tra các lỗi trong Frame, kiểm tra địa chỉ Data Link. Nếu xảy ra lỗi thì sẽ drop bỏ qua gói tin đó, còn nếu không thì sẽ tiến hành gỡ bỏ header của tầng Data Link để tiếp tục chuyển lên tầng Network.
- Tầng Network – Tầng 3 sẽ kiểm tra xem địa chỉ IP trong gói tin có khớp với địa chỉ IP của máy nhận hay không. Nếu khớp thì sẽ tiến hành gỡ bỏ Header của tầng Network để tiếp tục chuyển lên tầng Transport.
- Ở tầng Transport – Tầng 4 sẽ tiến hành gửi các gói tin ACK, NAK để xem các gói tin đã đến được máy nhận hay chưa. Ngoài ra thì ở tầng này, dữ liệu sẽ được sửa lỗi và sắp xếp các thứ tự phân đoạn => rồi đưa dữ liệu lên tầng Session.
- Tầng Session – Tầng 5 sẽ đảm bảo các dữ liệu trong gói tin được nguyên vẹn và tiến hành gỡ bỏ các header để đưa dữ liệu lên tầng Presentation.
- Presentation – Tầng 6 sẽ tiến hành xử lý các gói tin bằng cách chuyển các định dạng dữ liệu cho phù hợp trước khi chuyển lên Applicatation.
- Cuối cùng tầng Application – Tầng 7 sẽ tiến hành gỡ bỏ các header và máy nhận sẽ nhận được dữ liệu hoàn chỉnh.
Như vậy: Mở gói dữ liệu là quá trình được thực hiện từ dưới lên theo mô hình OSI.
Với nguyên tắc chung là các header được mở ở các tầng tương ứng. Quá trình này được lặp đi lặp lại cho đến khi máy đích nhận được data thì kết thúc quá trình mở gói.
Như vậy là mình đã trình bày xong cho các bạn về quá trình đóng gói dữ liệu, nhận dữ liệu rồi ha.
Chúng ta có thể thấy được quá trình đóng và nhận dữ liệu được thực hiện một cách tuần tự và theo một quy tắc chung.
Để có thể hiểu rõ và hình dung thực tế về đường đi, cũng như những thông tin của một gói tin thì các bạn có thể sử dụng phần mềm Wireshark để đọc, phân tích và nắm rõ chi tiết hơn nhé.
Hi vọng các thông tin trong bài viết này sẽ hữu ích với bạn !
Đọc thêm:
- Giao thức TCP là gì? UDP là gì? So sánh TCP và UDP
- 7 điểm yếu của một hệ thống mạng khi không sử dụng Firewall (tường lửa)
CTV: Đinh Hoàng Thạch – Blogchiasekienthuc.com
Edit by Kiên Nguyễn