Sự khác biệt giữa Kiểm soát luồng và Kiểm soát tắc nghẽn trong TCP là gì?


81

Sự khác biệt giữa kiểm soát luồng và kiểm soát tắc nghẽn trong TCP là gì?

Câu hỏi này có thể được chia thành hai phần:

  1. Mục đích tổng thể của việc kiểm soát dòng chảy và tắc nghẽn là gì?
  2. Nhiệm vụ được hoàn thành như thế nào?

Theo Wikipedia , kiểm soát luồng TCP phụ thuộc vào kích thước cửa sổ được báo cáo trong thông báo ACK. Kiểm soát tắc nghẽn cũng dựa vào thông báo xác nhận. Tôi muốn biết sự khác biệt giữa hai mục tiêu và cách chúng hoạt động.


46
Không phải là một câu hỏi bài tập về nhà. Thêm một câu hỏi chuẩn bị phỏng vấn. "Lạc đề" về nó là gì? @EJP
GM Lucid

Câu trả lời:


124

Như phần 1, tổng quan chung:

Điều khiển lưu lượng được điều khiển bởi phía nhận. Nó đảm bảo rằng người gửi chỉ gửi những gì người nhận có thể xử lý. Hãy nghĩ đến một tình huống mà ai đó có kết nối cáp quang nhanh có thể đang gửi cho ai đó trên dialup hoặc một cái gì đó tương tự. Người gửi sẽ có khả năng gửi các gói rất nhanh, nhưng điều đó sẽ vô ích đối với người nhận khi quay số, vì vậy họ sẽ cần một cách để điều chỉnh những gì bên gửi có thể gửi. Kiểm soát luồng xử lý các cơ chế có sẵn để đảm bảo rằng quá trình giao tiếp này diễn ra suôn sẻ.

Kiểm soát tắc nghẽn là một phương pháp đảm bảo rằng mọi người trên toàn mạng đều có quyền truy cập "hợp lý" vào tài nguyên mạng, tại bất kỳ thời điểm nào. Trong môi trường mạng hỗn hợp, mọi người cần có khả năng đảm nhận cùng một mức hiệu suất chung. Một kịch bản phổ biến để giúp hiểu điều này là mạng LAN văn phòng. Bạn có một số phân đoạn mạng LAN trong một văn phòng, tất cả đều làm nhiệm vụ của chúng trong mạng LAN, nhưng sau đó tất cả chúng có thể cần phải đi ra ngoài qua một liên kết WAN chậm hơn các phân đoạn mạng LAN cấu thành. Hình ảnh có các kết nối 100mb trong mạng LAN cuối cùng đi ra ngoài thông qua liên kết WAN 5mb. Một số loại kiểm soát tắc nghẽn sẽ cần được thực hiện ở đó để đảm bảo không có vấn đề nào trên toàn mạng lớn hơn.

Như phần 2:

Nếu đây là một câu hỏi chuẩn bị phỏng vấn, như bạn đã nói ở trên, tôi sẽ cân nhắc dành chút thời gian đọc về TCP / IP nói chung. Không sử dụng Wikipedia. RTFM! Điều này rất đáng để bạn dành thời gian. Bạn có thể tranh luận rằng đây là giao thức quan trọng nhất chiếm phần lớn mạng internet hiện đại.

Những điều cần đọc về Kiểm soát luồng: dừng và chờ, cửa sổ trượt, TẠM DỪNG khung.

Những điều cần đọc về Kiểm soát tắc nghẽn: QoS (Chất lượng dịch vụ), chính sách truyền lại, chính sách cửa sổ.

Ngoài ra, bạn có thể tìm kiếm bất kỳ triển khai nào của nhà cung cấp cụ thể (Cisco, v.v.)


2
Câu trả lời hay nhưng có ít nhất một sai lầm: "Khung TẠM DỪNG" không được sử dụng trong Kiểm soát tắc nghẽn, chúng là một cơ chế cho Kiểm soát luồng.
Angel

1
Bạn hoàn toàn chính xác. Đã thêm sai đoạn, đang chỉnh sửa.
JP Doherty

24

Kiểm soát luồng: Người gửi sẽ gửi đủ dữ liệu có thể đáp ứng được ở đầu cuối người nhận.

Kiểm soát tắc nghẽn: Người gửi sẽ giảm số lượng gói tin đã gửi để tránh làm tràn bộ đệm của bộ định tuyến (Hàng đợi).


22

Kiểm soát lưu lượng:

  • Nó đảm bảo rằng người gửi không làm quá tải người nhận.
  • Đó là một hiện tượng cục bộ, không giống như kiểm soát tắc nghẽn.
  • Nó thường do người gửi khởi xướng.

Điều khiển tắc nghẽn:

  • Nó đảm bảo rằng mạng có thể xử lý tải các gói.
  • Đó là một hiện tượng toàn cầu và ảnh hưởng đến mọi máy chủ được kết nối với mạng đó.
  • Nó được khởi tạo bởi bộ định tuyến.

4

Kiểm soát luồng chủ yếu được thực hiện ở phía người nhận , để điều chỉnh lượng dữ liệu mà người gửi đưa vào mạng; kiểm soát tắc nghẽn chủ yếu được thực hiện ở phía người gửi , cố gắng cảm nhận tắc nghẽn trên mạng theo thời gian của các gói ACK, để điều chỉnh khối lượng dữ liệu được gửi đến tình huống tương ứng.


4

Kiểm soát tắc nghẽn là một vấn đề toàn cầu - liên quan đến mọi bộ định tuyến và máy chủ trong mạng con

Kiểm soát luồng, được thực hiện từ điểm này đến điểm khác, chỉ liên quan đến người gửi và người nhận.


2

Kiểm soát tắc nghẽn : Ngoài việc ngăn bộ đệm của bộ định tuyến bị tràn, nó còn giải quyết hai yếu tố quan trọng khác

  • Công bằng : Không xảy ra tình trạng chết đói đối với bất kỳ máy chủ nào được kết nối với mạng mặc dù thuật ngữ này phức tạp hơn.
  • Hiệu quả : Các liên kết nên được sử dụng tối đa công suất để không gây tắc nghẽn.

2

Điều khiển lưu lượng được thực hiện ở phía thu. Nếu người gửi gửi các gói lớn hơn kích thước bộ đệm của người nhận, thì hiện tượng tràn sẽ xảy ra tại bộ đệm của người nhận. Để tránh sự tràn này ở phía người nhận, có một kỹ thuật cửa sổ được sử dụng ở phía người gửi. Kiểm soát tắc nghẽn được thực hiện ở phía người gửi. Đây là một hiện tượng toàn cầu. Điều này xảy ra tại bộ định tuyến. Bộ đệm của bộ định tuyến bị tràn khi nhiều người gửi cố gắng đẩy nhiều gói hơn qua cùng một liên kết.


Đây có vẻ như là một nỗ lực trung thực để trả lời câu hỏi, nhưng hiện tại, câu trả lời của bạn hơi khó hiểu. Nó cũng khá ngắn. Vui lòng xem xét dành một hoặc hai đoạn văn đầy đủ về kiểm soát luồng và một hoặc hai đoạn văn đầy đủ về kiểm soát tắc nghẽn, với nhiều dấu phẩy hơn và ít từ bỏ sót hơn.
Julian

0

Kiểm soát lưu lượng:

  1. Khi bộ đệm người gửi đầy thì chúng tôi ngăn nguồn gửi dữ liệu để dữ liệu không bị rơi.
  2. Bộ đệm máy thu đã đầy trong trường hợp này.
  3. Nó có thể đạt được dễ dàng bằng giao thức cửa sổ trượt.

Điều khiển tắc nghẽn

  1. Khi chúng ta bắt đầu truyền dữ liệu từ nguồn thì nó sẽ đến đích với sự trợ giúp của mạng. Kiểm soát tắc nghẽn ngăn chặn nguồn để dữ liệu không bị rơi bởi bộ định tuyến trong mạng.

  2. Sự cố này liên quan đến hàng đợi của bộ định tuyến

  3. Nó phức tạp hơn để đạt được vì bộ định tuyến nhận các gói khác nhau từ nguồn khác nhau được kết nối với mạng của nó.


-4

Kiểm soát luồng: biểu thị mức độ mạng có thể hấp thụ, cửa sổ tắc nghẽn; Kiểm soát tắc nghẽn: biểu thị lượng máy thu có thể hấp thụ, cửa sổ được quảng cáo; Người gửi max_window = min (cửa sổ được quảng cáo, cửa sổ tắc nghẽn);

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.