[CS Study] Network - TCP/IP, UDP, PORT

Frye 'de Bacon·2023년 11월 2일
0

Computer Science(CS)

목록 보기
4/40

1. 패킷 통신

회선 교환(Circuit Switching) 방식

예전에는 컴퓨터 간의 데이터 통신에 회선 교환(Circuit Switching)이라는 방식을 사용했다. 이는 통신하고자 하는 두 호스트가 데이터 전송 전에 미리 데이터가 이동할 경로를 하나 설정해 두는 것이다.
그런데 이는 회선의 트래픽이나 이동 효율은 전혀 고려되지 않은 채로 정해지는 경로이며, 따라서 데이터 전송 시 효율적이지 못한 경우가 발생한다(트래픽, 혼잡도 등은 시간에 따라 변화하므로). 또한 이렇게 설정한 회선은 할당이 해제될 때까지다른 호스트들이 사용하지 못하며, 일시적으로 연결이 해제되었을 때 해당 경로를 다른 호스트가 차지하면 해당 경로가 릴리즈될 때까지 대기해야 하는 등 비효율이 발생한다.

패킷 교환(Packet Switching) 방식

패킷 교환 방식은 이러한 회선 교환 방식의 단점 및 비효율성을 개선하고자 등장한 방식이다. 이는 미리 이동 경로를 설정하는 것이 아니라, 데이터를 패킷이라는 작은 단위로 나누어 네트워크를 통해 전송하는 방식이다. 데이터는 전송 전 패킷으로 나누어지고, 각 패킷에는 고유 번호가 있어 최종 수신지에 도착했을 때 번호 순으로 결합됨으로써 원래의 데이터로 복원되는 것이다. 이때 전송 시점에 가장 효율적인 경로를 설정하므로 효율적인 전송이 가능하다.
※ 그리고 패킷을 수신한 중간 노드가 최종 목적지까지의 경로 중 가장 최적의 경로를 판단하여 패킷을 이동시키는 작업을 '라우팅'이라고 하며, 이를 수행하는 중간 노드가 바로 '라우터'이다.
각 패킷은 보내질 때마다 최적의 경로를 선택하므로 최종 목적지에 도착하는 순서는 송신 순서와 다를 수 있다. 따라서 수신 호스트는 송신 호스트가 전송한 패킷이 모두 도착했음을 인지했을 때 해당 네트워크의 프로토콜에 의거하여 패킷 헤더를 읽고, 이를 기반으로 패킷의 순서를 정리해 원래의 데이터 형태로 만들어낸다.
이러한 패킷 교환 방식은 그 효율성이 입증되어 현대에는 거의 모든 통신이 패킷 전송 방식을 사용하고 있다. 즉, '데이터 → 패킷 분할 → 라우터' 형태로 데이터를 전송하는 것이 현대 네트워크에서의 기본 원리이다.



2. TCP/IP

개요

TCP/IP는 TCP(Transmission Control Protocol)와 IP(Internet Protocol)를 아울러 지칭하는 용어이다. IP는 패킷 통신 방식의 인터넷 프로토콜을 말하는 것으로, 패킷의 전달 여부를 보증하지 않고 패킷의 전송 순서가 다를 수 있다.
그리고 TCP는 '전송 제어 프로토콜'이며, IP 위에서 동작하는 프로토콜로서 데이터의 전달을 보증하고 데이터가 전송된 순서대로 송신될 수 있도록 해 준다.
즉, TCP/IP 프로토콜을 따른다는 것은 IP 주소 체계를 따르고 IP Routing을 이용해 최종 목적지까지 데이터를 (패킷 형태로) 보내며, TCP의 특성을 활용해 송신자와 수신자 사이의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 의미이다.

TCP의 특징

  • 연결 지향 방식으로서 패킷 전송을 위한 논리적 경로를 배정한다.
  • 3-way handshaking 과정(수신지와 목적지를 확실히 하여 세션을 수립)을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제한다.
  • 흐름 제어 및 혼잡 제어의 기능을 한다.

이러한 특징으로 인해 TCP는 (UDP에 비해) 속도가 다소 느리지만, 신뢰성이 있는 전송이 중요할 때 사용할 수 있다. 예를 들어 파일 전송 시에는 TCP를 이용하는 것이 적절하다.



3. UDP(User Datagram Protocol)

개요

UDP는 '사용자 데이터그램 프로토콜'로, 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 여기서 데이터그램은 '독립적인 관계를 지니는 패킷'을 말한다.
UDP는 TCP와 달리 비연결형 프로토콜로서, 연결을 위해 할당되는 논리적인 경로가 없으며, 따라서 각각의 패킷이 다른 경로로 전송되는 것이다.

UDP의 특징

  • 비연결형 서비스로서 데이터그램 방식을 제공한다.
  • 정보의 송수신 시 정보를 보내거나 받는다는 신호 절차를 거치지 않는다.
  • UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출하므로 신뢰성이 낮다.
  • TCP 대비 속도가 빠르다.

따라서 UDP는 신뢰성보다는 연속성이 중요한 서비스, 예를 들면 실시간 스트리밍 서비스 등에서 자주 사용된다.



4. PORT

개요

IP에서 포트는 '운영 체제 통신의 종단점'을 말한다. 즉, 서버에 접속하기 위한 통로와 같은 개념으로 이해하면 된다. 일반적으로 네트워크상에서 통신을 할 때는 IP 주소를 바탕으로 해당 서버에 접근하게 되는데, 일반적으로 서버에는 여러 개의 어플리케이션이 실행된다. 이때 포트를 이용해 '어떤 프로그램에 접속할 것인지'를 서버에 알려주는 것이다.
예를 들어 웹 브라우저로 서버에 접속할 때는 서버의 80번 포트를 가진 프로그램에, 메일 확인을 위해 메일 서버에 접속할 때는 서버의 110번 포트를 가진 프로그램에 접근하는 식이다. IP 주소가 집 주소라면, PORT는 집 안에 있는 방들의 번호라고 생각해도 좋을 것이다.

포트의 구분

포트 번호는 0~65535까지 사용할 수 있으며, 크게 세 가지로 구분된다.

구분번호 범위내용
Well-known port0~1023국제 도메인 관리 기구에서 통제하는 번호
Registered port1024~49151국제 도메인 관리기구에 등록되어 특정 프로토콜이나 어플리케이션에서 사용되는 번호
Dynamic port49152~65535임시 포트로서, 프로세스에 임의로 할당이 가능한 번호

특히 Well-known port 중 다음의 포트 번호는 자주 사용되는 포트 번호이다.

번호프로토콜통신프로토콜 설명
80HTTPTCP웹 서버 접속
443HTTPSTCP웹 서버 접속(SSL)
110POP3TCP메일 읽기
25SMTPTCP메일 서버간 메일 전송
22SSHTCP컴퓨터 원격 로그인
53DNSUDPDNS 질의
123NTPTCP시간 동기화
20FTPTCP데이터 전송
21FTPTCPFTP 제어


참고 자료

profile
AI, NLP, Data analysis로 나아가고자 하는 개발자 지망생

0개의 댓글