기출 error, flow control

agnusdei·2024년 11월 23일
0

Network

목록 보기
31/419

문제: 데이터 전송에서 에러 제어와 흐름 제어에 관해 기술하시오.


답:

1. 에러 제어 (Error Control)

에러 제어는 데이터 전송 중 발생할 수 있는 오류를 검출하고 수정하는 과정을 의미합니다. 네트워크나 통신에서 데이터가 손상되거나 누락되었을 때, 이를 식별하고 올바른 데이터를 다시 전송할 수 있도록 하는 메커니즘이 필요합니다.

1.1. 에러 제어의 주요 기법

  1. 검사합 (Checksum)

    • 데이터를 전송하기 전에 송신 측에서 데이터에 대해 계산한 값을 전송하고, 수신 측에서 동일한 계산을 통해 데이터를 확인합니다.
    • 오류가 발생하면 수신 측에서 오류를 검출하여 재전송을 요청할 수 있습니다.
  2. 순환 중복 검사 (Cyclic Redundancy Check, CRC)

    • 데이터 전송 시 발생할 수 있는 오류를 검출하기 위한 기술로, 송신 측에서 CRC 코드를 계산하여 전송하고, 수신 측에서 동일한 CRC 코드 계산을 통해 데이터의 정확성을 검증합니다.
    • 일반적으로 패킷 손상이나 오류를 효과적으로 검출할 수 있습니다.
  3. 수정 가능 오류 (Forward Error Correction, FEC)

    • 오류가 발생한 데이터의 복원 방법으로, 송신 측에서 여분의 비트를 포함하여 데이터를 전송하고, 수신 측에서 오류를 수정할 수 있도록 합니다.
    • 오류가 수정되기 전에 재전송을 기다릴 필요 없이 바로 데이터를 복구할 수 있습니다.
  4. 응답 및 재전송 (Automatic Repeat reQuest, ARQ)

    • 송신 측에서 데이터를 전송하고 수신 측에서 확인 응답(ACK)을 받습니다.
    • 만약 수신 측에서 데이터에 오류가 발생하면, "재전송 요청" (NACK)을 보내고 송신 측은 오류가 없는 데이터를 재전송합니다.

1.2. ARQ 방식의 종류

  1. Stop-and-Wait ARQ

    • 송신 측에서 하나의 데이터 패킷을 전송한 후 수신 측으로부터 ACK를 받을 때까지 기다린 후, 다음 패킷을 전송합니다.
    • 장점: 구현이 간단합니다.
    • 단점: 대기 시간이 길어져 전송 속도가 느려질 수 있습니다.
  2. Go-Back-N ARQ

    • 송신 측에서 여러 패킷을 연속적으로 전송하되, 수신 측에서 오류가 발생한 패킷만 재전송 요청하고, 그 이후의 패킷도 다시 전송합니다.
    • 장점: 데이터 전송 효율이 높습니다.
    • 단점: 오류 발생 시 불필요한 데이터가 재전송됩니다.
  3. Selective Repeat ARQ

    • 송신 측에서 여러 패킷을 전송하고, 수신 측에서 오류가 발생한 패킷만 재전송 요청합니다.
    • 장점: Go-Back-N 방식보다 효율적이며, 오류가 발생한 패킷만 재전송되므로 데이터 전송 효율이 높습니다.
    • 단점: 구현이 복잡합니다.

2. 흐름 제어 (Flow Control)

흐름 제어는 데이터 전송 속도에서 발생할 수 있는 송수신 측 간의 불균형을 해결하는 메커니즘입니다. 즉, 송신 측이 너무 빠르게 데이터를 전송하면 수신 측에서 데이터를 처리하지 못할 수 있습니다. 이를 방지하기 위해 수신 측에서 처리할 수 있는 속도에 맞게 송신 측이 데이터 전송을 조절해야 합니다.

2.1. 흐름 제어의 주요 기법

  1. 정적 흐름 제어 (Static Flow Control)
    • 송신 측에서 데이터를 일정 속도로 전송하도록 설정하거나, 수신 측에서 미리 정해진 버퍼 크기를 통해 송신 측에 전송 속도를 조절하도록 지시하는 방식입니다.
  2. 동적 흐름 제어 (Dynamic Flow Control)
    • 송수신 측의 상태에 따라 실시간으로 전송 속도를 조절합니다. 가장 일반적인 방식은 윈도우 크기를 조정하여 흐름을 제어하는 방식입니다.

2.2. 흐름 제어 방식

  1. 슬라이딩 윈도우 (Sliding Window)

    • 송신 측과 수신 측 모두에서 수신된 패킷을 확인하고, 수신 버퍼가 가득 차지 않도록 송신 속도를 조절합니다.
    • 송신 측은 일정 범위 내에서 여러 패킷을 보낼 수 있으며, 수신 측에서는 수신된 패킷에 대한 ACK를 보내 송신 측의 전송 속도를 조절합니다.
    • 윈도우 크기는 네트워크 상태에 따라 동적으로 변화할 수 있습니다.
  2. TCP 흐름 제어

    • TCP에서는 수신 측의 버퍼 크기를 고려하여 송신 측에 전송 속도를 조절할 수 있도록 합니다.
    • 혼잡 윈도우 (Congestion Window)수신 윈도우 (Receive Window)를 사용하여 송수신 속도를 동적으로 조절합니다.

결론

에러 제어와 흐름 제어는 데이터 전송의 신뢰성을 확보하고, 네트워크 효율성을 최적화하는 데 중요한 역할을 합니다. 에러 제어는 전송 중 발생하는 오류를 탐지하고 수정하는 방법으로, 주로 CRC, 체크섬, ARQ 방식을 통해 이루어집니다. 반면 흐름 제어는 송수신 속도 간의 불균형을 해결하여 데이터 전송의 원활함을 유지하는데, 주로 슬라이딩 윈도우 방식이나 TCP 흐름 제어를 통해 수행됩니다. 두 제어 기법은 네트워크의 성능을 극대화하고, 안정적인 데이터 전송을 보장하는 데 필수적입니다.

0개의 댓글