Hội chứng cửa sổ ngớ ngẩn là gì - Giải thích và Phòng ngừa

Dữ liệu(Data) được truyền qua mạng và Internet bằng TCP/IP Protocol . TCP/IP không hoàn hảo nhưng dễ thực hiện hơn so với các giao thức khác được lý thuyết để truyền dữ liệu… chẳng hạn như mô hình ISO OSI . Như với bất kỳ vấn đề kỹ thuật nào, TCP/IP cũng có một số sai sót và Hội chứng cửa sổ ngớ ngẩn(Silly Window Syndrome) là sự tạo ra một trong những sai sót đó. Để hiểu Hội chứng cửa sổ ngớ ngẩn(Silly Window Syndrome) hay SWS là gì , trước tiên bạn cần hiểu cơ chế cơ bản của giao tiếp dữ liệu trong TCP/IP .

Hội chứng cửa sổ ngớ ngẩn

hội chứng cửa sổ ngớ ngẩn

Hiểu về cửa sổ và kích thước của nó

Khi hai điểm đang giao tiếp theo TCP/IP , nó liên quan đến cơ chế xác nhận. Cơ chế thừa nhận này là nguyên nhân gây ra Hội chứng cửa sổ ngớ ngẩn(Silly Window Syndrome) như đã được giải thích thêm. Điểm có thể tham chiếu đến hai máy tính, máy khách và máy chủ, v.v.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Khi một máy tính, chẳng hạn như A, gửi một gói dữ liệu đến một máy tính B khác, máy tính này phải xác nhận và trả lời rằng nó đã nhận được gói dữ liệu đó. Cùng với xác nhận, nó cũng phải gửi kích thước bộ đệm được đặt riêng cho luồng giao tiếp đó. Đây thường là số byte được thiết lập miễn phí cho giao tiếp.

Vì vậy, khi B nói 100B có sẵn cho tin nhắn tiếp theo, 100B là cửa sổ trong Hội chứng cửa sổ ngớ ngẩn(Silly Window Syndrome) . Đó là, nó là kích thước bộ đệm. Với lỗ hổng riêng của nó, cơ chế TCP/IP có thể giảm kích thước bộ đệm cho mỗi giao tiếp / dữ liệu đến từ A. Nghĩa là, bất cứ khi nào A gửi tin nhắn, B giả định kích thước bộ đệm giảm và gửi một số nhỏ hơn. Do đó, kích thước cửa sổ tiếp tục giảm và tại một thời điểm, giao tiếp chỉ dừng lại khi B gửi 0B làm kích thước cửa sổ.

Hội chứng cửa sổ ngớ ngẩn hoạt động như thế nào

Theo ví dụ trên của A và B, nếu B gửi 1000B làm kích thước cửa sổ, A sẽ chia nó thành hai 500B và gửi hai gói 500B. Khi nhận được gói đầu tiên, B sẽ gửi một thông báo cho biết 500B có sẵn cho cửa sổ vì gói thứ hai vẫn chưa được nhận. Giả sử 500B là kích thước cửa sổ và do đó gửi hai gói 250B. Trong khi ở B, 500B được sử dụng và 500 vừa được nhận, nó sẽ gửi 0B khi có sẵn. Tại thời điểm này, A sẽ giả sử không có cửa sổ nào mặc dù có thể xảy ra trường hợp bộ đệm trống vì bộ xử lý đã sử dụng hết dữ liệu ở đó. A vẫn sẽ gửi một gói nhỏ hơn để xem có cửa sổ nào không. Nếu nội dung của bộ đệm tại B vẫn chưa được loại bỏ, nó vẫn sẽ nhận 0 là phản hồi / báo nhận.

Do đó, kích thước cửa sổ tiếp tục giảm khi B gửi xác nhận mỗi khi nó nhận được gói từ A. Kích thước này thường nhỏ hơn thông báo trước đó vì B đang nhận gói dữ liệu theo từng phần. Sẽ không có vấn đề gì nếu A có thể gửi một gói tin đủ lớn để bao phủ kích thước bộ đệm trên B tại một thời điểm. Nhưng điều đó sẽ đòi hỏi các cơ chế bổ sung và do đó có Hội chứng Cửa sổ ngớ ngẩn(Silly Window Syndrome) . Giao tiếp dừng lại sau khi A nhận được 0 hai hoặc ba lần.

Cách ngăn chặn Hội chứng Cửa sổ Ngớ ngẩn(Silly Window Syndrome) ( SWS )

Có một thuật toán đơn giản được thực hiện để loại bỏ SWS . Khi nhận được gói tin ban đầu, B sẽ gửi một nửa dung lượng thực sự có sẵn dưới dạng cửa sổ. Điều đó sẽ làm cho A gửi các gói nhỏ hơn. Do đó, khi các gói trở nên quá nhỏ, B sẽ gửi tổng kích thước bộ đệm để A có thể bắt đầu gửi lại các byte dữ liệu lớn hơn.

Nói cách khác, nếu 1000B khả dụng, B sẽ gửi 500B dưới dạng xác nhận. Theo đó, A gửi 250B x ​​2 gói tin. Đối với điều này, A nhận được 100B là xác nhận. Khi nó nhận được gói 50B, B sẽ gửi 1000B - 50B đến A. Điều đó làm cho toàn bộ cuộc hội thoại hoạt động trở lại. Điều này có thể gây ra một chút chậm trễ trong quá trình xử lý nhưng sẽ ngăn không cho Hội chứng cửa sổ ngớ ngẩn(Silly Window Syndrome) xảy ra và dừng toàn bộ cuộc trò chuyện.

Tóm lại, SWS dựa trên kích thước bộ đệm có sẵn cho người nhận và kích thước giả định do người gửi tính toán. Để ngăn chặn SWS , sự chậm trễ được đưa ra và kích thước cửa sổ nhỏ hơn có chủ ý sẽ được đáp lại cho đến khi kích thước gói tin trở nên quá nhỏ. Sau đó, người nhận tiết lộ kích thước cửa sổ thực sự có sẵn. Toàn bộ quá trình tiếp tục lặp lại cho đến khi giao tiếp hoàn tất.

Mặc dù tôi có thể đã sử dụng cửa sổ từ và bộ đệm thay thế cho nhau. Tôi không có ý nói bất kỳ sự khác biệt nào giữa chúng. Trong các nghiên cứu SWS , vùng đệm là cửa sổ.



About the author

Tôi có kiến ​​thức nền tảng về kỹ thuật máy tính và công nghệ thông tin, điều này đã cho tôi một góc nhìn độc đáo về nền tảng Windows 10 và 11. Đặc biệt, tôi được trải nghiệm với cả "Trải nghiệm máy tính để bàn" của Windows 10 và trình duyệt Microsoft Edge. Kinh nghiệm của tôi với hai nền tảng này giúp tôi hiểu sâu sắc về cách chúng hoạt động và kiến ​​thức chuyên môn của tôi trong các lĩnh vực này cho phép tôi đưa ra lời khuyên đáng tin cậy về cách cải thiện chúng.



Related posts