dh_0e

[과제] 전송 계층, TCP/UDP, TCP 오류, 흐름, 혼잡 제어 본문

내일배움캠프/특강

[과제] 전송 계층, TCP/UDP, TCP 오류, 흐름, 혼잡 제어

dh_0e 2024. 6. 18. 13:41

전송 계층(Transport Layer)

  • OSI 모델의 4번째 계층으로, 데이터의 종단 간 전송을 담당함
  • 주요 목적은 두 호스트 간의 신뢰성있고, 효율적인 데이터 전송을 보장하는 것
  • 응용 프로그램 간에 데이터 패킷을 전송하고 수신하는 데 필요한 서비스와 기능을 제공함으로써 이루어짐

개념과 필요성

  1. 데이터 분할 및 재조합
    • 데이터는 큰 덩어리로 전송되지 않으며 작은 패킷으로 분할되어 전송됨
    • 전송 계층은 이러한 패킷을 적절한 순서로 재조합하여 원래 데이터 형태로 복원함
  2. 신뢰성 있는 전송
    • 전송 계층은 데이터가 손실되지 않고, 도착지에 도달하도록 보장함
    • 오류 검출 및 수정, 재전송 등의 메커니즘을 사용하여 신뢰성을 확보함
  3. 흐름 제어
    • 데이터 손신과 수신 속도 간의 불균형을 조절하여 송신 측이 수신 측을 압도하지 않도록 함
  4. 혼잡 제어
    • 네트워크 혼잡을 방지하기 위해 데이터 전송 속도를 조절함

 

TCP / UDP

  • 전송 계층의 두 가지 주요 프로토콜

TCP (Transmission Control Protocol)

  • 연결 지향형 프로토콜로, 데이터의 신뢰성 있는 전송을 보장함
  • 3-way handshake를 하여 데이터 전송 전에 송신 측과 수신 측 간에 연결을 설정함
  • 데이터가 제대로 도착했는지 확인하고, 손실된 패킷을 재전송함
  • 데이터 패킷이 전송된 순서대로 도착하도록 하여 순서성을 보장함
  • 흐름 제어 및 혼잡 제어를 통해 데이터 전송 속도를 조절하여 네트워크 혼잡을 방지함

UDP  (User Datagram Protocol)

  • 비연결 지향형 프로토콜로, 데이터의 신속한 전송을 중요시함
  • 송신 측과 수신 측 간에 연결을 설정하지 않음
  • 신속한 데이터 전송이 가능하며, 오류 검출 및 수정이 없음
  • 데이터 패킷이 전송된 순서대로 도착하지 않을 수 있음
  • 흐름 제어 및 혼잡 제어가 없어 네트워크 혼잡 관리가 어려움

 

TCP 오류, 흐름, 혼잡 제어

  1. 오류 제어
    • ACK (Acknowledgement): 데이터 패킷이 수신되면 수신측은 송신 측에 ACK를 보내고, 송신 측은 ACK를 받지 못한 패킷이 있는지 파악하고 있다면 패킷을 재전송함
    • 체크섬: 데이터의 무결성을 확인하기 위해 패킷마다 체크섬이라는 중복 검사를 실행하여 오류가 감지되면 패킷을 재전송함
  2. 흐름 제어
    • 슬라이딩 윈도우 (Sliding Window): 송신 측과 수신 측 간의 데이터 흐름을 조절하여 송신 측이 수신 측의 수용 능력을 초과하지 않도록 함
    • 윈도우 크기 조절: 수신 측은 자신의 수신 버퍼 크기를 송신 측에 알리며, 송신 측은 이를 바탕으로 데이터 전송 속도를 조절함
  3. 혼잡 제어
    • 느린 시작 (Slow Start): 데이터 전송을 천천히 시작하여 네트워크 상태를 파악하고 혼잡을 피함
    • 혼잡 회피 (Congestion Avoidance): 혼잡 상태를 피하기 위해 전송 속도를 점진적으로 증가시킴
    • 혼잡 탐지 (Congestion Detection): 혼잡이 감지되면 전송 속도를 줄임 (ex: TCP Tahoe, TCP Reno Algorithm)