만약 컴퓨터에 두 개의 네트워크 어댑터가 장착되어 있다면, 두 개의 IP 주소를 할당받을 수 있다.
자동으로 IP주소 받기가 설정되어 있다면 Switch또는 Hub가 할당해 주는 IP주소를 사용하는 것이고, 사용자가 직접 설정할 수도 있다.
IP는 3자리의 부호 없는 0~255 사이의 정수가 4자리로 구성되어 있다. (xxx.xxx.xxx.xxx)
IP 주소는 아래의 두 가지로 나뉜다.
내부 IP : 같은 LAN에서 컴퓨터를 식별하기 위한 고유 번호
외부 IP : WAN에서 컴퓨터를 식별하기 위한 고유 번호
내부 IP로 네트워킹을 하려면 같은 LAN에 있어야 하고, 한정된 공간이 아닌 광범위한 인터넷이 가능한 지역에서 네트워킹을 하려면 외부 IP로 통신을 해야 한다.
네트워크 어댑터에서 내부 IP 주소를 확인하려면 윈도우에서 ipconfig 명령어를, 맥OS 에서는 ifconfig 명령어를 실행하면 된다.
외부 IP 주소를 확인하려면 윈도우 기준 CMD 창에서 아래의 명령어를 입력하면 된다.
외부 IP 확인하는 명령어 nslookup myip.opendns.com resolver1.opendns.com
MAC Address 명령프롬프트에서 ipconfig /all 을 입력하면 아래와 같이 물리적 주소를 확인할 수 있는데, 이것이 MAC Address이다. 맥 어드레스는 네트워크 어댑터마다 모두 고유한 값을 가지고 있다. 따라서 스위치는 해당 주소를 통해 컴퓨터를 구별하고, IP주소를 부여해 준다.
연결한 상대방 컴퓨터의 IP 주소를 모르면 프로그램들은 서로 통신할 수 없다.
우리가 모르면 114로 문의하듯이 프로그램은 DNS를 이용해서 컴퓨터의 IP 주소를 검색한다.
DNS를 통해 IP 주소를 알았다고 하더라도 포트 번호를 모르면 정상적으로 네트워킹을 할 수 없다.
한 대의 컴퓨터에는 다양한 서버 프로그램들이 실행될 수 있다.
예를 들어 웹 서버, DBMS, FTP 서버 등이 하나의 IP 주소를 갖는 컴퓨터에서 동시에 실행될 수 있다.
이 경우 클라이언트는 어떤 서버와 통신해야 할지 결정해야 한다.
IP는 컴퓨터의 네트워크 어댑터까지만 갈 수 있는 정보이기 때문에, 컴퓨터 내부에서 실행하는 서버를 선택하기 위해서는 추가적인 Port 번호가 필요하다.
Port 번호 Port는 운영체제가 관리하는 서버 프로그램의 연결번호이다. 서버는 시작할 때 특정 Port 번호에 바인딩한다. 예를 들어 웹서버는 80번으로, DBMS는 1521(오라클 DBMS)번으로 바인딩할 수 있다. 따라서 클라이언트가 웹 서버와 통신하려면 80번으로, DBMS와 통신하려면 1521번으로 요청을 해야 한다. 출처 : 이것이 자바다 유튜브 동영상 강의
클라이언트가 서버의 IP 번호와 Port 번호까지 알아서 서버에 특정 작업을 요청을 했다면, 이제는 반대로 서버가 클라이언트의 IP 주소와 Port번호를 알아야 한다.
클라이언트의 Port 번호는 서버와 같이 고정적인 Port 번호에 바인딩하는 것이 아니라 운영체제가 자동으로 부여하는 번호를 사용하기 때문에 애초에 클라이언트가 서버에 요청을 할 때, 클라이언트의 IP 주소와 Port 번호를 같이 전송된다.
프로그램에서 사용할 수 있는 전체 Port 번호의 범위는 0~65535로, 아래와 같이 사용 목적에 따라 세 가지 범위를 가진다.
출처 : 이것이 자바다 유튜브 동영상 강의
Well Know Port Numbers : 특정 프로그램이 아니라 전 세계 사람들이 공통적으로 사용하는 포트 번호(고유함)
Registered Port Numbers : 특정 회사가 비용을 지불하여 고정적인 포트 번호를 사용(고유함)
Dynamic Or Private Port Numbers : 이 포트 번호는 동적 포트 번호이므로 수시로 바뀔 수 있고, 고유하지 못하다. 따라서 다른 서버와 포트가 겹칠 수 있고, 겹친다면 네트워킹을 할 수 없다.