흐름 제어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
흐름 제어는 데이터 전송 과정에서 송신자와 수신자 간의 데이터 처리 속도 차이를 조절하여 데이터 손실을 방지하고 네트워크의 효율성을 높이는 기술이다. 흐름 제어 방식에는 정지-대기, 슬라이딩 윈도우, Go-Back-N, 선택적 재전송 방식 등이 있으며, 슬라이딩 윈도우 방식은 여러 프레임을 동시에 전송하여 효율성을 높인다. 전송 흐름 제어는 하드웨어 (RS-232) 또는 소프트웨어 (XON/XOFF) 방식을 사용하며, 개방 루프와 폐쇄 루프 방식으로 나뉜다. 개방 루프는 피드백 없이 자원 할당을 하며, 폐쇄 루프는 네트워크 혼잡 상황을 송신자에게 알려 효율적인 데이터 전송을 가능하게 한다.
더 읽어볼만한 페이지
- 논리적 연결 제어 - PPPoE
PPPoE는 이더넷을 통해 PPP 연결을 설정하는 네트워크 프로토콜로, DSL과 같은 광대역 환경에서 클라이언트-서버 모델로 동작하며, 사용자의 컴퓨터를 ISP에 연결하는 데 사용되고, 디스커버리 및 PPP 세션 단계를 거쳐 연결을 설정하며 전 세계에서 널리 쓰인다. - 논리적 연결 제어 - 점대점 프로토콜
점대점 프로토콜(PPP)은 두 노드 간 직접 연결을 설정하고 관리하며 다양한 네트워크 계층 프로토콜을 지원하는 데이터 링크 계층 프로토콜이다. - 네트워크 성능 - 대역폭 (컴퓨팅)
대역폭은 통신 채널을 통해 단위 시간당 전송 가능한 데이터 양을 나타내는 용어로, 최대 비트 전송률, 정보 전송률, 유효 비트 전송률, 채널 용량 등 여러 의미로 사용되며, 데이터 전송 속도와의 차이를 이해하는 것이 중요하다. - 네트워크 성능 - 대기행렬이론
대기행렬 이론은 1909년 에를랑에 의해 연구된 수학 이론으로, 서버, 대기실, 고객으로 구성된 시스템을 분석하며, 켄달의 표기법을 사용하여 대기열 모델의 특징을 나타내고, 컴퓨터 과학 등 다양한 분야에 응용되어 시스템 성능 분석 및 최적화에 활용된다. - 데이터 전송 - 대역폭 제한
대역폭 제한은 네트워크 혼잡 방지, 특정 사용자 과도한 사용 방지, 서비스 품질 관리 등을 위해 컴퓨터 네트워크에서 데이터 전송 속도를 인위적으로 제한하는 기술이다. - 데이터 전송 - 데이터 링크
데이터 링크는 데이터를 송수신하기 위한 통신 연결로, 단방향, 반이중, 전이중 통신으로 나뉘며, 다양한 분야에서 활용되고 특히 항공 분야에서 항공 교통 관제 및 정보 교환, 무인 시스템 제어에 사용된다.
흐름 제어 | |
---|---|
데이터 흐름 제어 | |
목적 | 데이터 송수신 속도 불일치 문제 해결 |
방식 | 수신자의 버퍼 오버플로 방지, 네트워크 혼잡 방지 |
분류 | |
프로토콜 기반 | XON/XOFF, RTS/CTS |
신용 기반 | TCP 흐름 제어 |
흐름 제어 방식 | |
정지-대기 방식 | 송신 후 응답 대기, 비효율적 |
슬라이딩 윈도우 방식 | 여러 프레임 연속 전송, 효율적 |
관련 기술 | |
혼잡 제어 | 네트워크 혼잡 방지 |
2. 흐름 제어의 종류
흐름 제어는 크게 두 가지 주요 방식으로 나눌 수 있다.
- '''정지-대기(Stop-and-Wait)''': 가장 단순한 형태로, 송신자는 매 프레임을 전송한 후 수신자로부터 확인(ACK)을 받을 때까지 기다린다. 확인을 받으면 다음 프레임을 전송하고, 받지 못하면 일정 시간(타임아웃) 후 재전송한다.
- '''슬라이딩 윈도우(Sliding Window)''': 수신자가 송신자에게 한 번에 여러 프레임을 전송할 수 있도록 허용하는 방식이다. 수신자는 윈도우 크기만큼의 프레임을 버퍼에 저장할 수 있으며, 송신자는 확인 응답 없이 윈도우 크기만큼의 프레임을 연속적으로 전송할 수 있다. 슬라이딩 윈도우 방식은 정지-대기 방식보다 효율적이다.
전송 흐름 제어는 데이터 단말 장치(DTE)와 교환 센터 사이, 또는 크로스오버 케이블로 연결된 두 동일 유형 장치 사이에서 발생할 수 있다. 전송 속도는 네트워크 또는 DTE의 요구 사항에 따라 제어될 수 있으며, 데이터 전송의 두 방향에서 독립적으로 수행될 수 있다.
흐름 제어는 데이터 통신 인터페이스의 제어 신호 회선을 이용하거나, 흐름 시작 및 중지를 알리는 대역 내 제어 문자를 예약하는 방식으로 수행할 수 있다 (예: XON/XOFF에 대한 ASCII 코드).[2]
2. 1. 정지-대기 (Stop-and-Wait)
정지-대기 흐름 제어는 가장 단순한 형태의 흐름 제어 방식이다. 이 방식에서는 메시지를 여러 프레임으로 분할하고, 수신자는 데이터 프레임을 수신할 준비가 되었음을 나타낸다. 송신자는 각 프레임마다 특정 시간(타임 아웃) 동안 수신 확인(ACK)을 기다린다. 수신자는 ACK를 보내 송신자에게 데이터 프레임을 올바르게 수신했음을 알린다. 송신자는 ACK를 받은 후에 다음 프레임을 보낸다.[7]송신자와 수신자의 동작 과정은 다음과 같다.
1. '''송신자:''' 한 번에 하나의 프레임을 전송한다. 그리고 송신자는 시간 초과 내에 ACK를 수신하기를 기다린다.
2. '''수신자:''' 프레임을 수신하면 승인(ACK)을 전송한다.
3. ACK를 수신하거나 시간 초과가 발생하면 1단계로 이동한다.
프레임 또는 ACK가 전송 중에 손실되면 프레임이 재전송된다. 이 재전송 프로세스를 ARQ(자동 반복 요청)라고 한다.
정지-대기 방식의 문제점은 한 번에 하나의 프레임만 전송할 수 있어 비효율적이라는 것이다. 송신자가 ACK를 수신할 때까지 새로운 패킷을 전송할 수 없기 때문이다. 이 시간 동안 송신자와 채널은 활용되지 않는다.
'''장점'''
이 흐름 제어 방식의 유일한 장점은 단순성이다.
'''단점'''
송신자는 전송하는 모든 프레임 후에 ACK(응답)를 기다려야 한다. 이것은 비효율성의 원인이며, 특히 전파 지연이 전송 지연보다 훨씬 길 때 심각하다.[7]
정지-대기 방식은 또한 더 긴 전송을 보낼 때 비효율성을 초래할 수 있다.[5] 더 긴 전송을 보낼 때는 이 프로토콜에서 오류가 발생할 가능성이 더 높다. 메시지가 짧으면 오류가 조기에 감지될 가능성이 더 높다. 단일 메시지가 별도의 프레임으로 분할되면 전송이 길어지기 때문에 더 많은 비효율성이 발생한다.[6]
2. 2. 슬라이딩 윈도우 (Sliding Window)
슬라이딩 윈도우는 수신자가 송신자에게 윈도우가 꽉 찰 때까지 데이터를 전송할 수 있는 권한을 부여하는 흐름 제어 방법이다.[2] 윈도우가 꽉 차면, 송신자는 수신자가 더 큰 윈도우를 알릴 때까지 전송을 중단해야 한다.[2]슬라이딩 윈도우 흐름 제어는 버퍼 크기가 제한되어 있고 미리 설정된 경우에 가장 잘 활용된다. 송신자와 수신자는 ''n''개의 프레임(프레임 단위의 버퍼 크기)에 대한 버퍼 공간을 할당한다. 송신자는 확인 응답을 기다릴 필요 없이 ''n''개의 프레임을 보낼 수 있고 수신자는 수락할 수 있다. 프레임에는 시퀀스 번호가 할당되어 확인 응답을 받은 프레임을 추적하는 데 도움을 준다. 수신자는 예상되는 다음 프레임의 시퀀스 번호를 포함하는 확인 응답을 보내 프레임을 승인한다. 이 확인 응답은 수신자가 지정된 번호부터 시작하여 n개의 프레임을 받을 준비가 되었음을 알린다. 송신자와 수신자는 윈도우를 유지하며, 윈도우 크기는 버퍼 크기보다 작거나 같다.
슬라이딩 윈도우 흐름 제어는 정지-대기 흐름 제어보다 훨씬 더 나은 성능을 제공한다. 무선 환경처럼 데이터 전송 속도가 낮고 노이즈 수준이 매우 높은 경우에는 모든 패킷에 대한 확인 응답을 기다리는 것은 비효율적이다. 따라서 데이터를 일괄적으로 전송하면 더 높은 처리량을 얻을 수 있다.
슬라이딩 윈도우 흐름 제어는 현재 데이터 전송이 완료될 때까지 다른 개체가 통신을 시도하지 않는다고 가정하는 지점 간 프로토콜이다. 송신자가 유지하는 윈도우는 보낼 수 있는 프레임을 나타낸다. 송신자는 윈도우의 모든 프레임을 보내고 확인 응답을 기다린다. 그런 다음 송신자는 윈도우를 해당 시퀀스 번호로 이동하여 현재 시퀀스 번호부터 시작하는 윈도우 내의 프레임을 보낼 수 있음을 나타낸다.
슬라이딩 윈도우 방식에는 Go-Back-N ARQ와 선택적 반복 ARQ 방식이 있다.
2. 2. 1. Go-Back-N ARQ
자동 반복 요청(ARQ) 알고리즘은 오류 수정을 위해 사용되며, 여기서 음수 응답(NACK)은 오류가 발생한 단어뿐만 아니라 다음 N-1개 단어의 재전송을 유발한다.[3] N의 값은 일반적으로 N개의 단어를 전송하는 데 걸리는 시간이 송신자에서 수신자로, 다시 송신자로 돌아오는 왕복 지연 시간보다 적도록 선택된다.[3] 따라서 수신 측에는 버퍼가 필요하지 않다.[3]정규화된 전파 지연 (a) = 이며, 여기서 Tp = 이고 Tt = 이다.[3] 따라서 a = 이다.[3]
이용률을 얻으려면 윈도우 크기 (N)를 정의해야 한다.[3] N이 2a + 1보다 크거나 같으면 전송 채널의 이용률은 1(전체 이용률)이다.[3] 2a + 1보다 작으면 방정식을 사용하여 이용률을 계산해야 한다.[3]
2. 2. 2. 선택적 반복 ARQ (Selective Repeat ARQ)
'''선택적 반복'''은 송신자와 수신자 모두 시퀀스 번호 창을 갖는 연결 지향 프로토콜이다. 이 프로토콜은 확인 없이 보낼 수 있는 최대 메시지 수를 갖는다. 이 창이 가득 차면, 프로토콜은 가장 먼저 보류 중인 메시지에 대한 확인이 수신될 때까지 차단된다. 이 시점에서 송신자는 더 많은 메시지를 보낼 수 있다.이 절에서는 '''정지-대기''' 방식, '''슬라이딩 윈도우''' 방식과 '''Go-Back-N''' 방식 및 '''선택적 재전송''' 방식의 부분 집합을 비교하는 아이디어를 다룬다.
3. 전송 흐름 제어
전송 흐름 제어는 데이터 단말 장치(DTE)와 데이터 회선 종단 장치(DCE) 간, 또는 두 DTE 간에 발생하는 흐름 제어를 의미한다. 전송 속도는 네트워크 또는 DTE의 요구에 따라 제어될 수 있으며, 데이터 전송 방향에 따라 독립적으로 제어될 수 있다.
전송 흐름 제어는 다음과 같은 경우에 발생할 수 있다.
- 데이터 단말 장치(DTE)와 데이터 회선 종단 장치(DCE)를 통해 교환 센터 사이에 연결되며, 서로 다른 유형의 장치가 직접 연결된다.
- 또는 크로스오버 케이블로 상호 연결된 동일한 유형의 두 장치(두 DTE 또는 두 DCE) 사이.
전송 속도는 네트워크 또는 DTE의 요구 사항에 따라 제어될 수 있다. 전송 흐름 제어는 데이터 전송의 양방향에서 독립적으로 발생할 수 있으므로 한 방향의 전송 속도가 다른 방향과 다를 수 있다.
전송 흐름 제어 방식은 다음과 같다.
- 정지-대기 ARQ: 가장 단순한 형태의 흐름 제어로, 송신자는 매 프레임 전송 후 수신 확인(ACK)을 기다린다. 전파 지연이 전송 지연보다 훨씬 길 때 비효율적이다.[7]
- 슬라이딩 윈도우: 수신자가 송신자에게 윈도우가 꽉 찰 때까지 데이터를 전송할 수 있는 권한을 부여한다.[2] 윈도우가 꽉 차면 송신자는 수신자가 더 큰 윈도우를 공지할 때까지 전송을 중단한다.[2] 정지-대기 방식보다 성능이 우수하다.
흐름 제어는 다음 두 가지 방식으로 수행될 수 있다.
- 데이터 통신 인터페이스의 제어 신호 회선 (시리얼 포트 및 RS-232 참조)
- 흐름 시작 및 중지를 알리기 위해 대역 내 제어 문자를 예약하는 방식 (예: XON/XOFF에 대한 ASCII 코드)
3. 1. 하드웨어 흐름 제어
RS-232와 같은 직렬 통신 인터페이스에서 제어 신호선(RTS/CTS, DTR/DSR)을 사용하여 데이터 흐름을 제어하는 방식이다.[1] RTS (전송 요청)와 CTS (전송 허가)는 데이터 전송 요청 및 허가를 나타내는 신호이며, DTR (Data Terminal Ready)과 DSR (Data Set Ready)은 장치의 준비 상태를 나타내는 신호이다.[1]하드웨어 흐름 제어는 일반적으로 DTE 또는 "마스터 측"에서 처리되며, 신호선을 올려 상대측(DCE, "슬레이브 측")에 명령한다.[1]
- RTS 제어 흐름: DTE는 RTS를 설정하여 DCE에 데이터 입력 라인을 감시하도록 신호를 보낸다.[1] 데이터를 받을 준비가 되면 DCE는 CTS를 높여 DTE에 데이터 전송을 시작하도록 신호를 보내고, DTE가 DCE의 데이터 출력 라인을 감시하도록 한다.[1] 양쪽에서 데이터를 중지해야 하는 경우, 각 "데이터 준비" 라인을 낮춘다.[1]
- DTR 흐름 제어: (PC-모뎀 연결 등) DTR/DSR은 전체 모뎀 세션 동안 높게 유지되며, RTS/CTS는 각 데이터 블록에 대해 높게 유지된다.[1]
하드웨어 흐름 제어의 예는 반이중 무선 모뎀-컴퓨터 인터페이스이다.[1] 모뎀이 수신을 감지하면 CTS를 낮추어 컴퓨터에서 나가는 데이터가 일시 중지되도록 수신 무선 신호에 우선 순위를 부여한다.[1]
과거에 모뎀을 "데이터 세트"라고 불렀기 때문에, 제어선의 명칭에 그 흔적이 남아 있다.[1]
3. 2. 소프트웨어 흐름 제어
소프트웨어 흐름 제어는 XON/XOFF와 같이 데이터 스트림 내에 특수 제어 문자를 삽입하여 흐름을 제어하는 방식이다. XON 문자는 데이터 전송 재개를, XOFF 문자는 데이터 전송 중지를 나타낸다.[1]4. 개방 루프 흐름 제어와 폐쇄 루프 흐름 제어
흐름 제어는 피드백 유무에 따라 개방 루프 흐름 제어와 폐쇄 루프 흐름 제어로 나눌 수 있다.
개방 루프 흐름 제어는 수신자와 송신자 사이에 피드백이 없는 것이 특징이며, 폐쇄 루프 흐름 제어는 네트워크가 송신자에게 네트워크 혼잡을 보고하여 송신자가 활동을 조정할 수 있도록 한다.[1]
흐름 제어 방식에는 정지-대기 흐름 제어와 슬라이딩 윈도우 흐름 제어가 있다. 정지-대기 흐름 제어는 가장 단순한 형태의 흐름 제어로, 송신자는 각 프레임을 전송한 후 수신 확인(ACK)을 기다린다.[7] 이 방식은 단순하지만, 전파 지연이 전송 지연보다 훨씬 길 때 비효율적이다.[7] 슬라이딩 윈도우 흐름 제어는 수신자가 송신자에게 윈도우가 꽉 찰 때까지 데이터를 전송할 수 있는 권한을 부여하는 방식이다.[2] 이 방식은 정지-대기 흐름 제어보다 성능이 우수하다.
4. 1. 개방 루프 흐름 제어 (Open-Loop Flow Control)
개방 루프 흐름 제어는 송신 측과 수신 측 사이에 피드백이 없는 방식이다. 자원 할당은 연결 설정 시 CAC(연결 허가 제어)를 통해 이루어지며, 연결 수명 동안 유지된다.[1] 이는 네트워크 상황 변화에 따라 동적으로 자원을 변경할 수 없음을 의미한다. 따라서 자원 과할당 및 낭비가 발생할 수 있다.[1]개방 루프 흐름 제어는 구현이 간단하지만, 네트워크 자원 활용을 최대화하는 데는 한계가 있다. 도착률이 낮고 손실률이 높을 수 있으며, 시스템이 불안정해질 수 있다.[1]
이러한 방식은 ATM에서 CBR, VBR, UBR 서비스에 사용된다.[1]
4. 2. 폐쇄 루프 흐름 제어 (Closed-Loop Flow Control)
폐쇄 루프 흐름 제어는 송신 측이 수신 측이나 네트워크로부터 혼잡 상황에 대한 정보를 받아 데이터 전송률을 조절하는 방식이다. 네트워크가 혼잡해지려고 하면 이를 송신 측에 알려주고, 송신 측은 이 정보를 활용하여 네트워크 상황에 맞게 동작을 조정한다.[1]이 방식은 센서, 송신기, 제어기, 조절기 등 기본적인 제어 요소를 모두 포함한다. 센서는 프로세스 변수를 감지하고, 송신기는 이 변수를 제어기로 전달한다. 제어기는 원하는 값에 따라 정보를 확인하고 필요한 조치를 취하며, 조절기에 필요한 동작을 알려 출력 변수 값을 원하는 수준으로 유지한다.
폐쇄 루프 제어 시스템은 피드백 또는 피드 포워드 시스템일 수 있다. 피드백 시스템은 입력 및 출력 신호를 직접 연결하는 피드백 메커니즘을 통해 출력 변수를 감시하고 추가 수정이 필요한지 판단한다. 피드 포워드 시스템에서는 측정된 프로세스 변수가 입력 변수이며, 측정된 신호는 피드백 시스템과 유사하게 사용된다.
폐쇄 루프 모델은 낮은 손실률과 대기 지연을 보이며, 혼잡에 반응하는 트래픽을 생성한다. 또한, 활성 흐름 수가 제한되어 있어 항상 안정적이다.
폐쇄 루프 흐름 제어는 ATM의 ABR(Available Bit Rate) 서비스에서 사용된다.[1] 전송 흐름 제어도 폐쇄 루프 흐름 제어의 한 형태이다.
참조
[1]
간행물
Network Testing Solutions, ATM Traffic Management White paper
https://web.archive.[...]
2005-03-15
[2]
문서
Webster Dictionary definition
http://www.webster-d[...]
2012-12-03
[3]
서적
Focal Dictionary of Telecommunications, Focal Press
http://www.credorefe[...]
2012-12-03
[4]
문서
Data Transmission over Adpative HF Radio Communication Systems using Selective Repeat Protocol
https://docs.google.[...]
2012-12-03
[5]
웹사이트
Flow Control Techniques
https://www.angelfir[...]
2012-11-20
[6]
웹사이트
last accessed 1 December 2012
http://people.bridge[...]
2012-12-01
[7]
웹사이트
ERROR CONTROL
http://www.thepartic[...]
2005-09-28
[8]
간행물
Network Testing Solutions, ATM Traffic Management White paper
https://web.archive.[...]
2005-03-15
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com