- Published on
인터넷 네트워크, TCP/IP란?
인터넷 네트워크 🌏
인터넷에서 컴퓨터는 어떻게 통신할까? 클라이언트와 서버가 붙어있으면 케이블로 연결해서 통신할 수 있지만 먼 경우에는 인터넷
이라는 것이 중간에 있다! 인터넷망을 통해서 메세지를 보내야 하는 것인데, 수많은 중간 노드들을 거쳐서 메세지를 넘기는 것이다. 어떤 규칙으로 어떻게 넘기는 것인지를 이해하기 위해서는 인터넷 프로토콜을 이해해야 한다.
인터넷 프로토콜 (IP)
인터넷 프로토콜의 역할은 지정한 IP 주소
에 패킷(Packet)이라는 통신 단위로 데이터를 전달하는 것이다. 아래 사진과 같이 출발지 IP주소와 목적지 IP, 그리고 던질 데이터를 전달해 주면 서로 노드끼리 패킷을 통해 전달하면서 목적지의 IP까지 전달하게 된다.
Packet이란,
Pack과 Bucket의 합성어로 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다.
IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 (패킷을 받을 대상이 없어도 패킷이 그냥 전송되는 경우를 말한다)
- 비신뢰성
- 중간에 패킷이 사라지면? (데이터가 중간에 사라지거나)
- 패킷이 순서대로 안 오면? (여러 개를 던졌는데 순차적으로 도착하지 않는 경우를 말한다)
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?
- ex. 게임, 노래, 유튜브 등 한 컴퓨터에서 여러 프로세스를 진행하는 경우를 말한다
- ip 프로토콜은 대상 서버가 패킷을 받을 수 있는 상태인지 아닌지 구분하지 못한다
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?
TCP
위의 그림은 인터넷 프로토콜 스택의 4계층이다. TCP와 UDP는 IP 계층 바로 위에 있는 프로토콜로, IP 프로토콜에서 발생됐던 문제를 해결하기 위해 사용된다.
TCP(Transfer control protocol)
는 전송제어 프로토콜로, 컴퓨터가 다른 컴퓨터와 데이터 통신을 하기 위한 규약의 일종이다. 신뢰성 있는 통신을 위해 사용하는 프로토콜로 높은 신뢰성을 보장하지만 비교적 속도가 느리다는 단점이 있다. 3 way handshake와 데이터 전달 보증, 순서 보장의 특징을 가지고 있다.
3 way handshake란,
TCP 네트워크에서 통신에서 장치가 서로 연결이 잘 되었는지 확인하는 방법이다. 송신자와 수신자는 총 세번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태인지 확인한다.
UDP
UDP(User Datagram Protocol)
는 비연결형 프로토콜로 손상된 데이터에 대해서 재전송하지 않는다. 데이터의 전달이나 순서가 보장되지는 않지만, 단순하고 TCP보다 속도가 빨라서 주로 스트리밍 같은 서비스에 사용된다. IP와 거의 같지만 PORT가 추가된 형태이다.
그럼 UDP를 왜 쓸까? 🫥
TCP는 3 way handshake를 할 때나, 데이터를 검증할 때나 할 때 구축된 데이터가 이미 많기 때문에 속도를 내기가 어렵다. 최적화시키고 싶은데 시킬 수가 없다는 의미이다. 이미 인터넷은 TCP로 거의 대부분이 구축되어져 있기 때문에 UDP를 사용한다.
PORT
Port
란 하나의 IP에서 여러 애플리케이션이 돌아가고 있을 때(음악 스트리밍, 게임, 유튜브 등등) 어떤 게 음악용 패킷이고 어떤 게 게임용 패킷인지 구분할 때 사용하는 것이다. 같은 IP 내에서 프로세스를 구분하는 것이다. IP는 목적지 서버를 찾는 것
이고, PORT는 서버 안에서 돌아가는 애플리케이션을 구분
하는 것이다.
즉 같은 IP 내에서 프로세스를 구분하는 것이 PORT이다. 패킷을 보낼 때 출발지 IP, 출발지 PORT가 함께 보내지기 때문에 서버 측에서도 그 IP와 PORT로 응답을 보낼 수 있는 것이다. 예시로는 IP가 아파트고 PORT가 몇 동 몇 호인지로 비유하면 쉽다.