어리석은 창 증후군이란 무엇입니까 - 설명 및 예방

데이터 는 (Data)TCP/IP Protocol 을 사용하여 네트워크와 인터넷(Internet) 을 통해 전송 됩니다. TCP/IP 는 완벽하지는 않지만 ISO OSI 모델 과 같이 데이터 통신을 위해 이론화된 다른 프로토콜에 비해 구현하기가 더 쉽습니다 . 기술적인 문제와 마찬가지로 TCP/IP 에도 몇 가지 결함이 있으며 Silly Window Syndrome 은 이러한 결함 중 하나의 생성입니다. Silly Window Syndrome 또는 SWS 가 무엇인지 이해하려면 먼저 TCP/IP 에서 데이터 통신의 기본 메커니즘을 이해해야 합니다 .

어리석은 창 증후군

어리석은 창 증후군

창 및 크기 이해

두 지점이 TCP/IP 에서 통신할 때 승인 메커니즘이 포함됩니다. 이 인식 메커니즘은 더 자세히 설명하는 것처럼 어리석은 창 증후군 을 일으키는 원인입니다. (Silly Window Syndrome)포인트는 두 대의 컴퓨터, 클라이언트와 서버 등을 가리킬 수 있습니다.

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.

컴퓨터 A가 데이터 패킷을 다른 컴퓨터 B로 보낼 ​​때 B는 데이터 패킷을 수신했음을 확인하고 응답해야 합니다. 승인과 함께 해당 통신 스레드에 대해 별도로 설정된 버퍼 크기도 보내야 합니다. 이것은 일반적으로 통신을 위해 사용 가능한 바이트 수입니다.

따라서 B가 다음 메시지에 대해 100B를 사용할 수 있다고 말하면 100B는 어리석은 창 증후군(Silly Window Syndrome) 의 창 입니다. 즉, 버퍼 크기입니다. 자체 결함으로 인해 TCP/IP 메커니즘은 A에서 오는 각 통신/데이터에 대한 버퍼 크기를 줄일 수 있습니다. 즉, A가 메시지를 보낼 때마다 B는 버퍼 크기가 축소된 것으로 가정하고 더 작은 수를 보냅니다. 따라서 창 크기는 계속 줄어들고 어느 시점에서 B가 창 크기로 0B를 보내면서 통신이 중지됩니다.

어리석은 창 증후군은 어떻게 작동합니까?

위의 A와 B의 예에 따르면 B가 창 크기로 1000B를 보내면 A는 두 개의 500B로 분할하여 500B의 두 패킷을 보냅니다. 첫 번째 패킷을 수신하면 B는 두 번째 패킷이 아직 수신되지 않았기 때문에 창에 대해 500B를 사용할 수 있다는 응답을 보냅니다. A는 500B가 창 크기라고 가정하고 결과적으로 250B의 두 패킷을 보냅니다. B에서 500B가 사용되고 500이 방금 수신된 동안 사용 가능한 경우 0B를 보냅니다. 이 시점에서 A는 프로세서가 데이터를 사용했기 때문에 버퍼가 비어 있는 경우에도 사용할 수 있는 창이 없다고 가정합니다. A는 여전히 사용 가능한 창이 있는지 확인하기 위해 더 작은 패킷을 보냅니다. B에 있는 버퍼의 내용이 아직 제거되지 않은 경우 응답/승인으로 여전히 0을 받습니다.

따라서 창 크기는 B가 A로부터 패킷을 수신할 때마다 승인을 보내므로 계속 감소합니다. 이 크기는 일반적으로 B가 데이터 패킷을 부분적으로 수신하기 때문에 이전 승인보다 작습니다. A가 한 번에 B의 버퍼 크기를 커버할 만큼 충분히 큰 패킷을 보낼 수 있다면 문제가 없을 것입니다. 그러나 추가 메커니즘이 필요하고 따라서 어리석은 창 증후군(Silly Window Syndrome) 이 필요 합니다. A가 0을 두세 번 수신하면 통신이 중지됩니다.

바보창 증후군(Silly Window Syndrome) ( SWS ) 을 예방하는 방법

SWS 를 제거하기 위해 구현해야 하는 간단한 알고리즘이 있습니다 . 초기 패킷을 받으면 B는 실제 사용 가능한 공간의 절반을 창으로 보냅니다. 그러면 A가 더 작은 패킷을 보냅니다. 결과적으로 패킷이 너무 작아지면 B는 A가 더 큰 데이터 바이트를 다시 보낼 수 있도록 총 버퍼 크기를 보냅니다.

즉, 1000B가 사용 가능한 경우 B는 승인으로 500B를 보냅니다. 따라서 A는 250B x ​​2 패킷을 보낸다. 이를 위해 A는 100B를 수신확인으로 받습니다. 50B 패킷을 받으면 B는 1000B – 50B를 A에게 보냅니다. 그러면 전체 대화가 다시 작동하게 됩니다. 이렇게 하면 처리가 약간 지연될 수 있지만 어리석은 창 증후군(Silly Window Syndrome) 이 발생하여 전체 대화가 중단되는 것을 방지할 수 있습니다.

요약하자면 SWS 는 수신자가 사용할 수 있는 버퍼 크기와 발신자가 계산한 추정 크기를 기반으로 합니다. SWS 를 방지하기 위해 지연이 도입되고 패킷 크기가 너무 작아질 때까지 의도적으로 더 작은 창 크기가 보답됩니다. 그런 다음 수신자는 실제로 사용 가능한 창 크기를 공개합니다. 통신이 완료될 때까지 전체 프로세스가 계속 반복됩니다.

비록 내가 단어 창과 버퍼를 같은 의미로 사용했을지 모르지만. 나는 그들 사이에 어떤 차이도 의미하지 않습니다. SWS 연구 에서 버퍼는 창입니다.



About the author

저는 Edge 경험이 있는 숙련된 Windows 10 및 Windows 11/10 관리자입니다. 저는 이 분야에서 제공할 수 있는 풍부한 지식과 경험을 가지고 있습니다. 그렇기 때문에 제 기술이 귀사에 귀중한 자산이 될 것이라고 생각합니다. Windows 10과 Edge 모두에서 다년간의 경험을 통해 새로운 기술을 빠르게 배우고 문제를 신속하게 해결하며 비즈니스 운영에 대한 책임을 질 수 있습니다. 또한 Windows 10 및 Edge에 대한 경험을 통해 운영 체제의 모든 측면에 대해 매우 잘 알고 있으므로 서버 관리 또는 소프트웨어 응용 프로그램 관리에 도움이 될 것입니다.



Related posts