1. IP 주소
- Internet Protocol address
- 인터넷 상에서 사용하는 주소 체계
- IPv4 : 모든 PC는 IP 주소 체계를 따라 네 덩이의 숫자로 구분된다.
- 컴퓨터, 스마트폰, 사물인터넷 등의 보급화로 주소가 고갈되어 요즘은 IPv6 사용
1) IPv4
93.184.216.34
- 8비트씩 끊어 이를 0~255의 10진수로 나타내며 각 숫자는 점(.)으로 구분한다.
- 각 32비트의 정보를 가지므로 최대 43억개의 고유한 주소를 부여할 수 있다.
IPv4 할당 종료
- 2011년 2월 4일 IPv4의 할당 중지가 선언됨
- 기존에 할당된 IPv4는 유지 및 관리되는 중
- IPv6로 완전히 전환된다면 IPv4 서비스가 완전히 중지되겠지만 현재로선 미지수
2) IPv6
2606:2800:0220:0001:0248:1893:25c8:1946
- 128비트의 값
- 4자리의 16진수 숫자 8개로 표기하며 쌍점(:)으로 구분한다.
- 최대 할당 IP 개수는 약 2의 128승개 (매우 넘쳐남)
3) IP 주소 할당
공인 IP 주소
- 공인 IP란 다른 컴퓨터와 통신할 때 쓰는 IP주소
- 내가 맘대로 IP 주소를 사용할 수 없음. IP 주소를 관리하는 기관으로부터 할당받아야 사용가능
- IANA → 각 대륙별 IP 주소 관리 기관 → 각국의 IP 주소 관리 기관 → ISP 순으로 IP를 할당받음
- 대한민국은 APNIC(아시아-태평양 네트워크 정보센터)와 KRNIC(한국인터넷정보센터)의 관할 구역
2. 도메인
IP는 기억하기 어렵기 때문에 각 IP에 기억하기 쉬운 이름을 부여한 것
도메인의 구성요소
- 국가 최상위 도메인
- 인터넷 상에서 국가를 나타내는 영문 및 자국어 도메인으로 각 국가에서 관리
- 일반 최상위 도메인
- 조직, 목적, 분류 등의 명칭을 약자로 표현
- 일반적으로 이 도메인에 대한 권한은 사설 조직에 있음
예시
opentutorials.org
- opentutorials : 컴퓨터의 이름
- org : 최상위 도메인 - 비영리 단체
daum.co.kr
- daum : 컴퓨터의 이름
- co : 국가 형태의 최상위 도메인을 의미
- kr : 대한민국의 NIC에서 관리하는 도메인을 의미
3. DNS
- Domain Name System
- 도메인 네임 시스템
- 호스트의 도메인 이름을 IP주소로 변환하거나 반대의 경우 수행할 수 있도록 개발된 데이터베이스 시스템
- 브라우저에 ‘google.com’을 입력하면 DNS에서 해당 도메인에 해당하는 IP 주소를 찾아 이 IP 주소에 해당하는 서버로 요청을 전달한다.
4. URL vs URI vs URN
- URL, URN은 URI의 종류이다.
- URL은 리소스를 리소스의 경로를 기반으로 식별하는 것
- URN은 리소스를 리소스의 이름을 기반으로 식별하는 것
URI
인터넷에 있는 자원을 어디에 있는지 자원 자체를 식별하는 방법
- Uniform Resource Identifier
- 통합 자원 식별자
- Uniform : 리소스를 식별하는 통일된 방식
- Resource : URI로 식별이 가능 모든 종류의 자원
- Identifier : 다른 항목과 구분하기 위해 필요한 정보
- URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다닌다.
URL
네트워크 상에서 자원이 어디 있는지 위치를 알려주기 위한 규약
- Uniform Resource Locator
- 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조
- URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타내는 표기법
- 해당 URL에 접속하려면 그에 맞는 프로토콜(http, sftp, smp 등)로 접속해야함
문법
https://www.google.com:443/search?q=hello&hi=ko
- 프로토콜 : https
- 어플리케이션 계층의 통신 규약을 명시
- FTP, HTTP, HTTPS 등의 방식
- 호스트명 : www.google.com
- 포트 : 443
- 패스 : /search
- 쿼리스트링 : q=hello, hi=ko
URN
urn:scheme 을 사용하는 URI를 위한 역사적인 이름
- Uniform Resource Name
- URN은 리소스에 이름을 부여하는 것
- 거의 사용될 일이 없음
URI vs URL vs URN
http://www.naver.com/index.html?page=1232950&id=776
- URL =
http://www.naver.com/index.html
- 식별자 =
?page=1232950&id=776
이므로
http://www.naver.com/index.html?page=1232950&id=776
http://www.naver.com/index.html?page=9923145&id=122
- 식별자가 다르므로 같은 URL이지만 다른 URI라고 할 수 있다.
5. 프로토콜
- 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계
예시
- HTTP : Hyper Text Transfer Protocol
- HTTPS : Hyper Text Transfer Protocol Secure
- FTP : File Transfer Protocol
- SFTP : Secure File Transfer Protocol
- Telnet : TErminaL NETwork
- POP3 : Post Office Protocol version 3
- SMTP : Simple Mail Transfer Protocol
- SSH : Secure Shell
- SSL : Secure Socket Layer
- SOAP : Simple Object Access Protocol
- ARP : Adress Resolution Protocol
구성
- 물리적 측면: 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등
- 논리적 측면: 프레임(Frame, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등
- 폐쇄적인 프로토콜: 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전하다. (보기: IBM의 SNA, SDLC 프로토콜)
- 공개된 범용 프로토콜: 여러 장치들에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있기 때문에 컴퓨터와 네트워크 크래킹에 취약한 편이다. (보기: 인터넷의 TCP/IP)
대표 프로토콜
**TCP**
- 2개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜
- 데이터와 패킷이 보내진 순서대로 전달하는 것을 보장
- 신뢰성과 연결성을 책임지기 위한 프로토콜
- 호스트와 호스트간의 데이터 전송은 IP(인터넷 계층 프로토콜)에 의지하면서 동시에 신뢰성 있는 전송에 대해서는 TCP가 책임지는 구조
6. 포트
- IP 주소만을 이용해 컴퓨터로 데이터를 보낸다면 컴퓨터는 그 데이터를 어느 프로세스에서 처리되어야하는 것인지 알 수 없음
- TCP에서는 패킷을 어떤 프로세스가 받아야하는지에 대한 정보인 Port 정보를 추가하여 전송
자주 사용되는 포트
포트들 중 규약처럼 사용되는 포트가 있다.
최신 웹브라우저들은 포트가 정의되지 않았을 때 각 통신 방법에 따라 자동으로 해당 포트에 접근하도록 만든다.
- FTP 파일 송수신 → 20, 21번 포트
- HTTP 통신 → 80번 포트
- HTTPS 통신 → 443번 포트
따라서, 1023번 이하의 포트는 이미 규약처럼 사용되고 있을 가능성이 높아 사용하지 않는 것이 좋다.
7. 파싱
- 파싱은 하나의 프로그램을 런타임 환경(예를 들면, 브라우저 내 자바스크립트 엔진)이 실제로 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것을 의미
- 파싱은 문서의 내용을 토큰(token)으로 분석하고, 문법적 의미와 구조를 반영한 파스 트리(parse tree)를 생성하는 과정