[네트워크] IP / Port / Socket

까막이의 몸부림·2026년 8월 2일

네트워크

목록 보기
13/15

IP / Port / Socket

셋 모두 네트워크 통신의 대상을 식별하거나 연결을 표현하는 개념이다.

IP 주소 : 어느 기기의 어느 NIC인지?
Port 번호 : 어느 네트워크 서비스인지?
Socket : 운영체제가 실제 네트워크 통신을 처리하기 위해 만든 통신 객체.

IP 주소

네트워크에서 호스트까지, 또는 NIC을 식별하기 위한 주소.
하나의 기기에 여러 개의 IP 주소를 가질 수도 있다.

패킷의 목적지 IP를 보고 라우터가 어디로 전송할지 결정한다.

Port 번호

한 호스트 안에서 어느 애플리케이션/서비스를 대상으로 하는지 구분하는 번호.

IP만 있으면 어느 컴퓨터로 접근해야 하는지는 찾을 수 있지만, 그 컴퓨터의 어느 프로그램에 데이터를 전달해야 하는지 알 수 없다.
따라서 어떤 서비스에 전달해야하는지를 Port 번호를 이용해 찾을 수 있다.

Socket

애플리케이션이 운영체제의 네트워크 기능을 사용하기 위한 통신 종단점 객체.

프로그램은 패킷을 직접 LAN카드에 쓰는 것이 아니라 일반적으로 소켓 API를 이용한다.
소켓은 운영체제 내부에서 통신 상태와 버퍼 등을 관리하는 실제 객체다.
프로세스는 이러한 소켓을 통해 네트워크로 메시지를 주고 받는다.
하나의 프로세스는 같은 Protocol, 같은 IP, 같은 Port 번호를 갖는 여러 개의 소켓을 가질 수 있다.

소켓에는 IP 주소, 전송 프로토콜, 로컬 IP/Port, 원격 IP/Port, 연결 상태, 송수신 버퍼 등의 정보가 연결된다.
출발지 IP/Port, 목적지 IP/Port, 전송 프로토콜을 5-tuple이라고 하며, 이것을 통해 서로 다른 TCP 연결임을 구분할 수 있다.

IP + Port는 소켓 주소이며, Socket은 그 주소와 프로토콜, 상태, 버퍼 등을 가진 운영체제 통신 객체다.

Socket State라는 상태 흐름도 있는데...더보기

0개의 댓글