내일배움캠프/특강
[과제] 전송 계층, TCP/UDP, TCP 오류, 흐름, 혼잡 제어
dh_0e
2024. 6. 18. 13:41
전송 계층(Transport Layer)
- OSI 모델의 4번째 계층으로, 데이터의 종단 간 전송을 담당함
- 주요 목적은 두 호스트 간의 신뢰성있고, 효율적인 데이터 전송을 보장하는 것
- 응용 프로그램 간에 데이터 패킷을 전송하고 수신하는 데 필요한 서비스와 기능을 제공함으로써 이루어짐
개념과 필요성
- 데이터 분할 및 재조합
- 데이터는 큰 덩어리로 전송되지 않으며 작은 패킷으로 분할되어 전송됨
- 전송 계층은 이러한 패킷을 적절한 순서로 재조합하여 원래 데이터 형태로 복원함
- 신뢰성 있는 전송
- 전송 계층은 데이터가 손실되지 않고, 도착지에 도달하도록 보장함
- 오류 검출 및 수정, 재전송 등의 메커니즘을 사용하여 신뢰성을 확보함
- 흐름 제어
- 데이터 손신과 수신 속도 간의 불균형을 조절하여 송신 측이 수신 측을 압도하지 않도록 함
- 혼잡 제어
- 네트워크 혼잡을 방지하기 위해 데이터 전송 속도를 조절함
TCP / UDP
- 전송 계층의 두 가지 주요 프로토콜
TCP (Transmission Control Protocol)
- 연결 지향형 프로토콜로, 데이터의 신뢰성 있는 전송을 보장함
- 3-way handshake를 하여 데이터 전송 전에 송신 측과 수신 측 간에 연결을 설정함
- 데이터가 제대로 도착했는지 확인하고, 손실된 패킷을 재전송함
- 데이터 패킷이 전송된 순서대로 도착하도록 하여 순서성을 보장함
- 흐름 제어 및 혼잡 제어를 통해 데이터 전송 속도를 조절하여 네트워크 혼잡을 방지함
UDP (User Datagram Protocol)
- 비연결 지향형 프로토콜로, 데이터의 신속한 전송을 중요시함
- 송신 측과 수신 측 간에 연결을 설정하지 않음
- 신속한 데이터 전송이 가능하며, 오류 검출 및 수정이 없음
- 데이터 패킷이 전송된 순서대로 도착하지 않을 수 있음
- 흐름 제어 및 혼잡 제어가 없어 네트워크 혼잡 관리가 어려움
TCP 오류, 흐름, 혼잡 제어
- 오류 제어
- ACK (Acknowledgement): 데이터 패킷이 수신되면 수신측은 송신 측에 ACK를 보내고, 송신 측은 ACK를 받지 못한 패킷이 있는지 파악하고 있다면 패킷을 재전송함
- 체크섬: 데이터의 무결성을 확인하기 위해 패킷마다 체크섬이라는 중복 검사를 실행하여 오류가 감지되면 패킷을 재전송함
- 흐름 제어
- 슬라이딩 윈도우 (Sliding Window): 송신 측과 수신 측 간의 데이터 흐름을 조절하여 송신 측이 수신 측의 수용 능력을 초과하지 않도록 함
- 윈도우 크기 조절: 수신 측은 자신의 수신 버퍼 크기를 송신 측에 알리며, 송신 측은 이를 바탕으로 데이터 전송 속도를 조절함
- 혼잡 제어
- 느린 시작 (Slow Start): 데이터 전송을 천천히 시작하여 네트워크 상태를 파악하고 혼잡을 피함
- 혼잡 회피 (Congestion Avoidance): 혼잡 상태를 피하기 위해 전송 속도를 점진적으로 증가시킴
- 혼잡 탐지 (Congestion Detection): 혼잡이 감지되면 전송 속도를 줄임 (ex: TCP Tahoe, TCP Reno Algorithm)