나만의 작은 도서관

[Network] OSI 7계층 #4. 전송 계층, UDP/TCP 본문

Common/CS-네트워크

[Network] OSI 7계층 #4. 전송 계층, UDP/TCP

pledge24 2024. 6. 17. 23:09

전송 계층이란?

출처: https://www.geeksforgeeks.org/transport-layer-protocols/

 

전송 계층(Transport Layer)은 OSI 모델의 네 번째 계층으로, 네트워크에서 데이터 전송을 책임지는 중요한 계층입니다. 주요 목적은 두 호스트 간의 데이터 전송을 신뢰성 있게 관리하는 것입니다.

 

전송 계층의 주요 역할

  • 호스트 간의 통신: 전송 계층은 두 호스트(엔드 포인트라고도 부름) 간의 데이터 통신을 관리합니다. 이는 단순히 데이터를 전달하는 것을 넘어, 데이터가 정확하게 도착하는지 확인하는 역할을 수행하기도 합니다.
  • 데이터 스트림 분할 및 재조합: 전송 계층은 상위 계층(예: 응용 계층)에서 전송되는 데이터를 적절한 크기의 세그먼트로 나누고, 이 세그먼트가 수신지에서 원래의 형태로 다시 조립되도록 관리합니다.
  • 오류 검사 및 복구: 데이터 전송 중에 발생할 수 있는 오류를 감지하고 이를 복구하는 기능을 제공합니다. 이는 데이터를 수신할 때 오류 없이 정확하게 수신되도록 보장합니다.
  • 흐름 제어: 송신 측이 수신 측의 처리 능력을 초과하지 않도록 데이터 전송 속도를 조절합니다. 이는 네트워크의 효율성과 성능을 유지하는 데 중요합니다.
  • 혼잡 제어: 네트워크 혼잡을 관리하고 최소화하여 전체 네트워크 성능을 유지하고, 데이터 전송이 과도한 패킷 손실 없이 원활하게 이루어지도록 합니다.

 

오류 제어, 흐름 제어, 혼잡 제어

오류 제어 (Error Control)

  • 체크섬(checksum): 수신한 데이터 세그먼트에 오류가 있는지 확인하기위해 사용합니다. 수신 측에서 구한 체크섬과 수신받은 체크섬 값이 일치하는지 비교하는 방식으로 데이터가 손상되었는지 검증합니다.
  • 재전송: 데이터가 손실되거나 손상된 경우, 수신 측에서 이를 감지하고 송신 측에 재전송을 요청합니다. 이는 송신 측에서 확인 응답(ACK)을 받지 못했을 때 트리거됩니다.

 

흐름 제어 (Flow Control) 

  • 슬라이딩 윈도우(Sliding Window): 송신 측이 수신 측의 데이터 처리 능력에 맞게 윈도우 크기를 조절하여 데이터 전송 속도를 제어하는 메커니즘입니다. 송신측은 수신측에서 ACK가 오지 않아도 윈도우 크기만큼 데이터를 전송할 수 있으며 각 프레임에 대한 ACK를 수신받을 때마다 윈도우의 크기가 늘어납니다. 

 

혼잡 제어 (Congestion Control)

  • 혼잡 회피: 네트워크 혼잡을 감지하고 이를 완화하기 위해 TCP는 송신 속도를 동적으로 조절합니다. 일반적으로 네트워크의 혼잡 상태를 감지하기 위해 패킷 손실을 모니터링하고, 혼잡이 발생하면 송신 속도를 줄입니다.
  • 고속 복구(Fast Recovery)  고속 재전송(Fast Retransmit): 패킷 손실이 감지되면, 송신 속도를 급격히 줄이고 손실된 패킷을 빠르게 재전송하는 메커니즘입니다. 이를 통해 혼잡을 빠르게 해소하고 네트워크 성능을 유지합니다.

 

전송 계층의 필요성

전송 계층은 신뢰성 있는 데이터 전송을 보장하고 네트워크 자원을 효율적으로 사용할 수 있게 해줍니다. 네트워크 상에서 데이터가 손실되거나 손상될 수 있는 상황에서, 전송 계층은 이러한 문제를 해결하기 위한 다양한 메커니즘을 제공합니다. 전송 계층의 기능이 없다면 애플리케이션 개발자는 직접 데이터 전송을 관리해야 하므로 복잡도가 증가하고 오류가 발생할 가능성이 높아집니다.


전송 프로토콜: UDP와 TCP

출처: https://www.cbtnuggets.com/blog/technology/networking/what-are-transport-layer-protocols

 

전송 계층에서 사용되는 주요 프로토콜은 UDP와 TCP입니다. UDP와 TCP의 특징은 다음과 같습니다.

  1. UDP (User Datagram Protocol):
    • 비연결 지향 프로토콜: 송신자와 수신자 간에 연결을 설정하지 않고 데이터를 전송합니다.
    • 단순성: 오류 검사, 흐름 제어 및 혼잡 제어 기능이 거의 또는 전혀 없습니다.
    • 빠른 전송: 데이터 전송이 지연 없이 빠르게 이루어집니다.
    • 용도: 실시간 스트리밍, VoIP 등 신뢰성보다는 속도가 중요한 경우에 사용됩니다.
  2. TCP (Transmission Control Protocol):
    • 연결 지향 프로토콜: 데이터 전송 전에 송신자와 수신자 간에 연결이 설정됩니다.
    • 신뢰성: 데이터 전송의 신뢰성을 보장하기 위해 오류 검사, 재전송, 흐름 제어 및 혼잡 제어 기능을 제공합니다.
    • 데이터 순서 보장: 데이터가 전송된 순서대로 수신되도록 보장합니다.
    • 용도: 웹 브라우징(HTTP/HTTPS), 이메일 전송(SMTP, IMAP), 파일 전송(FTP) 등 신뢰성 있는 전송이 중요한 경우에 사용됩니다.

 

UDP와 TCP에 대한 자세한 내용은 아래 글을 참조해주세요.

https://pledge24.tistory.com/286

 

[Network] 1분 간단 질문. TCP와 UDP가 무엇인가요?

인터넷에서 정보교환의 방식은 TCP와 UDP로 나눠집니다. TCP는 HTTP, FTP, SSH, SMTP에 활용되며, UDP는 DNS, SNMP, SIP, RTSP등에 활용되어 네트워크 노드정보 교환이나 미디어 처리에 활용됩니다. TCPTCP는 컴

pledge24.tistory.com

 


추가 자료 링크

예전에 정리해두었던 자료들을 추가해두었다.

 

흐름 제어

https://pledge24.notion.site/9-99de3ff6a7104ac2b5a9c0a013e76dbd?pvs=4

 

9주차 | Notion

링크

pledge24.notion.site

 

 

오류 제어, 오류 검출

https://pledge24.notion.site/10-be0ba275df454642be93dc2133d29baa

 

10주차 | Notion

오류제어

pledge24.notion.site

 


다음 글 링크

https://pledge24.tistory.com/261

 

[OSI 7계층] 5. 응용 계층, DNS, HTTP

응용 계층 응용 계층(Application Layer)은 컴퓨터 네트워크에서 데이터를 최종 사용자에게 제공하고 애플리케이션 간의 통신을 담당하는 계층입니다. OSI 7계층 모델의 최상위 계층이며, TCP/IP 모델

pledge24.tistory.com