비트를 쪼개는 개발자

allen321@naver.com

통신

통신 - TCP/IP와 UDP

MozarTnT 2024. 7. 29. 18:53
728x90
반응형

 

 

 

 

 

네트워크 통신의 기본 개념

 

지난 글에 언급한 내용처럼 네트워크 통신은 데이터 패킷을 통해 한 장치에서 다른 장치로 정보를 전송하는 과정이다.

 

이를 위해 여러가지 프로토콜이 사용되며, 특히 TCP/IPUDP는 인터넷에서 가장 널리 사용되는 프로토콜이다.

 

 

TCP/IP

 

TCP/IP는 인터넷과 같은 네트워크에서 데이터를 전송하기 위해 사용되는 프로토콜 스택으로 하나의 프로토콜이 아니라 TCP(Transmission Control Protocol)IP(Internet Protocol)를 합쳐서 부르는 말이다.

 

 

 

 

 

그렇다면 TCP (Transmission Control Protocol) 란 ?

 

  • TCP는 전송 조절 프로토콜로 네트워크 상에서 데이터를 신뢰성 있게 전송하는 데 사용한다.
  • TCP IP 위에서 동작하며 데이터의 전달을 보장하고 송신 순서대로 데이터 수신을 보장해준다.
  • 큰 데이터를 작은 패킷으로 나누어 전송하고, 수신 측에서 이를 다시 조립하여 원래의 데이터를 복원한다.
  • 송신 데이터가 수신 데이터의 수신 능력을 초과하지 않도록 데이터 전송 속도를 조절한다.

 

 

IP (Internet Protocol) 란 ?

 

 

  • IP는 데이터 패킷을 네트워크를 통해 전송하는 데 사용하는 프로토콜이다.
  • IP는 데이터를 작은 패킷으로 나누어 네트워크 상의 다양한 경로를 통해 전송하며 각 패킷은 독립적으로 라우팅*된다.
  • 데이터 패킷에 헤더 정보를 추가하여 송신자, 수신자, 패킷 순서 등의 정보를 포함한다.
  • IP는 연결을 설정하지 않고 데이터를 전송하며 각 패킷은 독립적으로 전송되고, 전송 중에 손실될 수도 있다.
  • 패킷 전송 중 손실, 중복, 순서 변경 등이 발생할 수 있으며, 이를 해결하기 위한 추가적인 프로토콜(TCP와 같은 프로토콜)이 필요한 경우가 많다.

 

라우팅이란? :

- 라우팅(Routing)은 네트워크 상에서 데이터를 목적지까지 효율적으로 전달하기 위해 최적의 경로를 결정하는 과정.

- 라우팅은 네트워크 장비, 주로 라우터(Router)에 의해 수행됨.

 

 

 

 

그래서 TCP/IP를 사용한다는 것은 ?

 

 

  • TCP/IP를 사용한다는 것은 두 프로토콜을 함께 사용하여 네트워크 상의 다양한 장치 간의 데이터 교환을 가능하게 한다.
  • TCP는 상위 계층 프로토콜로서 데이터의 신뢰성 있는 전송을 담당한다.
  • IP는 하위 계층 프로토콜로서 데이터 패킷을 목적지까지 전달하는 역할을 담당한다.
  • 즉 목적지는 IP 주소를 사용하고 데이터의 전송 여부는 안전하게 TCP 방식을 사용하는 현대 인터넷 통신의 핵심 기술이다.

 

 

UDP란 ?

 

 

 

UDP(User Datagram Protocol) 역시 네트워크에서 데이터를 전송하기 위해 사용되는 프로토콜 중 하나로, 간단하고 빠른 데이터 전송을 위해 사용한다.

 

UDP는 비연결형 프로토콜로 데이터 전송 전에 송신자와 수신자 간의 연결 설정이 필요하지 않다.

 

즉 데이터 송신의 신뢰성은 보장할 수 없지만 빠른 데이터 전송을 필요로 하는 애플리케이션에서 중요한 역할을 하기 때문에 실시간 스트리밍과 같은 속도가 매우 중요한 애플리케이션에 적합한 통신 방식이다.

 

 

 

UDP의 특징

 

 

  • 비연결형 프로토콜: UDP는 데이터를 전송하기 전에 연결을 설정하지 않으며 송신자는 데이터를 "데이터그램" 단위로 보내며, 수신자는 이를 수신한다.
  • 신뢰성 없는 전송: UDP는 데이터 전송의 신뢰성을 보장하지 않고 오류 검출, 재전송, 순서 보장 등의 기능이 없으므로 데이터그램이 손실되거나 중복되거나 순서가 바뀔 수 있다.
  • 간단한 헤더 구조: UDP 헤더는 간단하고 작은 크기(8바이트)로, 송신 포트, 수신 포트, 길이, 체크섬 필드로 구성된다.
  • 빠른 전송 속도: UDP는 추가적인 연결 설정과 신뢰성 보장 메커니즘이 없기 때문에 TCP보다 전송 속도가 빠르다.

 

 

 

TCP/IP와 UDP의 차이점

 

  TCP/IP UDP
연결 방식 데이터 전송 전에 송신자와 수신자 간에 연결을 설정 데이터 전송 전에 연결을 설정하지 않음
데이터 신뢰성 데이터 전송의 신뢰성을 보장하며 오류 검출, 재전송, 데이터 순서 보장을 제공함 신뢰성을 보장하지 않음
전송 속도 데이터 전송을 위해 추가적인 확인 및 재전송 절차가 필요해 전송 속도가 느린편 추가적인 절차가 없으므로 전송 속도가 매우 빠름
사용 사례 이메일, 파일 전송, 웹 페이지 전송 등 신뢰성이 중요한 데이터 전송 실시간 스트리밍, 온라인 게임, VoIP 등 속도가 중요한 데이터 전송

 

 

 

 

 


 

 

 

TCP/IP의 4계층 모델

 

 

TCP/IP 에서 다루는 범위는 4개의 계층으로 나뉘어 지며 이를 TCP/IP 4 Layer Model, 즉 TCP/IP 4계층 모델이라고 한다.

 

각각의 계층은 데이터 송수신에 필요한 작업들을 각 층에서 분담하여 처리하며 각각의 역할은 위 그림과 같다.

 

 

 

 

계층 별 주요 프로토콜과 역할

 

  TCP/IP 4계층 모델 주요 프로토콜 해당 역할
4층 응용 계층 (Application Layer) HTTP, DNS 등 사용자와 애플리케이션 간의 상호작용을 지원함
3층 전송 계층 (Transport Layer) TCP, UDP 등 TCP와 UDP를 통해 데이터의 전달을 관리해 데이터 전송의 신뢰성을 보장함
2층 네트워크 계층 (Network Layer) IP, ICMP, ARP 등 IP 프로토콜을 사용하여 네트워크 간의 패킷 이동을 관리함
1층 링크 계층(Link Layer) 이더넷, 무선 랜(Wi-Fi) 등 물리적 네트워크 연결 및 데이터 프레임 전송을 담당함

 

 

 

 

 

OSI 7계층 모델 (OSI 7 Layer Model)

 

 

OSI 7계층 모델은 컴퓨터 네트워크에서 이루어지는 통신의 과정을 7단계로 정리한 것으로 통신이 이루어지는 과정을 단계적으로 나누어 각 계층이 독립적으로 동작하도록 만든 네트워크 모델이다.

 

TCP/IP와 OSI 참조 모델은 별개로 만들어졌지만 일부 계층은 비슷한 원리로 동작하기 때문에 OSI 모델 역시 알아 보아야 한다.

 

  OSI 7계층 모델 주요 프로토콜 해당 역할
7층 응용 계층 (Application Layer) HTTP, FTP, DNS, DHCP 등 응용 계층은 사용자와 직접 상호작용하는 애플리케이션을 지원함
6층 표현 계층 (Presentation Layer) 표현 계층은 데이터 형식을 변환하고 암호화 및 압축 기능을 제공함
(응용계층이 이해하는 데이터 형식으로 변환)
5층 세션 계층 (Session Layer) 세션 계층은 통신 세션을 설정, 유지, 종료하는 역할을 함
4층 전송 계층 (Transport Layer) 전송 계층은 종단 간(end-to-end) 통신을 제공하며, 데이터 전송의 신뢰성을 보장함 
3층 네트워크 계층 (Network Layer)  TCP/UDP 네트워크 간의 경로 설정 및 패킷 전달을 관리한다
2층 데이터 링크 계층 (Data Link Layer) IP, ICMP 등 데이터 링크 계층은 물리 계층을 통해 전송되는 데이터를 프레임 단위로 관리하며, 오류 검출 및 수정 기능을 제공한다
1층 물리 계층 (Physical Layer) Ethernet, ATM 등 물리 계층은 네트워크의 물리적 연결을 담당한다

 

 

 

 

 

 

 

 

 

 

 

사진 출처 :

https://www.educba.com/tcp-ip-model/

https://www.geeksforgeeks.org/tcp-ip-model/?ref=gcse_ind

https://brunch.co.kr/@swimjiy/35

 

 

728x90
반응형

'통신' 카테고리의 다른 글

통신 - REST, REST API  (0) 2024.09.10
통신 - DNS  (1) 2024.08.13
통신 - HTTP와 HTTPS  (0) 2024.08.01
통신이란 ?  (0) 2024.05.01