Để hoàn thành câu trả lời của David, một công tắc tìm hiểu ai đứng sau một cổng bằng cách xem địa chỉ MAC của các gói nhận được trên cổng đó. Khi bật công tắc, nó không biết gì. Khi thiết bị A gửi gói từ cổng 1 đến thiết bị B, công tắc sẽ biết thiết bị A nằm sau cổng 1 và gửi gói đến tất cả các cổng. Khi thiết bị B trả lời A từ cổng 2, công tắc chỉ gửi gói trên cổng 1.
Mối quan hệ MAC với cổng này được lưu trữ trong một bảng trong chuyển đổi. Tất nhiên, nhiều thiết bị có thể ở phía sau một cổng (nếu một công tắc được cắm vào cổng làm ví dụ), do đó có thể có nhiều địa chỉ MAC được liên kết với một cổng.
Thuật toán này bị phá vỡ khi bảng không đủ lớn để lưu trữ tất cả các mối quan hệ (không đủ bộ nhớ trong chuyển đổi). Trong trường hợp này, công tắc sẽ mất thông tin và bắt đầu gửi các gói đến tất cả các cổng. Điều này có thể dễ dàng được thực hiện (bây giờ bạn biết cách hack mạng của mình) bằng cách giả mạo rất nhiều gói với MAC khác nhau từ một cổng. Nó cũng có thể được thực hiện bằng cách giả mạo một gói với MAC của thiết bị bạn muốn theo dõi và công tắc sẽ bắt đầu gửi cho bạn lưu lượng truy cập cho thiết bị đó.
Các công tắc được quản lý có thể được cấu hình để chấp nhận một MAC từ một cổng (hoặc một số cố định). Nếu có nhiều MAC được tìm thấy trên cổng đó, công tắc có thể tắt cổng để bảo vệ mạng hoặc gửi thông điệp tường trình tới quản trị viên.
CHỈNH SỬA:
Về lưu lượng truy cập youtube, thuật toán được mô tả ở trên chỉ hoạt động trên lưu lượng unicast. Phát sóng Ethernet (ARP làm ví dụ) và IP multicast (đôi khi được sử dụng để truyền phát) được xử lý khác nhau. Tôi không biết nếu youtube sử dụng phát đa hướng, nhưng đó có thể là trường hợp bạn có thể đánh hơi lưu lượng truy cập không thuộc về bạn.
Về lưu lượng truy cập trang web, điều này thật lạ, vì bắt tay TCP nên đã đặt MAC thành bảng cổng chính xác. Hoặc cấu trúc liên kết mạng xếp tầng rất nhiều thiết bị chuyển mạch rất rẻ với các bảng nhỏ luôn đầy, hoặc ai đó đang làm rối mạng.