본문 바로가기
정보처리기사

[정처기 실기] 5. 프로토콜의 개념과 역할 - 4과목 네트워크

by 공불러 2024. 4. 9.
728x90
반응형

[정처기 실기] 5. 프로토콜의 개념과 역할 - 4과목 네트워크

지난 시간에는 정보처리기사의 계산 문제인 서브넷팅과 자주 출제되는 IPv4(유멀브), IPv6(유멀애) 그리고 서로 전환되는 방식(터널링, 듀얼스택, 주소변환) 등을 공부했습니다.

 

이번 시간에는 네트워크 환경에서 매우 중요한 프로토콜입니다. 이후에 배우게 되는 OIS 7계층을 단순히 문제가 사라지고 각 계층의 프로토콜을 묻는 문제도 많아지고 있기 때문에 기초 내용을 반드시 알아두셔야합니다.

목차

      프로토콜이란?

      프로토콜(protocol)은 컴퓨터 네트워크나 통신 시스템에서 통신을 위한 규칙의 집합을 말합니다. 이러한 규칙은 데이터를 교환하고 전송하는 방식을 정의하며, 통신하는 장치들 간에 상호 작용을 가능하게 합니다.

      기본요소(구의타)

      구문(Syntax): 프로토콜은 데이터가 어떻게 구성되는지를 정의합니다.

      데이터의 형식, 포맷, 인코딩 등을 포함합니다. 구문적인 부분은 데이터가 어떻게 표현되고 전달되는지를 규정합니다.

       

      의미(Semantics): 프로토콜은 데이터가 전송되는 의미나 의도를 정의합니다.

      데이터의 의미와 목적을 이해하고 해석하는 방법을 규정합니다. 예를 들어, 데이터를 받은 후에 어떻게 처리해야 하는지를 정의합니다.

       

      타이밍(Timing): 프로토콜은 데이터 전송의 타이밍을 규정합니다.

      데이터 전송 시작과 끝, 전송 간격 등을 조절합니다. 이를 통해 통신 장치들은 데이터를 적절한 시간에 송수신할 수 있습니다.

      프로토콜 기능

      프로토콜 기능 설명
      단편화와 재결합 큰 데이터를 작은 패킷으로 분할하여 전송하고, 수신 측에서 이를 다시 원래대로 재결합합니다.
      캡슐화 데이터에 헤더와 트레일러를 추가하여 패킷으로 변환하는 과정을 말합니다.
      data -> h/d =segment ->h/s = packet 
      흐름제어 송신 측과 수신 측 간에 데이터 전송의 속도를 조절하여 네트워크 혼잡을 방지합니다.
      오류제어 데이터 전송 중에 발생하는 오류를 감지하고 복구하는 기능을 제공합니다.
      혼잡제어 네트워크의 혼잡 상황을 감지하고, 이를 제어하여 네트워크의 성능을 최적화합니다.
      동기화 송신 측과 수신 측 간에 데이터 전송의 타이밍을 동기화하여 데이터를 정확하게 전송합니다.
      순서제어 데이터 패킷이 네트워크를 통해 순서대로 전송되도록 보장합니다.
      다중화 여러 개의 데이터 흐름을 하나의 물리적 링크로 전송하고, 수신 측에서 이를 분리합니다.
      경로제어 데이터가 네트워크를 통해 가장 효율적인 경로를 따라 전송되도록 보장합니다.

       

      프로토콜의 흐름제어란?

      프로토콜의 흐름제어(flow control)는 데이터를 전송하는 송신자와 데이터를 수신하는 수신자 간의 데이터 흐름을 조절하는 메커니즘입니다. 

      흐름제어는 송신자가 수신자의 처리 속도에 맞춰 데이터를 전송하도록 조절하여 네트워크 혼잡을 방지하고 오버플로우나 데이터 손실을 방지합니다.

      STOP AND WAIT 방식과 sliding window 방식은 흐름제어를 구현하는 두 가지 주요 방법입니다.

      STOP AND WAIT 방식

      STOP AND WAIT 방식은 송신자가 데이터를 전송한 후 수신자로부터 확인 메시지를 기다리는 방식입니다.

      데이터를 전송하고 확인을 기다리는 동안 다음 데이터를 전송할 수 없으므로 효율성이 낮습니다.

      보내고나서 받은 것을 확인하고 다시 보내는 방식

      Sliding Window 방식

      Sliding Window 방식은 수신자가 송신자에게 얼마나 많은 데이터를 받을 수 있는지를 알려주는 윈도우(window)를 사용합니다. 이 윈도우는 송신자와 수신자 간의 데이터 흐름을 조절합니다.

      버퍼(패킷)를 만들어서 일정 비율로 보내는 것입니다.

      패킷의 전송과 확인(acknowledgement, ACK)은 데이터 흐름을 제어하기 위해 중요한 역할을 합니다. 이 방식은 송신자와 수신자 간의 데이터 흐름을 조절하는 데 사용됩니다.

      • Sliding Window 처리방식에서는 송신자는 윈도우의 크기에 맞춰 데이터를 전송합니다. 송신자는 수신자로부터 확인을 받을 때마다 윈도우를 한 칸씩 이동시켜 다음 데이터를 전송합니다.
      • 예를 들어, 윈도우 크기가 5인 경우 송신자는 최대 5개의 데이터를 연속으로 전송할 수 있습니다. 수신자는 데이터를 받을 때마다 확인 메시지를 송신자에게 전송하여 윈도우를 이동시킵니다.
      • 만약 윈도우 크기가 5이고, 송신자가 패킷을 0부터 4까지 전송했다고 가정해보겠습니다. 수신자는 패킷 0부터 2까지 받았고, 패킷 3과 4는 아직 받지 않았습니다. 이때 윈도우는 0부터 2까지의 패킷을 표시하고 있습니다. 수신자가 패킷 3을 받으면 윈도우는 1칸 오른쪽으로 이동하여 1부터 3까지의 패킷을 표시하게 됩니다.

      피기배킹(piggybacking)

      양방향 통신에서 정보 프레임과 응답 프레임을 동시에 교차 전송하는 방식

      • 피기배킹은 데이터 전송과 확인 메시지를 하나의 패킷에 함께 담아 전송하는 방식입니다.
      • 송신자는 데이터 패킷을 전송할 때, 해당 패킷에 대한 확인 메시지를 기다리는 대신 데이터 패킷에 함께 확인 메시지를 담아 전송합니다.
      • 수신자는 데이터 패킷을 받으면서 동시에 확인 메시지를 송신자에게 반환합니다

      오류제어란?

      오류제어(Error Control)는 통신 시스템에서 데이터 전송 과정 중에 발생할 수 있는 오류를 감지하고 복구하기 위한 메커니즘입니다. 이는 데이터가 전송되는 동안 오류가 발생할 수 있으므로, 오류를 검출하고 수정하여 데이터의 무결성을 보존하는 데 중요합니다.

      ARQ( Automatic Repeat reQuest )는 다시 재전송을 받는 것을 말합니다.

      • Stop-and-Wait ARQ
        • Stop-and-Wait Automatic Repeat reQuest(ARQ)는 송신자가 데이터를 전송한 후 수신자로부터 확인 메시지를 받을 때까지 대기하는 방식입니다.
        • 확인 메시지를 받은 후에만 다음 데이터를 전송합니다. 이 방식은 단순하지만 효율성이 낮을 수 있습니다.
      • Go Back N ARQ
        • Go Back N ARQ는 송신자가 여러 개의 패킷을 전송하고, 수신자는 받은 패킷들을 확인한 후 손상된 패킷이 발견되면 해당 패킷부터 다시 전송 요청을 보내는 방식입니다.
        • 잘못 받으면, 모든 데이터를 재전송
        • NACK 오류정보를 보냄
      • Selective Repeat ARQ
        • Selective Repeat ARQ는 Go Back N ARQ와 유사하지만, 송신자가 손상된 패킷만 다시 전송하는 대신, 수신자가 손상된 패킷만을 요청하여 다시 전송받는 방식입니다.
        • NACK 오류정보를 보냄
        • 해당하는 것만 다시 보냄
      • Adaptive ARQ
        • Adaptive ARQ는 통신 환경에 따라 오류제어 방식을 동적으로 조정하는 방식입니다.
        • 이는 통신 환경의 변화에 적응하여 최적의 성능을 유지할 수 있도록 합니다.

       

      오류 발생원인

      오류 발생원인으로는 여러 가지가 있습니다. 여기에는 감쇠, 지연 왜곡, 상호 변조 잡음 및 충격 잡음 등이 포함됩니다.

      • 감쇠(Amplitude Attenuation): 신호가 전달되는 동안 신호의 진폭이 줄어들어서 신호의 강도가 감소하는 현상입니다. 이로 인해 신호의 크기가 축소되어 오류가 발생할 수 있습니다.
        • 리피터로 해결
      • 지연 왜곡(Delay Distortion): 신호의 전송 동안 발생하는 시간적 차이로 인해 발생하는 왜곡 현상입니다.
        • 신호의 원래 형태가 변형되거나 뒤바뀔 수 있으며, 오류를 유발할 수 있습니다.
      • 상호 변조 잡음(Intermodulation Noise): 서로 다른 주파수의 신호가 혼합되어 새로운 주파수가 생성되는 현상입니다.
        • 상호 변조는 원래의 신호를 왜곡시키고 오류를 유발할 수 있습니다.
        • 라디오 채널 변경시 치지직거리는 현상
      • 충격 잡음(Impulse Noise)
        • 갑작스러운 전압 또는 전류의 변화로 인해 발생하는 잡음으로, 단발성 또는 반복적일 수 있습니다.
        • 충격 잡음은 신호를 왜곡시키고 오류를 발생시킬 수 있습니다.

      전송오류 제어 방식

      1. 전진 오류 수정(Forward Error Correction, FEC)
        • 수신측에서 스스로 오류를 검출하고 수정하는 방식
        • FEC는 송신자가 추가 정보(패리티 비트 또는 검사 코드)를 데이터에 첨부하여 전송합니다.
        • 이 추가 정보는 수신자가 오류를 감지하고 수정하는 데 사용됩니다.
        • 예를 들어, 송신자는 데이터 블록에 에러 검사 및 수정 코드를 추가하고, 수신자는 이 코드를 사용하여 오류를 수정합니다.
        • 일반적으로, FEC는 송신자와 수신자 간에 데이터를 재전송할 필요 없이 오류를 감지하고 수정할 수 있습니다.
        • FEC는 대역폭을 낭비하지 않으며, 실시간 통신에 유용합니다.
        • 해밍코드, 상승코드
      2. 후진 오류 수정(Backward Error Correction, BEC)
        • 오류를 검출하면 ARQ를 다시 보내게됨
        • BEC는 오류를 감지하고 수정하기 위해 수신자가 송신자에게 추가 정보(재전송 요청 또는 수정 정보)를 보내는 방식입니다.
        • 송신자는 오류를 수정하기 위해 수신자로부터의 추가 정보에 따라 데이터를 재전송하거나 수정합니다.
        • BEC는 주로 재전송을 통해 오류를 수정하며, 재전송에 따른 추가적인 대역폭 소모가 발생할 수 있습니다.
        • 그러나 BEC는 복잡한 오류 패턴을 처리할 수 있으며, FEC보다 더 정확한 오류 수정이 가능합니다.

      오류 검출

      1. 패리티 검사 (Parity Check)
        • 패리티 비트를 사용하여 데이터의 홀수 개 또는 짝수 개의 비트가 설정되어 있는지를 검사합니다.
        • 예를 들어, 홀수 패리티는 데이터에 짝수 개의 비트가 설정되어 있을 경우 추가로 1 비트를 설정하고, 짝수 패리티는 데이터에 홀수 개의 비트가 설정되어 있을 경우 추가로 1 비트를 설정합니다.
      2. 순환 중복 검사 (Cyclic Redundancy Check, CRC)
        • CRC는 데이터 블록에 대한 다항식 연산을 수행하여 잔여를 생성하고, 이 잔여를 검사 코드로 사용합니다.
        • 수신자는 수신된 데이터에 대해 동일한 다항식 연산을 수행하여 잔여를 계산하고, 송신자가 보낸 잔여와 비교하여 오류를 감지합니다.
      3. 체크섬 (Checksum)
        • 체크섬은 데이터의 일부 또는 전체를 합산하여 특정 값을 생성하는 방식을 사용합니다.
        • 수신자는 수신된 데이터의 체크섬 값을 계산하고, 송신자가 보낸 체크섬 값과 비교하여 오류를 감지합니다.
      4. 해밍 코드 (Hamming Code)
        • 해밍 코드는 데이터에 여분의 비트를 추가하여 오류 검출과 수정을 수행합니다.
        • 이 비트는 데이터 비트와 조합하여 특정한 패턴을 형성하며, 이를 통해 오류를 검출하고 수정할 수 있습니다.
      5. 상승 코드 (Rise Code)
        • 상승 코드는 데이터의 변화를 검출하여 오류를 감지하는 방식입니다.
        • 데이터가 변할 때마다 상승 코드가 발생하여 이를 감지하고, 오류가 발생했을 경우 오류를 보고합니다.
      728x90
      반응형

      댓글