DNS (Domain Name System)
DNS는 사용자가 기억하기 쉬운 도메인 이름(www.example.com)을 IP 주소(192.0.2.1)로 변환해주는 시스템입니다.
인터넷에서 도메인 이름을 사용해 웹사이트에 접속할 수 있는 이유는 DNS 시스템이기때문입니다.
작동원리
DNS서버는 계층 구조로 이루어져 있으며, 루트 DNS 서버, 최상위 도메인( TLD ) DNS서버,
권한 있는 DNS 서버 등이 협력해 도메인 이름을 IP 주소로 변환합니다.
HTTP & HTTPS
HTTP
HyperText Transfer Protocol의 약자로, 웹에서 하이퍼텍스트 문서를 교환하기 위한 프로토콜입니다. TCP를 사용하여 클라이언트와 서버 간에 요청과 응답을 주고받습니다.
HTTPS
HTTP에 SSL/TLS 암호화를 추가한 프로토콜입니다. 데이터를 암호화하여 전송함으로써 도청, 중간자 공격 등의 보안 위협을 방지합니다.
OSI 7계층

1. 물리 계층 (Physical Layer)
물리 계층은 네트워크 장비 간의 실제 물리적인 연결을 담당하며, 전기적, 기계적, 기능적 인터페이스를 정의합니다.
데이터는 0과 1의 비트(bit)로 표현되며, 네트워크 케이블과 신호에 관한 규칙을 다룹니다.
데이터 단위: 비트(Bit)
프로토콜: 이더넷 (Ethernet), USB, 블루투스 (Bluetooth), RS-232 등
- 장비:
- 모뎀 (Modem): 아날로그 신호를 디지털 신호로 변환하고, 반대 방향으로도 변환합니다.
- 허브 (Hub): 여러 컴퓨터를 연결하여 하나의 네트워크로 만들어줍니다. 단순히 수신한 신호를 모든 포트로 전달합니다.
- 리피터 (Repeater): 디지털 신호를 증폭하여 전송 거리를 연장합니다.
- 네트워크 케이블: 트위스티드 페어 케이블, 광섬유 케이블 등 데이터 전송을 위한 물리적 매체를 포함합니다.
2. 데이터 링크 계층 (Data Link Layer)
데이터 링크 계층은 물리 계층에서 오류 없이 데이터 프레임이 전송되도록 제어합니다.
이 계층에서는 물리적 주소(MAC 주소)를 사용해 노드 간 통신이 이루어지며, 오류 검출과 흐름 제어를 담당합니다.
데이터 단위: 프레임(Frame)
프로토콜: 이더넷(Ethernet), PPP(Point-to-Point Protocol), HDLC(High-Level Data Link Control)
- 장비:
- 스위치 (Switch): 네트워크 내에서 데이터 패킷을 특정 목적지 MAC 주소로 전송하는 장치입니다. 네트워크 효율성을 높여줍니다.
- 브리지 (Bridge): 두 개 이상의 네트워크 세그먼트를 연결하여 트래픽을 관리합니다.
- 네트워크 인터페이스 카드(NIC): 컴퓨터와 네트워크를 연결하며, 프레임을 생성하고 MAC 주소를 통해 데이터를 전송합니다.
3. 네트워크 계층 (Network Layer)
네트워크 계층은 패킷을 네트워크 간에 전송하고, 가장 효율적인 경로를 선택합니다.
이 계층에서 사용되는 주소는 IP 주소입니다.
데이터 단위: 패킷(Packet)
프로토콜: IP(Internet Protocol), ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol), OSPF(Open Shortest Path First), BGP(Border Gateway Protocol)
- 장비:
- 라우터 (Router): 서로 다른 네트워크 간에 패킷을 전달하는 장비로, 경로를 선택하여 데이터를 전송합니다.
- L3 스위치 (Layer 3 Switch): 스위치와 라우터의 기능을 결합한 장비로, 네트워크 내에서 라우팅 기능을 수행합니다.
- 방화벽 (Firewall): 네트워크 트래픽을 필터링하여, 안전한 트래픽만 통과하도록 제어합니다.
4. 전송 계층 (Transport Layer)
전송 계층은 종단 간(End-to-End) 통신을 책임지며, 데이터 전송의 신뢰성과 흐름 제어를 제공합니다.
TCP와 UDP 프로토콜이 대표적입니다.
데이터 단위: 세그먼트(Segment) / 데이터그램(Datagram)
프로토콜: TCP(Transmission Control Protocol), UDP(User Datagram Protocol), SCTP(Stream Control Transmission Protocol)
- 장비:
- 로드 밸런서 (Load Balancer): 서버 간의 트래픽을 분산시켜 부하를 줄이는 장비로, 전송 계층에서 주로 동작합니다.
- 게이트웨이 (Gateway): 다른 프로토콜을 사용하는 네트워크 간의 데이터 전송을 가능하게 해주는 장치로, 전송 계층에서의 트래픽 관리 기능도 수행할 수 있습니다.
5. 세션 계층 (Session Layer)
세션 계층은 애플리케이션 간의 연결(세션)을 설정, 유지, 종료하는 작업을 담당합니다.
이 계층은 대화 제어와 동기화 기능을 제공합니다.
데이터 단위: 데이터(Data)
프로토콜: PPTP(Point-to-Point Tunneling Protocol), NetBIOS, RTP(Real-time Transport Protocol)
- 장비:
- NAT(Network Address Translator) 장비: 세션 계층에서 IP 주소를 변환하여 통신을 관리합니다.
- 프록시 서버 (Proxy Server): 사용자와 인터넷 사이에 위치하여 요청을 대리로 전송하고, 응답을 받아 사용자에게 전달하는 장치입니다. 세션을 관리하고 보안 기능을 제공합니다.
6. 표현 계층 (Presentation Layer)
표현 계층은 데이터를 네트워크에서 이해할 수 있는 형식으로 변환합니다.
암호화, 압축, 데이터 형식 변환 등을 수행하여 데이터의 의미를 보존하면서 다른 형식으로 변환합니다.
데이터 단위: 데이터(Data)
프로토콜: SSL/TLS(Secure Sockets Layer/Transport Layer Security), JPEG, MPEG, GIF, ASCII
- 장비:
- SSL 가속기(SSL Accelerator): SSL/TLS 암호화를 하드웨어 수준에서 처리하여 성능을 높이는 장비입니다.
- 데이터 암호화 장치: 데이터를 암호화/복호화하는 장치로, 표현 계층에서 주로 사용됩니다.
7. 응용 계층 (Application Layer)
응용 계층은 최종 사용자가 네트워크를 통해 애플리케이션에 접근할 수 있도록 인터페이스를 제공하는 계층입니다.
이 계층에서 다양한 네트워크 서비스와 프로토콜이 동작합니다.
데이터 단위: 데이터(Data)
프로토콜: HTTP(HyperText Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), DNS(Domain Name System), SNMP(Simple Network Management Protocol)
- 장비:
- 웹 서버 (Web Server): HTTP/HTTPS 프로토콜을 통해 웹 페이지를 제공하는 서버입니다.
- 메일 서버 (Mail Server): 이메일 전송과 수신을 관리하는 서버로, SMTP, POP3, IMAP 등의 프로토콜을 사용합니다.
- DNS 서버 (DNS Server): 도메인 이름을 IP 주소로 변환하는 서버입니다.
- VoIP 장비: 음성 데이터를 패킷으로 변환하여 인터넷을 통해 전송하는 장비로, 응용 계층의 프로토콜을 사용합니다.
TCP ( Transmission Control Protocol )
신뢰성 있는 데이터 전송을 제공하는 프로토콜
연결 설정, 데이터 전솔, 연결 종료 단계에서 모든 패킷이 순서대로 전달되도록 보장
OSI 7계층중 4계층인 전송계층
특징
1. 연결 지향 프로토콜 ( Connection Oriented Protocol )
물리적으로 전용회선이 연결되어 있는 것처럼 가상의 연결통로를 설정하여 통신하는 방식
가상의 연결통로 -> 가상회선
논리적인 연결통로를 통해 데이터를 주고받음으로써 데이터의 전송순서를 보장 -> 순서제어
스트림 기반의 전송방식 사용 -> 데이터를 임의의 크기로 나누어 연속적으로 전송하는 방식사용
2. 신뢰할 수 있는 프로토콜 ( Reliable Protocol )
흐름제어 - 상대방이 받을 수 있는 만큼만 데이터를 효율적으로 전송
오류제어 - 데이터의 오류나 누락없이 안전한 전송 보장, 오류또는 누락 발생시 재전송으로 보정
혼잡제어 - 네트워크의 혼잡 정도에 따라 송신자가 데이터 전송량을 제어
판단기준은 데이터의 손실 발생 유무로 판단
TCP 3 way Handshake & 4 way Handshake
TCP 3 way Handshake -> TCP 연결을 설정하는 과정
1. SYN: 클라이언트가 서버에 연결 요청을 보냅니다.
2. SYN-ACK: 서버가 요청을 수락하고 응답을 보냅니다.
3. ACK: 클라이언트가 서버의 응답을 확인하고 연결이 성립됩니다.
TCP 4 way Handshake -> TCP 연결을 종료하는 과정
1. FIN: 클라이언트가 연결을 종료하겠다는 신호를 보냅니다.
2. ACK: 서버가 종료 요청을 수락하고 응답을 보냅니다.
3. FIN: 서버도 종료하겠다는 신호를 보냅니다.
4. ACK: 클라이언트가 서버의 응답을 확인하고 연결이 완전히 종료됩니다.
TLS ( Transport Layer Security ) Handshake
보안 통신을 위한 프로토콜
클라이언트와 서버가 서로 인증하고, 암호화 알고리즘과 키를 교환하여 안전한 통신을 설정
과정
1. 클라이언트가 서버에 접속 요청을 보내며 지원하는 암호화 방식등을 전달
2. 서버가 선택된 암호화 방식과 인증서를 클라이언트에게 보냄
3. 클라이언트는 서버 인증서를 확인한 후, 세션 키를 암호화하여 서버에 전달
4. 서버는 세션 키를 복호화하여 안전한 통신 시작
UDP ( User Datagram Protocol )
TCP와 달리 연결 설정 없이 데이터를 전송하는 프로토콜
신뢰성을 보장하지 않지만, 속도가 빠르고 실시간성이 요구되는 상황에서 사용됨
실시간 스트리밍, VoIP, 온라인 게임 등에서 UDP를 사용 -> 데이터 손실보다 빠른 전송이 더중요하기때문
대칭키 & 공개키
SSL/TLS, HTTPS, 데이터베이스 보안등에서 주로 사용됨
대칭키 암호화 : 하나의 비밀 키를 사용하여 데이터를 암호화하고 복호화
-> 속도가 빠르지만, 키의 보안이 중요
대용량 데이터를 암호화할때 주로 사용
공개키 암호화 : 공개키와 비밀키 한 쌍을 사용
공개키로 암호화된 데이터는 대응하는 비밀키로만 복호화가 가능
-> 키를 공유하는 데 안전하지만, 대칭키 암호화에 비해 속도가 느림
데이터를 안전하게 전송할 때 사용됨
로드 밸런싱 ( Load Balancing )
여러 서버에 트래픽을 분산하여 서비스의 가용성과 성능을 높이는 기술
알고리즘
1. Round Robin
다음 순차적으로 서버를 선택하는 방법
2. Hash ( Sticky Session )
클라이언트가 서버와 한 번 연결되면, 그 이후에는 항상 같은 서버로 연결하는 방식
3. Least Connection
연결 수가 가장 적은 서버를 선택
4. 응답 시간
응답속도( ping , ms )가 가장 빠른 서버를 선택
'CS지식' 카테고리의 다른 글
| 클라우드 ( AWS ) 지식 (1) | 2024.08.02 |
|---|---|
| 운영체제와 WAS 정리 (1) | 2024.08.02 |
| 동시성 제어 - 뮤텍스와 세마포어 (3) | 2024.07.31 |
| 데이터베이스 CS 지식 (5) | 2024.07.30 |
| 동기, 비동기에 대해서 (4) | 2024.07.28 |