기출 tcp/ip 문제점

agnusdei·2024년 11월 24일
0

Network

목록 보기
35/419

질문

1. 네트워크 통신을 위한 TCP/IP 프로토콜의 자체적인 문제점을 기술하시오.
2. TCP 통신에서 다음 기능을 설명하시오:
(가) Listen
(나) Accept
(다) Slow-start 단계


답변

1. TCP/IP 프로토콜의 자체적인 문제점

TCP/IP는 현재 가장 널리 사용되는 네트워크 프로토콜이지만, 몇 가지 고유한 문제점이 존재합니다.

1.1. 네트워크 혼잡 문제

  • TCP는 혼잡 제어를 위해 Slow-start, Congestion Avoidance 등을 사용하지만, 급격한 트래픽 증가 시 효율적인 대처가 어려움.
  • 특히 대역폭이 높은 네트워크 환경에서는 TCP의 성능이 제한적임.

1.2. 헤더 오버헤드

  • TCP/IP는 각 계층마다 헤더를 추가하므로, 작은 크기의 데이터 전송 시 오버헤드가 큼.
  • 특히 IoT(Internet of Things)와 같은 환경에서는 비효율적.

1.3. 순차적 데이터 전송의 한계

  • TCP는 데이터의 순서 보장을 위해 항상 확인 응답(ACK)을 기다리므로 고속 네트워크에서 대기 시간이 길어질 수 있음.

1.4. UDP와의 비효율적 통합

  • TCP는 신뢰성을 보장하지만, 실시간 애플리케이션(예: 스트리밍)에서는 속도가 더 중요한 경우가 있음.
  • TCP와 UDP 간의 조정 부족으로 적합한 프로토콜 선택이 어려움.

1.5. 보안 문제

  • TCP/IP는 설계 초기부터 보안을 고려하지 않았기 때문에, IP 스푸핑이나 TCP 세션 하이재킹 같은 공격에 취약.
  • 추가적인 암호화 프로토콜(예: TLS)이 필요함.

2. TCP 통신의 주요 기능 설명

(가) Listen

  • 개념:
    Listen은 TCP 서버 소켓이 연결 요청을 대기하는 상태를 설정하는 기능입니다.
    즉, 클라이언트의 연결 요청을 기다리기 위해 소켓을 준비시키는 단계입니다.

  • 작동 원리:

    1. 서버는 socket() 함수를 통해 소켓을 생성합니다.
    2. bind() 함수를 사용하여 서버의 IP와 포트를 소켓에 할당합니다.
    3. listen() 함수를 호출하여 소켓을 연결 대기 상태로 전환합니다.
    4. 이후 클라이언트의 연결 요청이 들어오면 Accept 단계로 전환됩니다.
  • 특징:

    • 대기열 크기는 backlog 값으로 설정되며, 초과된 요청은 거절됩니다.
    • Listen 상태에서 소켓은 수동 모드(Passive Mode)로 동작합니다.

(나) Accept

  • 개념:
    Accept는 클라이언트의 연결 요청을 승인하여, 클라이언트와 서버 간의 연결을 생성하는 기능입니다.

  • 작동 원리:

    1. 클라이언트는 서버의 IP와 포트에 연결 요청을 전송합니다.
    2. 서버의 Listen 소켓은 이 요청을 감지하고, accept() 함수로 처리합니다.
    3. Accept 호출 시 새 소켓이 생성되며, 클라이언트와의 통신에 사용됩니다.
  • 특징:

    • Accept 단계에서 연결은 3-way Handshake를 통해 확립됩니다.
    • 서버는 기존 Listen 소켓을 유지하면서 새로운 소켓을 통해 클라이언트와 데이터 교환을 수행합니다.

(다) Slow-start 단계

  • 개념:
    Slow-start는 TCP의 혼잡 제어 알고리즘 중 하나로, 네트워크 초기 연결 시 데이터 전송 속도를 점진적으로 증가시키는 단계입니다.

  • 작동 원리:

    1. 초기 CWND 설정:

      • CWND(Congestion Window)는 작은 값(일반적으로 1 MSS)으로 초기화됩니다.
    2. 지수적 증가:

      • 송신 측은 ACK를 받을 때마다 CWND를 두 배로 증가시킵니다.
      • 이 과정은 네트워크의 혼잡 상태를 탐색하기 위함입니다.
    3. 전환 시점:

      • CWND가 SSTHRESH(Slow-start Threshold) 값에 도달하면 Slow-start 단계가 종료되고, 혼잡 회피(Congestion Avoidance) 단계로 전환됩니다.
  • 특징:

    • 네트워크 대역폭의 적절한 활용을 보장.
    • 초기에 대량의 데이터가 전송될 경우 발생할 수 있는 혼잡을 방지.
    • 패킷 손실 발생 시 SSTHRESH를 재조정하고 Slow-start 단계로 복귀.

결론

TCP/IP는 효율적이고 신뢰성 있는 데이터 전송을 보장하지만, 현대 네트워크의 요구사항에 맞추어 혼잡 제어, 보안, 지연 시간 최적화와 같은 개선이 필요합니다. TCP의 Listen, Accept, Slow-start 기능은 각각 연결 관리와 네트워크 상태를 고려한 전송 최적화에 중요한 역할을 수행하며, 이를 적절히 이해하고 활용하는 것이 안정적인 네트워크 설계의 핵심입니다.

0개의 댓글