소켓과 포트 차이가 넘나 햇갈려 ..
Port 는 물리적 연결이 아님.
프로그램이나 서비스에서 정보를 교환하기 위해 사용되는 논리적 연결
포트는 컴퓨터 또는 서버에서 사용될 프로그램이나 서비스를 특정 지어줌.
- Ex. Web page, FTP, Email, Etc..
포트는 프로그램이나 서비스를 식별 할 수 있는 고유한 숫자를 가짐.
- 0 - 65535 사이
Port는 항상 IP 주소와 연관되어 있음
- 네트워크에 연결된 모든 종류의 장치를 노드(Node)라고 하는데, 노드 중에서도 네트워크 주소인 IP 주소가 할당된 것들을 호스트
라고 함.
호스트
의 IP 주소와 포트번호
가 합쳐져서 네트워크를 통해 데이터 교환을 할 수 있음.대부분의 사람들이 매일 사용하는 포트는 80
번으로 HTTP(Hypertext Transfer Protocol), 즉 웹페이지의 포트 번호임.
만약 우리가 구글 사이트에서 검색을 하고자 http://wwww.google.com
을 웹 브라우저에 타이핑하면 우리의 호스트는 DNS를 통해 구글 IP 주소(215.114.85.17) 에 http
의 포트번호인 80
을 추가하여 215.114.85.17:80
으로 구글 웹서버에 도착하게 된다. 이렇게 위의 주소가 구글 웹서버에 도착하면 IP 주소는 더 이상 사용되지 않고, 포트 번호만 남아서 구글 웹서버가 80번 포트번호를 확인하고 해당 요청을 웹서비스로 전달한다. 그렇게 웹서비스로 구글 서버에 전달이 되면 우리는 구글 웹페이지를 볼 수 있게 된다.
- 이 모든 작업을 사용자는 보지 못하며, 알고 싶다면 Netstat
을 통해 Network statistics, 즉 현재 네트워크 연결과 포트 활동을 우리 컴퓨터로 알 수 있다.
0-65535
중 IANA(Internet Assigned Numbers Authority)
에 따라서 할당된다.0-1023
는 시스템 포트 혹은 잘 알려진 포트번호라고 불림.1024 - 49151
은 유저 혹은 등록된 포트로 불림.49152 - 65535
는 동적(dynamic) 혹은 프라이빗 포트로 불림