일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 애니메이션 기법
- 링크 연결의 해제 원리
- 네트워크 아키텍처의 기본 개념
- 비디오 처리 기술의 발전
- 병렬처리기의 종류
- 네트워크의 형태
- 애니메이션 저작도구의 종류
- 애니메이션 기법의 종류
- 병렬처리기의 정의
- 네트워크 아키텍처의 비교
- 변복조기의 개념과 기능
- 데이터 전송 코드
- 흐름제어의 정의
- 전송매체의 종류
- 병렬처리 시스템의 분류 방법
- 상호연결망의 구조
- 통신제어의 구조
- 애니메이션 저작도구의 특징
- 애니메이션 기술의 개요
- 애니메이션 기술의 발전 과정
- 비디오 처리 기술의 개요
- 전방 처리기의 개념과 기능
- 네트워크 아키텍처의 종류
- 교환 통신망과 데이터
- 애니메이션의 활용 분야
- 체증제어의 정의
- 링크 연결의 설정 원리
- 병렬처리 시스템의 개념
- 통신제어의 원리
- 교환 통신망과 데이터의 교환 방식
- Today
- Total
흐름제어와 체증제어의 정의에 관하여
흐름제어와 체증제어의 정의에 관하여 살펴보도록 하겠습니다. 먼저 송수신단과 수신단 사이의 데이터 전송을 할 때 데이터 처리능력과 속도의 차이를 조절하는 방법을 흐름제어라고 합니다. 데이터 통신 시 송신단과 수신단에 송수신 데이터 프레임을 저장하기 위해서는 어느 정도 크기의 버퍼가 요구됩니다. 만약 버퍼의 용량보다 많은 데이터를 전송하거나 수신된 데이터 프레임이 준비된 버퍼보다 많을 경우에는 오버플로우가 발생하게 됩니다. 따라서 수신단에서는 적당한 용량의 버퍼를 유지하면서 수신단에 맞는 처리 능력을 수행하고, 수신단의 상황에 맞게 송신단이 데이터 프레임을 전송하도록 데이터의 흐름을 조절해 주어야 합니다. 이와 같은 원리를 적용한 데이터 전송법을 바로 흐름제어라고 합니다. 이러한 흐름제어는 송수신 양측 간의 처리 속도가 다른 경우에 데이터양이나 통신속도가 수신 측의 처리능력을 초과하지 않도록 조정하는 기능을 말합니다. 즉 송신 측이 수신 측보다 느리면 이상이 발생하지 않지만, 송신 측의 속도가 수신 측보다 빠르게 될 경우 수신 측의 버퍼가 이를 처리하지 못해서 데이터가 처리되지 못하거나 오버플로우가 발생하게 됩니다. 따라서 이를 해결하기 위한 방법으로 흐름제어가 적용되고 있습니다. 흐름제어에 있어서 정지와 대기 방식에서 송신기는 각 프레임을 보낸 후에 확인응답을 기다리는데 왜냐하면 확인응답을 받았을 때만 다음 프레임을 보내기 때문입니다. 보내고 기다리기를 반복하는 과정은 송신기가 전송 종료 프레임을 보낼 때까지 반복해서 이루어집니다. 이러한 정지와 대기 방식의 장점은 아주 단순하다는 것입니다. 다음 프레임이 전송되기 전에 각 프레임은 검사되고 확인됩니다. 반면 단점은 느린 속도로 인한 비효율성입니다. 왜냐하면 각 프레임은 수신기에 전달되고 확인응답이 되돌아와야만 그다음 프레임이 전송될 수 있으며, 장치 간의 거리가 멀 경우 각 프레임 사이에서 긍정응답을 기다리는 시간이 길어 전송시간이 증가하기 때문입니다. 이러한 정지와 대기 방식의 특징은 흐름제어 방식 중 가장 간단한 형태이며, 한 번에 1개의 프레임만 전송이 가능하고 1개의 연속적인 프레임으로 메시지를 전송할 때 효과적입니다. 또한 전송되는 장치 간의 거리가 먼 경우 각 프레임 사이에서 기다리는 시간이 길어져 전송효율이 떨어질 수 있습니다. 다음은 슬라이딩 윈도우 방식입니다. 슬라이딩 윈도우 방식은 한 번에 여러 개의 프레임을 전송함으로써 전송효율을 높일 수 있습니다. 슬라이딩 윈도우 프로토콜은 송신 측에서 전송할 수 있는 프레임의 개수와 수신 측에서 수신할 수 있는 프레임의 개수를 같은 윈도우로 표시하는 송신용 윈도우와 수신용 윈도우를 가져야 합니다. 송신 측에서 전송한 프레임에 대해 수신 측에서는 확인 메시지를 이용하여 송신 측 윈도우의 크기를 조절함으로써 전송속도를 제한하는 방식입니다. 결국 송신 측은 수신 측으로부터 확인 메시지를 받지 않더라도 윈도우로 표시된 한도까지는 계속 프레임을 전송할 수 있으므로 전송효율을 높일 수 있습니다. 송신 측은 보낼 프레임의 순서번호 목록을 유지하고 수신 측은 받을 프레임의 순서번호 목록을 유지합니다. 또한 이들 각 목록은 프레임의 한 윈도우라고 생각할 수 있으며, 윈도우의 크기는 프레임의 순서번호에 할당된 비트 수에 의존합니다. 다음으로 체증제어에 관하여 설명해 드리겠습니다. 네트워크상에서 체증제어는 혼잡제어란 표현으로 대변할 수 있습니다. 혼잡제어란 통신 네트워크로 유입되어 전송되는 정보량을 조절하여 네트워크가 혼잡해지지 않게 조절하는 것을 말합니다. 예를 들어서 정보량이 과다한 것을 감지하여 패킷을 적게 보내면 혼잡 붕괴 현상이 일어나는 것을 예방할 수 있는 것입니다. 초창기 인터넷 환경은 혼잡 붕괴 현상이 큰 문제로 대두됨에 따라 1980년대에 반 제이콥슨에 의해 TCP의 체증제어가 도입됐습니다. 각 호스트는 정보를 빨리 보내기 위해 정해진 시간 내에 보낼 수 있는 최대의 패킷을 보내게 되며, 일부 라우터에서는 혼잡현상이 발생하여 정해진 시간 내에 받은 패킷들을 모두 처리하지 못하는 상황이 재현됩니다. 정해진 시간 내에 패킷이 처리되지 않으면 호스트는 패킷을 재전송하고, 라우터는 더 많은 패킷을 받게 되어서 혼잡현상이 더 심해지게 됩니다. 따라서 TCP의 체증제어는 패킷을 보내는 쪽에서 네트워크의 데이터의 수용량을 결정하는 방식으로 작동하게 됩니다. 패킷을 보내는 측에서 안전하게 보낼 수 있는 패킷의 수를 알고 있고, 패킷이 잘 도착하면 긍정응답 패킷을 받습니다. 즉 이전에 보낸 패킷이 잘 도착했다는 것을 긍정응답 패킷을 받은 것으로 알 수 있고, 긍정응답 패킷을 받으면 안전하게 새 패킷을 더 보낼 수 있기 때문에 TCP의 체증제어를 셀프클록 방식이라고도 부릅니다. 물론 처음부터 네트워크상의 데이터 수용량을 아는 것은 어렵습니다. 이유가 무엇이냐면 네트워크상에서의 데이터 수용량이라는 것은 수시로 바뀌기 때문입니다. 따라서 송신 측에서 네트워크의 상태에 따라서 전송속도의 조절을 의미하는 것과 같습니다. 체증제어에서 패킷 양을 조절하는 데 있어 사용하는 방식으로 AIMD 기법을 사용하게 됩니다. 처음에 패킷을 하나씩 보내고 이것이 문제없이 잘 도착하면 단위시간 내에 보내는 패킷의 수를 하나씩 증가시키면서 전송하는 이 방식은 만일 패킷 전송에 실패하거나 일정한 시간을 넘으면 패킷을 보내는 속도를 절반으로 줄입니다. 이것은 공평한 방식으로 사용하는 여러 호스트가 한 네트워크를 공유하고 있으면 나중에 진입하는 쪽이 처음에는 불리하지만 시간이 흐르면서 평형상태로 수렴하게 되는 특징이 있습니다. 문제점으로는 초기에 네트워크의 높은 대역폭을 사용하지 못하여 시간이 오래 걸리고, 네트워크가 혼잡해지는 상황을 미리 감지하지는 못한다는 것입니다. 즉 네트워크가 혼잡해지고 나서야 대역폭을 줄이는 방식입니다. 지금까지 흐름제어와 체증제어의 정의에 관하여 살펴봤습니다.