기출 서로 다른 컴퓨터 시스템이나 단말기 간의 통신규약인 프로토콜이 가져야 하는 기능을 TCP(Transmission Control Protocol)의 사례를 들어 설명하시오.

agnusdei·2024년 11월 29일
0

Network

목록 보기
68/419

답변

1. 프로토콜의 정의

  • 프로토콜(Protocol)이란 네트워크에서 데이터를 주고받기 위한 통신 규칙과 절차를 정의한 체계입니다.
  • 다양한 시스템 간 상호작용을 표준화하고, 통신을 효율적이고 신뢰성 있게 수행할 수 있도록 합니다.

2. 프로토콜이 가져야 하는 주요 기능

프로토콜은 데이터 통신의 원활한 수행을 위해 다음과 같은 기능을 가져야 합니다. 이를 TCP(Transmission Control Protocol)를 통해 설명하겠습니다.


2.1 데이터 분할 및 재조립

  • 기능:
    데이터는 전송 전에 작은 단위로 분할되고, 수신 측에서 원래의 형태로 재조립됩니다.

    • 네트워크에서 큰 데이터 블록을 전송하면 혼잡이나 지연이 발생하므로, 이를 작은 패킷으로 나누어 전송합니다.
  • TCP 사례:

    • TCP는 데이터를 세그먼트(Segment)로 분할하여 전송합니다.
    • 각 세그먼트는 시퀀스 번호(Sequence Number)를 포함하여, 수신 측에서 정확한 순서로 재조립할 수 있도록 지원합니다.
    • 데이터 손실 시, 해당 세그먼트만 재전송합니다.

2.2 신뢰성 보장

  • 기능:
    데이터 전송 중 손실, 중복, 오류를 방지하여 정확성을 보장해야 합니다.

  • TCP 사례:

    • TCP는 3-way Handshake 과정을 통해 연결을 설정하며, 송신자와 수신자 간 신뢰 관계를 형성합니다.
    • 수신자는 수신된 데이터에 대해 ACK(Acknowledgment) 응답을 보내 송신자가 데이터를 정확히 전달했음을 확인합니다.
    • 데이터 손실이 발생하면 송신자는 재전송(Retransmission)을 수행합니다.

2.3 흐름 제어 (Flow Control)

  • 기능:
    송신 속도와 수신 속도의 차이를 조정하여 네트워크 혼잡을 방지합니다.

  • TCP 사례:

    • TCP는 수신 측의 윈도우 크기(Window Size) 정보를 기반으로 전송 속도를 조정합니다.
    • 수신자의 버퍼 크기를 초과하지 않도록 데이터를 전송해 오버플로우를 방지합니다.

2.4 혼잡 제어 (Congestion Control)

  • 기능:
    네트워크 트래픽이 과도하게 증가하는 것을 방지하고, 네트워크 자원을 효율적으로 사용합니다.

  • TCP 사례:

    • TCP는 혼잡 윈도우(Congestion Window)를 사용해 네트워크 상태를 모니터링합니다.
    • 초기 전송 속도를 작게 시작(Slow Start)하고, 점진적으로 증가시키며, 혼잡 발생 시 전송 속도를 줄입니다.
    • 혼잡 제어 알고리즘: Tahoe, Reno, Cubic 등.

2.5 주소 지정 및 다중화

  • 기능:
    다수의 애플리케이션이 동시에 통신할 수 있도록 각 데이터를 구분해야 합니다.

  • TCP 사례:

    • TCP는 포트 번호(Port Number)를 사용해 데이터가 올바른 애플리케이션으로 전달되도록 합니다.
    • 송신 측에서 데이터를 멀티플렉싱(Multiplexing)하여 네트워크로 보내고, 수신 측에서 이를 디멀티플렉싱(Demultiplexing)해 각 애플리케이션에 전달합니다.

2.6 연결 설정 및 종료

  • 기능:
    안정적인 데이터 전송을 위해 통신을 시작하고, 데이터 전송이 끝나면 연결을 안전하게 종료해야 합니다.

  • TCP 사례:

    • 연결 설정: 3-way Handshake 과정을 통해 송신자와 수신자 간 세션을 생성합니다.
      • SYN → SYN-ACK → ACK.
    • 연결 종료: 4-way Handshake 과정을 통해 연결을 종료합니다.
      • FIN → ACK → FIN → ACK.

3. TCP의 주요 특징

  • 연결형 프로토콜(Connection-Oriented Protocol):
    데이터를 전송하기 전에 반드시 연결을 설정하여 통신 신뢰성을 보장합니다.
  • 신뢰성 보장(Reliability):
    손실이나 중복된 데이터를 재전송 및 필터링하여 오류 없는 데이터 전송을 보장합니다.
  • 순서 보장(Ordering):
    시퀀스 번호를 사용해 데이터 순서를 보장합니다.

4. 결론

TCP는 데이터의 신뢰성과 정확성을 보장하기 위해 프로토콜이 가져야 할 모든 기능을 충실히 수행합니다.

  • 신뢰성, 흐름 제어, 혼잡 제어 등의 기능을 통해 안정적이고 효율적인 데이터 통신을 가능하게 합니다.
  • 이러한 특징으로 TCP는 파일 전송, 이메일, 웹 브라우징 등 신뢰성이 중요한 서비스에서 널리 사용됩니다.

TCP의 사례를 통해 프로토콜이 가져야 할 기능의 중요성을 명확히 이해할 수 있습니다.

4개의 댓글

comment-user-thumbnail
2025년 5월 3일

안녕하세요 자료를 너무 잘 정리해주셔서 velog에 가입까지 해서 인사를 남기게 되었습니다. 정보통신기술사 서브노트 문제를 검색하다가 들어오게 되었는데요, 관련해서 <기출>이라고 명시해주신건 어떤 기출로 이해하면 될지 알 수 있을까요?

1개의 답글