Làm thế nào để một công tắc học một bảng chuyển đổi?


22

Nói bảng chuyển đổi là trống rỗng. Nếu máy tính A gửi một khung định mệnh cho máy tính B, thì công tắc sẽ phát ra hỏi ai có địa chỉ mac của B. Điều gì xảy ra nếu C đột ngột gửi một khung cho A? Cơ chế nào để công tắc không nhầm máy tính C là máy tính B? Có phải nó nhớ địa chỉ mac của đích A mà máy tính A mong muốn không, và khi C cố gắng đến A, nó cũng chứa địa chỉ mac của chính nó và công tắc thấy nó không phải là đích giống như máy tính A muốn?

Về cơ bản tôi đang hỏi, khi một công tắc tràn vào một địa chỉ mac không xác định cho một yêu cầu được gửi bởi máy chủ A, làm thế nào để biết rằng đích đến đang phản hồi đến máy chủ A hoặc nếu một máy chủ khác chỉ tình cờ truyền đến A?


Có câu trả lời nào giúp bạn không? Nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp câu trả lời của riêng bạn và chấp nhận nó.
Ron Maupin

Câu trả lời:


34

Các bộ chuyển mạch lớp 2 (cầu nối) có bảng địa chỉ MAC chứa địa chỉ MAC và số cổng. Các công tắc tuân theo thuật toán đơn giản này để chuyển tiếp các gói:

  1. Khi nhận được một khung, công tắc sẽ so sánh địa chỉ MAC SOURCE với bảng địa chỉ MAC. Nếu SOURCE không xác định, công tắc sẽ thêm nó vào bảng cùng với số cổng mà gói tin được nhận. Bằng cách này, công tắc tìm hiểu địa chỉ MAC và cổng của mọi thiết bị truyền.

  2. Sau đó, công tắc so sánh địa chỉ MAC DESTINATION với bảng. Nếu có một mục, chuyển đổi chuyển tiếp khung ra khỏi cổng liên quan. Nếu không có mục nào, công tắc sẽ gửi gói ra tất cả các cổng của nó, ngoại trừ cổng mà khung được nhận trên (Lũ lụt).

Lưu ý rằng công tắc không học MAC đích cho đến khi nhận được khung từ thiết bị đó.


Cảm ơn bạn @Ron đã giải thích nó tốt hơn. Bây giờ tôi mới biết lũ lụt. Bạn cũng có thể tìm thấy tại en.wikipedia.org/wiki/Unicast_flood
Damon

Điều này đã không trả lời câu hỏi tôi đã hỏi.
Celeritas

5
@Celeritas Giả định của bạn trong câu hỏi của bạn là sai. Công tắc không "hỏi" ai có địa chỉ mac. Nếu nó không biết MAC đích, nó sẽ tràn khung ra tất cả các cổng. Nó chỉ học MAC nguồn khi nhận được khung. Vì vậy, trong câu hỏi của bạn, công tắc có thể cho biết sự khác biệt giữa B và C vì chúng có địa chỉ MAC nguồn khác nhau.
Ron Trunk

4
@Celeritas - Công tắc không biết, cũng không quan tâm, tại sao bất kỳ máy chủ nào đang gửi thứ gì đó đến Máy chủ A. Tại sao sẽ có vấn đề nếu máy chủ phản hồi với Máy chủ A hoặc máy chủ khác đang gửi thứ khác đến Máy chủ A? Công tắc chỉ quan tâm rằng MAC đích là dành cho Máy chủ A (và MAC nguồn là gì nếu không có trong bảng địa chỉ MAC). Chỉ máy chủ A quan tâm nếu khung nhận được là phản hồi từ máy chủ được gửi ban đầu.
Ron Maupin

Ron nói gì, khái niệm này tách biệt với ARP.
Jordan Head

4

Câu hỏi của bạn cho rằng công tắc có liên quan hoặc biết về giao tiếp / hội thoại giữa hai máy chủ (Đây có phải là cuộc hội thoại giữa A và B hoặc giữa A và C không?). Việc chuyển đổi không liên quan đến giao tiếp / trò chuyện giữa hai máy chủ. Nó chỉ đơn giản biết (hoặc tìm hiểu) địa chỉ MAC nào được liên kết với cổng nào và chuyển tiếp (hoặc chuyển mạch) lưu lượng truy cập cho một địa chỉ MAC cụ thể đến cổng được liên kết (một khi nó đã biết cổng nào được liên kết với địa chỉ MAC), bất kể nguồn là B, hoặc C hoặc bất kỳ máy chủ nào khác được kết nối với bất kỳ cổng chuyển đổi nào khác.

Công tắc hoạt động ở lớp 2. Quản lý phiên là trách nhiệm của các lớp cao hơn.


-2

Nó không được gọi là bảng chuyển đổi; bảng MAC của nó. Bây giờ hãy xem xét rằng bảng MAC là trống rỗng. Khi A cố gắng gửi một gói đến B; gói chứa địa chỉ MAC của A và B. Công tắc cập nhật địa chỉ MAC của A trong bảng MAC. Bây giờ vì nó không biết cổng mà B được kết nối, nên nó phát gói ARP tại tất cả các cổng của nó và chờ tất cả các máy chủ trả lời.

Bây giờ cùng lúc nếu C cố gắng gửi một gói đến A, Nó trích xuất địa chỉ MAC của C từ gói đó và lưu nó trong bảng MAC. Bây giờ vì địa chỉ MAC đã có trong bảng MAC, nên nó biết cổng A nào được kết nối. Ghi nhớ các gói dữ liệu chứa địa chỉ MAC của cả nguồn và đích. Do đó địa chỉ MAC của B & C là khác nhau. Vì vậy, việc chuyển đổi không bị lẫn lộn. Bây giờ chuyển tiếp gói từ C sang A (Cho rằng cả hai đều có trong cùng một Vlan).

Để gửi gói từ A đến B, nó sẽ đợi cho đến khi B phản hồi với gói ARP được gửi bằng chuyển đổi. Khi nhận được phản hồi từ B, nó cập nhật địa chỉ MAC của B trong bảng MAC của nó. Sau đó, cuối cùng gói được chuyển tiếp đến B.

Do đó, công tắc không bị lẫn lộn vì các gói dữ liệu (tcp / udp) chứa cả địa chỉ MAC nguồn và đích. Và công tắc của bạn sẽ không chuyển tiếp một gói trên một giao diện có địa chỉ MAC máy chủ cuối không được biết để chuyển đổi. Nó phải đợi cho đến khi máy chủ cuối trả lời phát sóng ARP được gửi bằng chuyển đổi.


1
Điều này không hoàn toàn chính xác. Một công tắc, trừ khi nó là công tắc lớp 3, không phải là ARP. ARP là để giải quyết giữa lớp 2 và lớp 3 và công tắc không biết lớp 3. Công tắc thực sự phát một khung có MAC đích không xác định đến mọi cổng chuyển đổi. Một máy chủ sẽ bỏ qua bất kỳ khung nào có MAC đích không phải của riêng nó.
Ron Maupin

1
Và một sự làm rõ nhẹ để làm rõ của Ron ... chủ yếu chỉ là sửa chữa thuật ngữ. Khi một công tắc gửi một gói ra đến mọi cổng (trừ cổng vào) bởi vì nó không biết địa chỉ MAC cụ thể đó nằm ở đâu, nó thường được gọi là "ngập".
Jeff McAdams

@Ron cảm ơn bạn đã sửa chữa. A quên viết rằng đây là cho chuyển đổi lớp 3. Và tôi cũng muốn thừa nhận rằng tôi đã quên thuật ngữ lũ lụt, vì vậy tôi đã viết bài trả lời cho các công tắc lớp 3. Và Jeff cảm ơn bạn đã nói.
Damon

@Jeff McAdams, Bạn nói đúng, đó là lũ lụt, cảm ơn bạn. Đó là trước tách cà phê đầu tiên của tôi sau khi tôi dậy sớm, và tôi có nghĩa là phát theo nghĩa ngôn ngữ, không phải ý nghĩa mạng.
Ron Maupin

@Damon, đó là điều tôi không biết là mọi khung đều chứa địa chỉ MAC nguồn và đích.
Celeritas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.