🤷 TCP/IP 4계층, OSI 7계층.. 등 뭐 이리 계층이 많은지 ... 하지만 OSI 각계층을 잘 살펴보다보면 TCP/IP 4계층이 분리해서 나오게 된 필요성에 대해 어렴풋이 짐작하게 되고, 더 살펴보고자 하게 될 것이다.
네트워크 통신을 이해하는 데 있어 OSI 7계층과 TCP/IP 4계층 모델은 핵심적인 역할을 한다. 이렇게 여러 계층 모델이 있는 이유는, 네트워크 통신을 더욱 체계적으로 관리하고 각 계층의 역할을 명확히 구분하기 위함이다.
OSI 7계층은 이론적인 표준 모델로 네트워크 통신을 7단계로 나누어 각 단계에서 수행하는 역할을 정의하여 이를 통해 네트워크 통신의 각 부분을 세분화하여 이해할 수 있게 도와준다.
반면 TCP/IP 4계층 모델은 인터넷과 TCP/IP 기반의 네트워크에서 통신이 어떻게 이루어지는지에 대해 이해할 수 있는 실용적인 모델로 실제 인터넷 통신을 지원하는 구체적인 프로토콜 집합이다.
👀 TCP/IP 4계층에 대해 알아보기 전 먼저 TCP 프로토콜과 IP 프로토콜에 대해 알아보고 가자.
IP 프로토콜은 데이터를 패킷 단위로 전송하고 출발지와 목적지 간의 경로를 지정하는 역할을 한다. 즉 데이터를 어디로 보낼지(주소 지정)과 어떻게 경로를 찾아서 보낼지(라우팅)을 결정한다.
라우터
가 네트워크 계층에서 작동하며 패킷의 목적지 IP주소를 확인하여 최적의 경로로 전달하는 역할을 합니다.TCP는 데이터를 세그먼트 단위로 나누고 신뢰성 있는 연결 지향형 통신 을 제공한다. 즉 데이터가 정확하게 순서대로 도착하도록 보장하고, 패킷 손실이나 오류가 발생하면 다시 전송하도록 처리한다.
서버
와 클라이언트
간의 통신에서 사용된다. 예를 들어, 웹 서버와 웹 브라우저 간에 데이터를 주고받을 때 TCP가 사용되어 데이터가 정확히 순서대로 도달하고 손실된 패킷이 있으면 재전송되도록 보장한다. TCP는 또한 파일 전송(FTP), 이메일 송수신(SMTP), 원격 로그인(SSH) 등과 같은 다양한 애플리케이션에서도 동작하여 애플리케이션 간의 신뢰성 있는 데이터 전송을 제공함.IP는 패킷을 네트워크를 통해 전송할 때 주소 지정만 담당하고 전송의 안정성은 보장하지 않는다. 예를 들어, 패킷이 목적지에 도달하지 않거나 순서가 뒤바뀔 수 있는 것이다.
그렇기에 TCP는 IP 위에서 동작하여 패킷이 정확히 도달하도록 보장하고 순서를 맞추고 재전송 등을 관리한다.
∴ 따라서 TCP/IP는 IP와 TCP가 결합된 형태로 인터넷에서 안정적이고 신뢰성 있는 데이터 전송을 보장하는 프로토콜로 사용된다.
계층 | 설명 | 프로토콜 예시 |
---|---|---|
애플리케이션 계층 | 최종 사용자와 상호작용하는 계층으로 응용 프로그램들이 통신할 수 있게 해준다. 이 계층은 데이터 처리와 관련된 프로토콜을 포함한다. | HTTP, FTP, SMTP, WebSocket, DNS |
전송 계층 | 데이터의 전송을 관리하며 안정적인 연결을 위한 프로토콜을 제공한다. 이 계층은 세그먼트로 데이터를 분할하고 데이터의 정확한 전달을 보장한다. | TCP, UDP |
인터넷 계층 | 패킷을 목적지까지 전달하는 경로를 설정하고 이를 라우팅하는 역할을 한다. IP 주소를 사용해 데이터를 라우팅한다. | IP, ICMP, ARP |
네트워크 인터페이스 계층 | 데이터가 물리적으로 전달되는 네트워크 인터페이스를 담당하며, 하드웨어와 관련된 통신을 처리한다. 이는 실제 물리적 네트워크와 연결된다. | Ethernet, Wi-Fi, PPP, DSL |
👀 아 오케이. 여기까지 TCP/IP 4계층을 통해 인터넷 통신 방법을 이해하게 되었어.. 근데 UDP는 뭐야? TCP/UDP 차이에 대해서 언급이 많이 되잖아. 근데 위의 글에서는 UDP 는 언급되지 않네? UDP는 뭐야..?
사실 TCP/IP 4계층을 설명하면서 TCP와 UDP의 차이를 끼워넣는게 헷갈릴 수도 어쩌면 더욱 이해가 될 수도 있다. TCP/IP 4계층은 이미 TCP와 UDP를 포함하는 의미로 사용되고 있다는 점을 유의하자.
→ IP
는 데이터를 주소 지정하고 경로를 설정하는 역할만 하며 실제 데이터를 어떻게 전송할지(신뢰성, 순서 등)는 TCP
나 UDP
와 같은 전송 계층 프로토콜
이 처리한다. 두 프로토콜(TCP, UDP)은 IP 위에서 선택적으로 사용할 수 있다.
너무 적절한 짤이 있어서 ㅋㅋㅋㅋ 가져와봤다.
연결 지향적: 데이터 전송을 시작하기 전에 연결을 설정해야 하며 전송 후 연결을 종료해야 한다.
신뢰성: 데이터가 손실되거나 순서가 바뀌면 재전송하고 순서를 맞춰 데이터를 전달한다.
흐름 제어 및 혼잡 제어: 네트워크 상태를 감지하여 송수신 속도를 제어한다.
응용 분야: 웹 브라우징(HTTP), 이메일(SMTP), 파일 전송(FTP) 등 신뢰성이 중요한 서비스에서 사용됨
비연결 지향적: 연결을 설정하지 않고 데이터를 전송한다.
비신뢰성: 데이터 손실이나 순서 변경이 발생할 수 있으며 이를 자동으로 처리하지 않는다.
속도: 연결 설정 없이 데이터가 빠르게 전송되므로 실시간성 요구가 있는 서비스에 적합하다.
응용 분야: 스트리밍, 온라인 게임, VoIP 등 빠른 전송이 필요한 서비스에서 사용된다.
특성 | TCP | UDP |
---|---|---|
연결 방식 | 연결 지향적 (Connection-oriented) | 비연결 지향적 (Connectionless) |
신뢰성 | 데이터 전송 보장 (재전송, 오류 검출 및 복구) | 데이터 전송 보장하지 않음 (손실 가능성 있음) |
속도 | 상대적으로 느림 (연결 설정 및 흐름 제어 필요) | 상대적으로 빠름 (연결 설정 필요 없음) |
흐름 제어 및 혼잡 제어 | 있음 (네트워크 상태에 따라 송수신 속도 조절) | 없음 |
응용 분야 | 신뢰성이 중요한 서비스 (HTTP, FTP, SMTP, Websocket 등) | 실시간 데이터 전송 (스트리밍, VoIP, 온라인 게임, WebRTC 등) |
[Reference]
위키백과
쉽게 배우는 데이터 통신과 네트워크 3판
https://hwan1402.tistory.com/91
https://jineer.tistory.com/334
[사진출처]
위키피디아
https://carnival.tistory.com/58