나만의 작은 도서관
[Network] OSI 7계층 #4. 전송 계층, UDP/TCP 본문
전송 계층이란?
전송 계층(Transport Layer)은 OSI 모델의 네 번째 계층으로, 네트워크에서 데이터 전송을 책임지는 중요한 계층입니다. 주요 목적은 두 호스트 간의 데이터 전송을 신뢰성 있게 관리하는 것입니다.
전송 계층의 주요 역할
- 호스트 간의 통신: 전송 계층은 두 호스트(엔드 포인트라고도 부름) 간의 데이터 통신을 관리합니다. 이는 단순히 데이터를 전달하는 것을 넘어, 데이터가 정확하게 도착하는지 확인하는 역할을 수행하기도 합니다.
- 데이터 스트림 분할 및 재조합: 전송 계층은 상위 계층(예: 응용 계층)에서 전송되는 데이터를 적절한 크기의 세그먼트로 나누고, 이 세그먼트가 수신지에서 원래의 형태로 다시 조립되도록 관리합니다.
- 오류 검사 및 복구: 데이터 전송 중에 발생할 수 있는 오류를 감지하고 이를 복구하는 기능을 제공합니다. 이는 데이터를 수신할 때 오류 없이 정확하게 수신되도록 보장합니다.
- 흐름 제어: 송신 측이 수신 측의 처리 능력을 초과하지 않도록 데이터 전송 속도를 조절합니다. 이는 네트워크의 효율성과 성능을 유지하는 데 중요합니다.
- 혼잡 제어: 네트워크 혼잡을 관리하고 최소화하여 전체 네트워크 성능을 유지하고, 데이터 전송이 과도한 패킷 손실 없이 원활하게 이루어지도록 합니다.
오류 제어, 흐름 제어, 혼잡 제어
오류 제어 (Error Control)
- 체크섬(checksum): 수신한 데이터 세그먼트에 오류가 있는지 확인하기위해 사용합니다. 수신 측에서 구한 체크섬과 수신받은 체크섬 값이 일치하는지 비교하는 방식으로 데이터가 손상되었는지 검증합니다.
- 재전송: 데이터가 손실되거나 손상된 경우, 수신 측에서 이를 감지하고 송신 측에 재전송을 요청합니다. 이는 송신 측에서 확인 응답(ACK)을 받지 못했을 때 트리거됩니다.
흐름 제어 (Flow Control)
- 슬라이딩 윈도우(Sliding Window): 송신 측이 수신 측의 데이터 처리 능력에 맞게 윈도우 크기를 조절하여 데이터 전송 속도를 제어하는 메커니즘입니다. 송신측은 수신측에서 ACK가 오지 않아도 윈도우 크기만큼 데이터를 전송할 수 있으며 각 프레임에 대한 ACK를 수신받을 때마다 윈도우의 크기가 늘어납니다.
혼잡 제어 (Congestion Control)
- 혼잡 회피: 네트워크 혼잡을 감지하고 이를 완화하기 위해 TCP는 송신 속도를 동적으로 조절합니다. 일반적으로 네트워크의 혼잡 상태를 감지하기 위해 패킷 손실을 모니터링하고, 혼잡이 발생하면 송신 속도를 줄입니다.
- 고속 복구(Fast Recovery) 및 고속 재전송(Fast Retransmit): 패킷 손실이 감지되면, 송신 속도를 급격히 줄이고 손실된 패킷을 빠르게 재전송하는 메커니즘입니다. 이를 통해 혼잡을 빠르게 해소하고 네트워크 성능을 유지합니다.
전송 계층의 필요성
전송 계층은 신뢰성 있는 데이터 전송을 보장하고 네트워크 자원을 효율적으로 사용할 수 있게 해줍니다. 네트워크 상에서 데이터가 손실되거나 손상될 수 있는 상황에서, 전송 계층은 이러한 문제를 해결하기 위한 다양한 메커니즘을 제공합니다. 전송 계층의 기능이 없다면 애플리케이션 개발자는 직접 데이터 전송을 관리해야 하므로 복잡도가 증가하고 오류가 발생할 가능성이 높아집니다.
전송 프로토콜: UDP와 TCP
전송 계층에서 사용되는 주요 프로토콜은 UDP와 TCP입니다. UDP와 TCP의 특징은 다음과 같습니다.
- UDP (User Datagram Protocol):
- 비연결 지향 프로토콜: 송신자와 수신자 간에 연결을 설정하지 않고 데이터를 전송합니다.
- 단순성: 오류 검사, 흐름 제어 및 혼잡 제어 기능이 거의 또는 전혀 없습니다.
- 빠른 전송: 데이터 전송이 지연 없이 빠르게 이루어집니다.
- 용도: 실시간 스트리밍, VoIP 등 신뢰성보다는 속도가 중요한 경우에 사용됩니다.
- TCP (Transmission Control Protocol):
- 연결 지향 프로토콜: 데이터 전송 전에 송신자와 수신자 간에 연결이 설정됩니다.
- 신뢰성: 데이터 전송의 신뢰성을 보장하기 위해 오류 검사, 재전송, 흐름 제어 및 혼잡 제어 기능을 제공합니다.
- 데이터 순서 보장: 데이터가 전송된 순서대로 수신되도록 보장합니다.
- 용도: 웹 브라우징(HTTP/HTTPS), 이메일 전송(SMTP, IMAP), 파일 전송(FTP) 등 신뢰성 있는 전송이 중요한 경우에 사용됩니다.
UDP와 TCP에 대한 자세한 내용은 아래 글을 참조해주세요.
https://pledge24.tistory.com/286
추가 자료 링크
예전에 정리해두었던 자료들을 추가해두었다.
흐름 제어
https://pledge24.notion.site/9-99de3ff6a7104ac2b5a9c0a013e76dbd?pvs=4
오류 제어, 오류 검출
https://pledge24.notion.site/10-be0ba275df454642be93dc2133d29baa
다음 글 링크
https://pledge24.tistory.com/261
'Common > CS-네트워크' 카테고리의 다른 글
[Network] 1분 간단 질문. OSI 7계층이란 무엇일까요? (0) | 2024.06.26 |
---|---|
[Network] OSI 7계층 #5. 응용 계층, DNS, HTTP (0) | 2024.06.19 |
[Network] 서브넷 마스크, IP주소의 구분, 라우팅과 라우터 (0) | 2024.05.29 |
[Network] OSI 7계층 #3. 네트워크 계층 (0) | 2024.05.28 |
[Network] OSI 7계층 #2. 물리 계층, 데이터 링크 계층 (0) | 2024.05.22 |