본문 바로가기

Network

URL, DNS, PortNumber

URL

서버에 있는 자원들은(Resuorces) URL(:Uniform Resource Locator)에 의해 특정 되어 질 수 있습니다.

 

URL에는 세 가지 요소가 있습니다.

URL 예시) http://myschool.co.kr/schoolname/class/index.html

 

1. 프로토콜(Protocol)

URL에서 사용되는 프로토콜은 http와 같은 응용계층의 프로토콜입니다. 바로 이 프로토콜을 통해 어떤 절차로 자원을 전송 받을 지 결정합니다.

http://myschool.co.kr/schoolname/class/index.html

 

2. 호스트 이름(Host Name)

자원이 위치한 장소, 즉, 자원을 제공하는 호스트의 이름을 나타냅니다.

http://myschool.co.kr/schoolname/class/index.html

 

3. 파일 이름(File Name)

자원의 이름을 나타냅니다.

http://myschool.co.kr/schoolname/class/index.html

 

DNS

그리고 사실 호스트 이름인 myschool.co.kr은 사람의 이해를 돕기 위해 만든 호스트 이름입니다. 컴퓨터는 145.135.12.1 와 같은 IP주소를 통해 호스트를 인식할 수 있습니다. 본래의 IP주소값을 찾기 위해 DNS(Domain name System) 서버를 이용합니다. DNS 서버는 "myshcool.co.kr"의 IP주소값이 145.135.12.1임을 알고 있음으로, 브라우저는 DNS 서버에 이 도메인의 IP주소를 알려달라고 요청함으로 IP주소 값을 얻어냅니다. DNS 서버는 전세계에 여러 개가 있으며 하나의 DNS 서버에 원하는 값이 없으면 다른 DNS 서버를 참고합니다. 마치 전화번호를 찾기 위해 여러 개의 전화번호부를 대조하는 것과 비슷합니다.

 

Port Number

IP주소를 알아도 상대방의 PC의 어떤 응용프로그램(또는 프로세스)와 네트워크 통신을 할 것인지 알아야합니다. 특정한 응용프로그램을 식별하기 위해 포트 넘버(Port number)라는 것이 있습니다. 그리고 이 포트 넘버는 응용계층의 프로토콜에 따라 디폴트값이 정해져 있습니다.(서버측의 경우) HTTP 경우 "80"이 디폴트값이다. 따라서 더 상세히 URL을 사용한다면

http://myschool.co.kr:80/schoolname/class/index.html 또는

http://145.135.12.1:80/schoolname/class/index.html 와 같은 형태가 됩니다. 풀어 쓰자면,

 

"145.135.12.1 IP주소를 쓰시는 호스트님. http프로토콜로 호스트님의 80번 포트의 응용프로그램과 연결해서 /schoolname/class/index.html 파일을 전송 받고 싶습니다." 이렇게 말할 수 있을 것입니다.

 

포트 넘버는 16bit의 주소로 0~65535까지 있습니다.

0~1023 : system만 사용할 수 있는 Well Kown Ports

1024~49151 : user가 사용 할 수 있는 Registered Ports

49152~65536 : Dynamic/Private Ports

 

일반적인 서버에서 사용되는 Well known Port Numbers의 예

FTP 20, TELNET 23, SMTP 25, HTTP80, POP3 110, HTTPS 443

'Network' 카테고리의 다른 글

HTTP  (0) 2019.12.12
Socket  (0) 2019.12.12
OSI 7계층  (0) 2019.12.12
Open API  (0) 2019.12.10