Cấu trúc gói tin và luồng dữ liệu trên mạng
Cấu trúc gói tin Tại mỗi tầng truyền thông gói tin đều có các thông tin bổ sung khác nhau, và cấu trúc gói tin vì thế cũng có sự thay đổi tuy nhiên một gói tin khi xuyên qua các tầng nó đều các trường thông tin cơ bản như sau: ...
Cấu trúc gói tin
Tại mỗi tầng truyền thông gói tin đều có các thông tin bổ sung khác nhau, và cấu trúc gói tin vì thế cũng có sự thay đổi tuy nhiên một gói tin khi xuyên qua các tầng nó đều các trường thông tin cơ bản như sau:
Cấu trúc cụ thể từng gói tin sẽ được mô tả ở những phần sau.
Luồng dữ liệu trên mạng
Dữ liệu đi xuyên qua mô hình OSI tại mỗi tầng gói dữ liệu đều được xử lý và có những tên gọi riêng
Hình 2.3 – Tên gọi dữ liệu ở các tầng trong mô hình OSI
Dữ liệu trải qua 2 tiến trình cơ bản là
- Tiến trình đóng gói tại trạm gửi (Data Encapsulation)
- Tiến trình mở gói tại trạm nhận (Data De-encapsulation)
Data De - EncapsulationData Encapsulation
Qu á trìn h đ óng gó i d ữ l i ệu ( t ạ i má y g ửi)
Đóng gói dữ liệu là quá trình đặt dữ liệu nhận được vào sau header (và trước trailer) trên mỗi lớp. Lớp Physical không đóng gói dữ liệu vì nó không dùng header và trailer. Việc đóng gói dữ liệu không nhất thiết phải xảy ra trong mỗi lần truyền dữ liệu của trình ứng dụng. Các lớp 5, 6, 7 sử dụng header trong quá trình khởi động, nhưng trong phần lớn các lần truyền thì không có header của lớp 5, 6, 7 lý do là không có thông tin mới để trao đổi.
Các dữ liệu tại máy gửi được xử lý theo trình tự như sau:
- Người dùng thông qua lớp Applicationđể đưa các thông tin vào máy tính. Các thông tin này có nhiều dạng khác nhau như: hình ảnh, âm thanh, văn bản.
- Tiếp theo các thông tin đó được chuyển xuống lớp Presentationđể chuyển thành dạng chung, rồi mã hoá và nén dữ liệu.
- Tiếp đó dữ liệu được chuyển xuống lớp Sessionđể bổ sung các thông tin về phiên giao dịch này.
- 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 Segment và bổ sung thêm các thông tin về phương thức vận chuyển dữ liệu để đảm bảo độ tin cậy khi truyền.
- Dữ liệu tiếp tục được chuyển xuống lớp Network, tại lớp này mỗi Segmentđược cắt ra thành nhiều Packet và bổ sung thêm các thông tin định tuyến.
- Tiếp đó dữ liệu được chuyển xuống lớp DataLink, tại lớp này mỗi Packet sẽ được cắt ra thành nhiều Frame và bổ sung thêm các thông tin kiểm tra gói tin (để kiểm tra ở nơi nhận).
- Cuối cùng, mỗi Frame sẽ được tầng Vật Lý chuyển thành một chuỗi các bit, và được đẩy lên các 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 đến máy nhận.
- Bước 1: Trình ứng dụng (trên máy gửi) tạo ra dữ liệu và các chương trình phần cứng, phần mềm cài đặt mỗi lớp sẽ bổ sung vào header và trailer (quá trình đóng gói dữ liệu tại máy gửi).
- Bước 2: Lớp Physical (trên máy gửi) phát sinh tín hiệu lên môi trường truyền tải để truyền dữ liệu.
- Bước 3: Lớp Physical (trên máy nhận) nhận dữ liệu.
- Bước4: Các chương trình phần cứng, phần mềm (trên máy nhận) gỡ bỏ header và trailer và xử lý phần dữ liệu (quá trình xử lý dữ liệu tại máy nhận).
- Giữa bước 1 và bước 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 đượ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 MACTable của mình để có được địa chỉ MAC của máy nhận. Trong trường hợp không có được địa chỉ MAC tương ứng, nó sẽ thực hiện giao thức ARP để truy tìm địa chỉ MAC. Sau khi tìm được địa chỉ MAC, nó sẽ lưu địa chỉ MAC này vào trong bảng MACTableđể lớp Datalink sử dụng ở các lần gửi sau. Sau khi có địa chỉ MAC thì máy gửi sẽ gởi gói tin đi.
- Nếu khác địa chỉ mạng thì máy gửi sẽ kiểm tra xem máy có được khai báo DefaultGateway hay không.
- Nếu có khai báo DefaultGateway thì máy gửi sẽ gởi gói tin thông qua DefaultGateway.
- Nếu không có khai báo DefaultGateway thì máy gởi sẽ loại bỏ gói tin và thông báo "Destination host Unreachable"
Chi tiết quá trình xử lý tại máy nhận
- Bước 1: Lớp Physical kiểm tra quá trình đồng bộ bit và đặt chuỗi bit nhận được vào vùng đệm. Sau đó thông báo cho lớp Data Link dữ liệu đã được nhận.
- Bước2: Lớp DataLink kiểm lỗi frame bằng cách kiểm tra FCS trong trailer. Nếu có lỗi thì frame bị bỏ. Sau đó kiểm tra địa chỉ lớp DataLink (địa chỉ MAC) xem có trùng với địa chỉ máy nhận hay không. Nếu đúng thì phần dữ liệu sau khi loại header và trailer sẽ được chuyển lên cho lớp Network.
- Bước3: Địa chỉ lớp Networkđược kiểm tra xem có phải là địa chỉ máy nhận hay không (địa chỉ IP) ? Nếu đúng thì dữ liệu được chuyển lên cho lớp Transport xử lý.
- Bước4: Nếu giao thức lớp Transport có hỗ trợ việc phục hồi lỗi thì số định danh phân đoạn được xử lý. Các thông tin ACK,NAK (gói tin ACK,NAK dùng để phản hồi về việc các gói tin đã được gởi đến máy nhận chưa) cũng được xử lý ở lớp này. Sau quá trình phục hồi lỗi và sắp thứ tự các phân đoạn, dữ liệu được đưa lên lớp Session.
- Bước5: 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 Presentation xử lý.
- Bước6: Dữ liệu sẽ được lớp Presentation 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.
- Bước7: Lớp Application xử lý header cuối cùng. Header này chứa các tham số thoả 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.