❗ DNS(Domain Name System)는 도메인 주소를 IP 주소로 변환해주는 시스템입니다. DNS는 전 세계의 수많은 도메인을 효율적으로 저장하고 관리하기 위해서 도메인을 계층화하고, 계층의 일부 영역을 Name Server가 분산 관리하는 시스템으로 설계, 운영되고 있습니다.
웹 브라우저에 도메인 입력시 가장 처음 PC 에 있는 Cache를 탐색합니다. 없으면 DNS Server 질의를 시작합니다. Local DNS Server, Root DNS Server, Top-Level DNS Server, Second-Level DNS Server, Sub-Level DNS Server 순서대로 재귀적으로 DNS Server에 질의하고 도메인 주소에 해당하는 IP 주소를 찾습니다. 성공적으로 IP 주소를 찾을 경우 Cache에 IP 주소가 TTL(Time To Live)시간 동안 저장됩니다.
❗ HTTP(HyperText Transfer Protocol)는 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약입니다. HTTP는 평문으로 통신하기 때문에 도청 가능하며 통신 상대를 확인하지 않기 때문에 위장이 가능합니다.
HTTP의 이러한 보안 문제를 해결해주는 프로토콜이 HTTPS(HyperText Transfer Protocol Secure)입니다. HTTPS는 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약입니다.
❗ 흐름 제어(Flow Control)란 보내는 측과 받는 측의 데이터 처리 속도 차이를 조절해주는 것입니다.
혼잡 제어(Congestion Control)란 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것입니다. 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법입니다.
오류 제어(Error Control)란 데이터가 유실되거나 잘못된 데이터가 수신되었을 경우 대처하는 방법입니다.
❗ OSI 7계층이란 네트워크 통신의 흐름을 계층 별로 나누어서 표현한 것입니다. 이를 통해 계층 별로 네트워크의 흐름을 쉽게 이해할 수 있고 유지보수가 용이해집니다.
물리 계층(Physical Layer)은 데이터를 전기적인 신호로 변환해서 주고 받는 역할을 합니다. ex) 리피터, 케이블, 허브, Ethernet 등
데이터 링크 계층(Data Link Layer)은 MAC 주소를 이용해 같은 네트워크에 있는 기기 간의 통신합니다. 물리 계층에서 받아온 가공되지 않은 데이터를 신뢰성 있게 가공해서 전송합니다. ex) 브릿지, 스위치, MAC, Ethernet 등
네트워크 계층(Network Layer)은 IP 주소를 이용해 여러 네트워크를 거쳐 데이터를 목적지까지 가장 안전하고 빠르게 전달합니다. ex) 라우터, IP, ICMP, IGMP, ARP
전송 계층(Transport Layer)은 포트를 이용해 양 끝 단의 사용자들이 데이터를 주고 받을 수 있도록 합니다. ex) TCP, UDP
세션 계층(Session Layer)은 통신 시스템 간의 연결을 유지 및 설정합니다. ex) SSH, TLS 등
표현 계층(Presentation Layer)은 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당합니다. 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어줍니다. ex) JPEG, MPEG 등
응용 계층(Application Layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행합니다. ex) HTTP, FTP, DNS, DHCP 등
❗ URI(Uniform Resource Identifier)은 URI는 인터넷상의 리소스 “자원 자체”를 식별하는 문자열입니다.
URL(Uniform Resource Locator)은 네트워크상에서 통합 자원(리소스)의 “위치”를 나타내기 위한 규약입니다.
URN (Uniform Resource Name)은 리소스의 위치, 프로토콜, 호스트 등과는 상관없이 각 “자원”에 이름을 부여한 것입니다.
URI가 더 포괄적인 개념이며 URL과 URN은 URI의 개념에 포함됩니다.