http-web-basic-3

PORT

같은 IP 내에서 프로세스를 구분

port

port2

IP가 아파트라면 포트는 몇동 몇호라고 할 수 있다.

  • 0 ~ 65535: 할당가능
  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

인터넷 프로토콜 스위트에서 포트(port)는 운영 체제 통신의 종단점이다. 이 용어는 하드웨어 장치에도 사용되지만, 소프트웨어에서는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다.

주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, 예를 들어 전송 제어 프로토콜(TCP)와 사용자 데이터그램 프로토콜(UDP)가 있다. 각 포트는 번호로 구별되며 이 번호를 포트 번호라고 한다.

포트 번호는 IP 주소와 함께 쓰여 해당하는 프로토콜에 의해 사용된다.

표기

URI 문법에 의해서 사용 및 표기할 수 있으며, IP 주소와 함께 URL을 표기하는 예는 다음과 같다.

ftp://000.000.000.000:21
위 표기에서 ftp://는 URI 주소와 구분 기호를, 000.000.000.000은 IP 주소를 의미하며 : 다음의 21은 포트 번호를 의미한다.

포트 번호를 생략 가능한 경우가 있는데 예를 들면,

http://000.000.000.000
위와 같은 같은 월드 와이드 웹 URL은 기본적으로 80번 포트를 사용하므로 웹 브라우저는 자동적으로 이를 다음과 같은 의미로 처리한다.

http://000.000.000.000:80

DNS

도메인 네임 시스템(Domain Name System)

dns-1

  • 전화번호부
  • 도메인 명을 IP주소로 변환

dns-2

DNS 서버

웹 페이지로드와 관련됨

  • DNS 리커서 - 리커서는 도서관의 어딘가에서 특정한 책을 찾아달라고 요청받는 사서로 생각할 수 있다.
    DNS 리커서는 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버이다.
    일반적으로, 리커서는 클라이언트의 DNS 쿼리를 충족시키기 위해 추가 요청을 수행한다.
  • 루트 이름 서버 - 루트 서버는 사람이 읽을 수 있는 호스트 이름을 IP 주소로 변환(확인)하는 첫 번째 단계이다.
    도서관에서 책장 위치를 가리키는 색인으로 생각할 수 있으며, 일반적으로 다른 더욱 특정한 위치에 대한 참조로 사용된다.
  • TLD 이름 서버 - TLD(최상위 도메인) 서버는 도서관의 특정 책장으로 생각할 수 있다.
    이 이름 서버는 특정 IP 주소 검색의 다음 단계이며 호스트 이름의 마지막 부분을 호스팅한다(example.com에서 TLD 서버는 “com”이다).
  • 권한 있는 이름 서버 - 최종 이름 서버로서, 책장에 있는 사전처럼 특정 이름을 해당 정의로 변환합니다. 권한 있는 이름 서버는 이름 서버 쿼리의 종착점이다.
    권한있는 이름 서버가 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트 이름의 IP 주소를, 초기 요청을 한 DNS 리커서(사서)에게 돌려 보낸다.

dns-record-request

DNS 조회 8단계

  • 사용자가 웹 브라우저에 example.com을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신
  • 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리
  • 다음으로, 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답
  • 이제, 확인자가 .com TLD에 요청
  • 이어서, TLD 서버가 도메인 이름 서버(example.com)의 IP 주소로 응답
  • 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냄
  • 이제, example.com의 IP 주소가 이름 서버에서 확인자에게 반환
  • 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답

참고자료

댓글

You forgot to set the shortname for Disqus. Please set it in _config.yml.