Truyền thông tin trong mạng máy tính

    0

    Việc sử dụng địa chỉ khi đóng mở gói dữ liệu

    Chúng ta đã thấy trong hệ thống mạng có rất nhiều địa chỉ khác nhau dùng bởi các giao thức ở các cấp độ:

    1. Khi TCP hoặc UDP đóng gói PDU của mình đòi hỏi số cổng của tiến trình chạy trên máy đích và số cổng của chính tiến trình đang gửi dữ liệu.
    2. Khi IP đóng gói packet cần đến địa chỉ IP của máy nguồn và địa chỉ IP của máy đích.
    3. Khi Ethernet đóng gói frame cần đến địa chỉ MAC của card mạng máy nguồn và máy đích trong LAN.

    Với trường hợp 1, số cổng được lấy như sau:

    • Số cổng của tiến trình đích phải do chương trình ứng dụng cung cấp. Đây là một trong số các thỏa thuận trong giao thức tầng ứng dụng. Trong khi khởi tạo socket, ứng dụng phải cung cấp số cổng của tiến trình đích.
    • Số cổng nguồn do hệ điều hành cung cấp cho tiến trình, có thể cấp tạm thời hoặc cấp lâu dài, tùy thuộc vào chương trình yêu cầu.

    Với trường hợp 2, địa chỉ IP được lấy như sau:

    • Địa chỉ IP của máy nguồn được lấy từ cấu hình IP của giao diện mạng tương ứng.
    • Địa chỉ IP của máy đích phải do chương trình ứng dụng cung cấp. Trong khi khởi tạo socket, ứng dụng phải cung cấp địa chỉ IP đích này. 

    Với trường hợp 3, địa chỉ MAC được lấy như sau:

    • Địa chỉ MAC nguồn được lấy từ chính card mạng.
    • Địa chỉ MAC đích được lấy tự động từ địa chỉ IP đích thông qua giao thức ARP. Cách hoạt động của ARP sẽ được trình bày ở phần tiếp theo.

    Truyền thông tin trong LAN

    Các thiết bị đầu cuối đồng thời có hai loại địa chỉ, địa chỉ logic IP và địa chỉ vật lý MAC. Như đã trình bày ở các phần trên, địa chỉ IP cho phép truyền thông host-to-host nằm trong các mạng khác nhau, còn địa chỉ MAC cho phép truyền thông frame dữ liệu trong nội bộ một mạng LAN (trong cùng một miền quảng bá). 

    Vậy, liệu rằng trong nội bộ một mạng LAN chúng ta có cần đến địa chỉ IP để truyền dữ liệu không? Hoặc hai thiết bị đầu cuối trong cùng một miền quảng bá LAN với địa chỉ IP khác nhau có thể truyền dữ liệu cho nhau không?

    Câu trả lời nằm ở giao thức ARP (Address Resolution Protocol) – một trong những giao thức bắt buộc của bộ giao thức TCP/IP. Giao thức này có nhiệm vụ tìm hiểu địa chỉ MAC của một thiết bị thông qua địa chỉ IP của nó.

    Hãy cùng xem một ví dụ. 

    Có hai máy tính A và B cùng kết nối với một switch. Địa chỉ IP của Máy A là 192.168.1.2/24 và địa chỉ IP của Máy B là 192.168.1.3/24. Như vậy, hai máy nằm trong cùng một miền quảng bá, và có địa chỉ IP ở cùng một dải. 

    Giả sử chương trình trên máy A cần gửi dữ liệu cho chương trình trên máy B. Quá trình đóng gói dữ liệu trên máy A diễn ra như đã trình bày ở phần trên. 

    Ở card mạng, Ethernet cần tạo frame trước khi đưa lên đường truyền. Để tạo frame nó cần biết địa chỉ MAC của máy đích.

    Quá trình tiếp theo diễn ra như sau:

    1. Máy A kiểm tra thấy rằng địa chỉ đích nằm trong cùng một dải với nó. 
    2. Máy A gửi một frame ARP quảng bá ra toàn mạng LAN (miền quảng bá) để xác định địa chỉ MAC được liên kết với địa chỉ IP của Máy B (192.168.1.3). 
    3. Nếu Máy B đang hoạt động, nó nhận được gói ARP quảng bá chỉ vì nó nằm trong cùng một mạng (192.168.1.x) và phản hồi lại địa chỉ MAC của nó cho A. Khi Máy A biết được địa chỉ MAC của Máy B, nó sẽ tạo frame định hướng đến Máy B.
    4. Nếu Máy B không hoạt động, sẽ không có phản hồi lại cho A, do đó A không biết được địa chỉ MAC của máy đích, khi đó nó không tạo được frame và quá trình gửi thất bại. 

    Bây giờ giả sử rằng Máy A có địa chỉ IP (192.168.1.2) và địa chỉ của Máy B là (10.10.10.10). Máy chủ A truy vấn bảng định tuyến của nó chỉ để biết Máy chủ B có trong cùng một mạng hay không. Trong trường hợp này đối với A thì Máy B nằm trong một mạng khác. Vì vậy, Máy A học địa chỉ MAC của cổng mặc định (default gateway) của mạng – tức là địa chỉ IP của cổng router gắn với mạng đó – và chuyển thẳng frame đến router (gateway). Do đó, frame (và dữ liệu) từ A không bao giờ đến được B, mặc dù chúng nằm ngay cạnh nhau trong cùng một miền quảng bá.

    Về lý thuyết, nếu có thể chế tạo ra frame (với đủ MAC đích) thì vẫn có thể truyền nó đi trong LAN mà không cần đến IP. Tuy nhiên, trên thực tế, MAC đích được xác định tự động thông qua ARP. Do đó, địa chỉ IP và MAC là bắt buộc đối với mạng TCP/IP.

    Trên các hệ điều hành thường quản lý chung thông tin card mạng với cấu hình địa chỉ IP, mặc dù card mạng không sử dụng địa chỉ IP.

    Như vậy:

    – Nếu máy đích cùng mạng với máy nguồn thì máy nguồn sẽ tìm trong bảng MAC Table 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 MAC Table để sử dụng ở các lần gửi sau. Sau khi có địa chỉ MAC thì máy gửi sẽ đóng frame để gửi đ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 Default Gateway hay không.

    – Nếu có khai báo Default Gateway thì máy nguồn sẽ gửi frame tới Default Gateway.

    – Nếu không có khai báo Default Gateway thì máy nguồn sẽ loại bỏ gói tin và thông báo “Destination host Unreachable”.

    Truyền thông tin liên mạng

    Trong trường hợp máy nguồn và máy đích nằm ở các mạng khác nhau, quá trình diễn ra rất phức tạp.

    Ở phần truyền thông tin trong LAN đã trình bày, trước hết, frame dữ liệu sẽ được truyền từ máy nguồn tới cổng router kết nối với LAN.

    Khi tới router, frame sẽ được mở gói để lấy SDU (là IP packet chứa trong frame). Sau khi lấy được IP packet, router biết được IP nguồn và IP đích của packet này.

    Router sử dụng phần định danh mạng của địa chỉ IP đích để xem mạng đích có kết nối với nó hay không. 

    Nếu có, router chuyển tiếp gói tin IP sang cổng kết nối với mạng đích. Ở cổng đích, gói tin IP lại trải qua quá trình đóng gói frame giống như trên card mạng.

    Nếu mạng đích không kết nối trực tiếp với router, nó sẽ chuyển tiếp gói tin IP sang cổng phù hợp nhất để gói tin IP đó có thể tới được mạng đích. Khi này gói tin IP sẽ phải di chuyển qua rất nhiều router trung gian trước khi tới được router cuối cùng (tức là router kết nối trực tiếp với mạng đích). Mỗi router đều cố gắng đưa gói tin qua cổng phù hợp nhất để hướng gói tin đó tới mạng đích.

    Quá trình so sánh địa chỉ và quyết định chuyển tiếp gói tin này được thực hiện dựa trên bảng định tuyến. Bảng định tuyến có thể tạo cố định với các mạng đơn giản hoặc tạo tự động thông qua các giao thức định tuyến.

    Nếu gói tin IP chứa địa chỉ quảng bá, router sẽ chặn gói tin này không cho nó chuyển tiếp sang các mạng khác.

    Nếu gói tin IP chứa địa chỉ private, router cũng chặn nó lại không cho chuyển tiếp sang vùng public.

    Theo dõi
    Thông báo của
    guest

    0 Thảo luận
    Phản hồi nội tuyến
    Xem tất cả bình luận