TCP/IP란 무엇인가?

 인프라를 운영 및 구축 혹은 어떠한 이슈를 해결함에 있어서 TCP/IP를 아느냐 모르냐는 차이가 매우 크다고 말할 수 있다.

OSI 7 Layer와 더불어 TCP/IP는 개발자, 엔지니어를 가리지 않고 나오는 단골소재이다.

1. TCP/IP란?

 인터넷 프로토콜 스위트(Internet Protocol Suite는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음이다.

 

이 프로토콜 스택은 다양한 계층의 프로토콜로 구성되어 있으며, 그 중에서도 IP와 TCP가 가장 많이 쓰이고 핵심적이다.

 

IP는 데이터를 목적지까지 전달하는 주소 지정 및 라우팅 기능을 담당하고

TCP는 그 위에서 데이터의 신뢰성과 순서 보장을 책임진다.

 

비록 TCP와 IP는 서로 독립적인 프로토콜이지만, IP의 한계점을 TCP가 보완하는 구조로 함께 사용되기 때문에

통상적으로 TCP/IP라는 통합된 이름으로 부른다.

 

 

2. IP 프로토콜의 한계

IP는 데이터를 보낼 때, 수신 측의 상태를 확인하지 않기 때문에 다음과 같은 중요한 한계점들이 존재한다.

 

💠1. 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송되고, 이에 대해서 알 수 없는 문제가 발생함

 

 

 

💠비신뢰성 : IP는 데이터(패킷)의 정확한 도착 여부나 순서를 보장하지 않음

                     → 패킷이 중간에 사라지거나, 패킷이 순서대로 오지 않을 수 있는 문제점이 발생함

 

 

 

네트워크 경로가 유동적으로 변하기 때문에 패킷들이 순서대로 도착하지 않을 수 있음

 

 

 

💠그 외에도 프로그램 구분의 문제

 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 2개 이상이라면?

 

 IP는 호스트(컴퓨터)의 주소만 식별할 수 있을 뿐, 같은 컴퓨터에서 실행되는 여러 개의 애플리케이션을 구분할 수 없음.
예를 들어, 동일한 서버에서 웹 서버와 메일 서버가 동시에 동작 중일 경우, IP만으로는 어떤 애플리케이션과 통신해야 하는지 알 수 없다.

 

 

3. 인터넷 프로토콜 스택의 4계층

1. 네트워크 인터페이스 계층(Network Interface Layer) - 물리적 전송 담당- IP 패킷을 실제 네트워크로 보내거나 수신함- MAC 주소 기반 통신 - 랜카드 (NIC)- 랜 드라이버- Ethernet, Wi-Fi, 이더넷 프레임, MAC 주소
2. 인터넷 계층 (IP) - 패킷 전달 및 라우팅- IP 주소 기반으로 목적지까지 전달 - IP(Internet Protocol)- ICMP, ARP- IP 주소 (예: 192.168.0.1)
3. 전송 계층(TCP, UDP) - 송신자와 수신자 간의 데이터 전송 신뢰성 보장- 포트 번호 사용 - TCP (신뢰성 보장)- UDP (속도 우선)- 포트 번호 (예: 80, 443)
4. 애플리케이션 계층
(Application Layer)
- 사용자와 직접 상호작용하는 데이터 처리- 애플리케이션 프로토콜 사용 - HTTP, HTTPS- FTP, SMTP, DNS, SSH

 

 

 

 

4. IP 프로토콜 vs TCP 프로토콜? 무슨차이인가?

 TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말이며 TCP/IP를 사용하겠다는 말의 의미는 IP주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하여 TCP의 특성을 활용해 송신자와 수신자가 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 의미이다.

 

여기서 말하는 IP(Internet Protocol)은 데이터 패킷을 한컴퓨터에서 다른 컴퓨터 전송하는 방법을 정의한 것이다.

IP 프로토콜은 아래와 같은 작동방식을 수행한다.

 

1. 데이터 패킷 생성

  : 인터넷을 통해 데이터를 전송할 때 패킷이라는 단위로 전송되는데 이 때 각 패킷에는 Header(헤더)가 존재한다.

헤더에는 패킷의 출발지 IP, 도착지 IP, 패킷의 크기, 패킷의 순서와 같은 정보들이 존재한다.

 

이러핸 패킷은 전송되는 동안에 여러개의 중간 노드(라우터, 스위치 등)을 거칠 수 있으며 이러한 노드들은 패킷을 

전달하고 경로를 결정하는데 도움을 준다.

 

2. 패킷전송

  : 패킷이 생성되면 이를 인터넷에 전송하는데 이 전송과정은 바로 라우터를 통해 이루어진다.

각 라우터는 IP 헤더를 확인하고, 패킷을 목적지로 가장 효율적으로 이동시킬 수 있는다음 라우터로 전송한다.

 

3. 패킷 재조립 

  : 패킷이 목적지에 도착하면, 패킷의 순서를 기반으로 원래의 데이터를 재조립한다. 이 과정에서 TCP 프로토콜에 의해 수행되며 그래서 TCP/IP를 같이 묶어서 말한다.

 

4. 오류처리

  : 패킷이 전송과정에서 손실되거나, 오류가 발생한 경우, IP는 이를 직접처리하지 않고 TCP와 같은 더 높은 계층의 프로토콜에 의해 처리한다.

 

 

 

5. TCP(Transmission Control Protocol) 특징

1. 연결지향 - TCP 3 way handshake

클라이언트와 서버 모두 syn을 보내고 양쪽 모두 ack(니 syn 잘 받았어)가 되면 서로의 연결 상태를 믿을 수 있는 구조를 만들어 놓고 데이터를 전송한다.

 

 

2. 데이터 전달 보증

3. 순서 보장

 

4. 신뢰할 수 있는 프로토콜

위와 같이 TCP안에는 전송 제어, 순서, 검증정보 등이 있기 때문에 1~3의 내용이 보장되고 그렇기에 신뢰할 수 있는 프로토콜이라고 할 수 있다.