OSI 7 계층 모델 요약
OSI(Open Systems Interconnection) 7 계층 모델은 네트워크 통신을 7단계로 나누어 설명하는 모델입니다. 이 모델은 서로 다른 시스템이나 네트워크 장치들이 데이터를 주고받을 때 발생하는 복잡한 과정을 단계별로 나누어 이해하기 쉽게 만들었습니다. 각 계층은 고유한 역할을 하며, 상호 독립적으로 작동합니다.
OSI 7 계층의 구성
- 물리 계층(Physical Layer): 전기 신호, 빛, 무선 신호 등 물리적 매체를 통해 데이터가 전송되는 방식과 관련된 계층입니다.
- 데이터 링크 계층(Data Link Layer): 물리적 매체에서 데이터를 어떻게 오류 없이 전달할지를 결정합니다. 이 계층에서는 MAC 주소를 사용하여 데이터를 전송합니다.
- 네트워크 계층(Network Layer): 데이터를 목적지까지 전달하는 경로를 찾고, IP 주소와 같은 논리적 주소를 이용해 데이터를 관리합니다.
- 전송 계층(Transport Layer): 데이터 전송의 신뢰성을 보장하고, 패킷의 오류 수정, 흐름 제어 등의 기능을 제공합니다. TCP와 UDP가 전송 계층에서 사용하는 대표적인 프로토콜입니다.
- 세션 계층(Session Layer): 통신 세션을 설정하고 관리하며, 데이터 전송을 동기화하는 역할을 합니다.
- 표현 계층(Presentation Layer): 데이터를 사용자나 애플리케이션이 이해할 수 있는 형태로 변환합니다. 데이터 압축, 인코딩, 암호화 등의 역할을 담당합니다.
- 응용 계층(Application Layer): 네트워크 서비스와 애플리케이션 간의 상호작용을 지원하는 계층입니다. 이메일, 웹 브라우징 등 사용자가 직접 접하는 서비스가 이 계층에서 동작합니다.
OSI 모델 - 전송 계층 (Transport Layer) 상세 설명
1. 전송 계층이란?
전송 계층(Transport Layer)은 OSI 7 계층 모델의 네 번째 계층으로, 데이터 전송의 신뢰성을 보장하는 중요한 역할을 수행합니다. 이 계층은 송신자와 수신자 간의 데이터 전송을 제어하며, 오류 검출, 흐름 제어, 혼잡 제어 등의 기능을 제공합니다. 전송 계층에서 데이터는 세그먼트(Segment)라는 단위로 처리되며, 상위 계층의 데이터를 네트워크 계층에 전달하기 전에 여러 세그먼트로 분할합니다.
전송 계층의 주요 기능
-
세그먼트 분할 및 재조립:
- 상위 계층에서 받은 데이터를 여러 세그먼트로 분할한 후 네트워크 계층으로 전달합니다. 수신 측에서는 전송된 세그먼트를 다시 재조립하여 원본 데이터로 복원합니다.
-
신뢰성 있는 전송:
- TCP를 통해 데이터를 신뢰성 있게 전송합니다. 전송 중 오류가 발생하면 패킷을 재전송하고, 수신 측에서는 수신 확인(ACK)을 통해 데이터를 확인합니다.
-
흐름 제어(Flow Control):
- 수신 측이 처리할 수 있는 양에 맞춰 데이터를 전송하는 기능입니다. 송신 측에서 데이터를 너무 빨리 보내면 수신 측이 처리하지 못해 데이터 손실이 발생할 수 있으므로, 수신 측의 상태에 맞춰 전송 속도를 조절합니다.
-
혼잡 제어(Congestion Control):
- 네트워크의 혼잡 상태를 감지하고, 혼잡이 발생할 경우 데이터를 천천히 전송하여 네트워크 과부하를 방지합니다.
-
오류 검출 및 수정:
- 전송 중에 발생할 수 있는 오류를 탐지하고 이를 수정하는 메커니즘을 포함합니다. TCP는 오류를 감지하고, 손상된 데이터가 있을 경우 재전송을 요청합니다.
2. 전송 계층의 프로토콜
1. TCP (Transmission Control Protocol):
- 연결형 프로토콜로, 송신자와 수신자 간에 세션을 설정한 후 데이터를 전송합니다.
- TCP는 신뢰성을 보장하기 위해 3-way handshake 방식으로 연결을 설정하며, 오류 제어, 흐름 제어, 혼잡 제어 기능을 지원합니다.
- 주요 특징:
- 신뢰성 있는 전송: 데이터가 손실되거나 오류가 발생했을 때 재전송.
- 패킷 순서 보장: 패킷이 전송 순서대로 도착하도록 보장.
2. UDP (User Datagram Protocol):
- 비연결형 프로토콜로, 데이터를 빠르게 전송할 때 사용합니다. UDP는 TCP와 달리 연결 설정이 없으며, 신뢰성이나 오류 제어 기능을 제공하지 않지만, 속도가 더 빠릅니다.
- 주요 특징:
- 신뢰성 없음: 패킷이 손실될 경우 재전송하지 않음.
- 오버헤드가 적고, 실시간 애플리케이션(스트리밍, 온라인 게임)에서 주로 사용.
3. 전송 계층의 주요 이슈 및 해결 방법
1. 데이터 손실:
- 문제: 데이터 전송 중 네트워크 혼잡이나 오류로 인해 일부 세그먼트가 손실될 수 있습니다.
- 해결 방법: TCP는 손실된 데이터를 자동으로 감지하고 재전송하며, 수신 측에서 확인 응답(ACK)을 통해 데이터가 올바르게 전송되었는지 확인합니다.
2. 데이터 순서 왜곡:
- 문제: 네트워크 경로의 차이로 인해 세그먼트가 도착 순서가 뒤바뀌는 경우가 발생할 수 있습니다.
- 해결 방법: TCP는 패킷에 일련번호를 부여하여 패킷이 도착하는 순서를 보장합니다. 만약 순서가 어긋나면 수신 측에서 재정렬합니다.
3. 혼잡 상태:
- 문제: 네트워크가 과부하 상태에 있을 때, 많은 양의 데이터가 동시에 전송되어 혼잡이 발생할 수 있습니다.
- 해결 방법: TCP는 혼잡 제어 알고리즘을 통해 네트워크의 상태를 감지하고, 혼잡이 발생할 경우 전송 속도를 줄여 네트워크가 안정화되도록 합니다.
4. 전송 계층의 응용
TCP 사용 사례:
- 웹 브라우징(HTTP/HTTPS): 웹 서버와 클라이언트 간 데이터를 신뢰성 있게 전송하기 위해 TCP가 사용됩니다.
- 파일 전송(FTP): 파일 전송 프로토콜도 신뢰성을 요구하는 경우 TCP를 사용합니다.
UDP 사용 사례:
- 실시간 스트리밍: 음성, 영상 스트리밍처럼 빠른 데이터 전송이 필요한 경우 UDP가 사용됩니다.
- 온라인 게임: 빠른 반응이 중요한 온라인 게임에서 UDP는 TCP보다 적합합니다.
전송 계층은 네트워크에서 데이터를 신뢰성 있게 전송하고, 오류를 수정하며, 흐름을 제어하는 중요한 역할을 담당합니다. TCP와 UDP는 각각 신뢰성과 속도에 중점을 두며, 다양한 네트워크 애플리케이션에서 널리 사용됩니다.