[Network] 인터넷 네트워크

2022-12-11

클라이언트 컴퓨터와 서버 컴퓨터는 어떻게 통신을 하는 걸까?
클라이언트와 서버는 수많은 노드의 집합인 인터넷 망에 의해 연결이 된다. 클라이언트와 서버는 IP주소를 부여받고, 수많은 노드를 지나 이 IP를 찾아 패킷이라는 통신 단위로 데이터를 주고 받는다. 하지만 IP만으로도 통신을 할 경우 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송하고 패킷이 순서대로 가지 않아 패킷 전달 순서 문제 등이 발생할 수 있다. 이를 보완해주는 것이 TCP이다.

TCP는 IP와 달리 출발지와 목적지 PORT 정보를 가지고 있다. 따라서 TCP와 IP를 전송하면 데이터 전달 보증 및 순서 보장이 가능해진다. 이런 장점으로 현재는 대부분 TCP를 사용하고 있으며 신뢰할 수 있는 프로토콜이라고도 부른다.

반면UDP는 TCP와는 다르게 기능이 거의 없어 데이터 전달 및 순서가 보장되지 않고 IP와 거의 비슷하다. 다른 점은 PORT 정보를 포함하고 있다는 것이다. 이렇게 하얀 도화지같은 UDP를 활용하여 최근에는 최적화를 하려는 움직임이 많다.

그렇다면, PORT의 역할은 무엇일까? 단순하게 비유를 들자면 IP가 아파트라고 한다면 PORT는 동, 호수 같은 주소라고 생각하면 쉽다. 클라이언트가 여러가지 앱을 실행하고 있을때 서버에서 오는 응답값이 어떤 앱의 응답값인지 구분하기가 어렵다. 하지만 PORT는 같은 IP내에서 실행하는 여러 프로세스를 구분해줌으로써 이를 해결해준다.

주의할 점은 개발시 0~1023번 PORT는 잘 알려진 PORT이므로, 사용을 지양해야 한다.

예시 : HTTP - 80, HTTPS - 443