1. 컴퓨터 네트워크란?
- 컴퓨터와 다른 장치들이 데이터를 주고받을 수 있도록 연결하는 시스템
2. 네트워크의 기본 개념
- OSI 7계층 모델
- 물리 계층(Physical Layer)
- 데이터 링크 계층 (Data Link Layer)
- MAC 주소: 물리적인 네트워크 인터페이스를 식별하는 데 사용되는 주소
- 이더넷 프레임: 데이터를 전송하기 위한 패킷 형식
- 네트워크 계층 (Network Layer)
- 라우팅: 데이터 패킷이 출발지에서 목적지까지 가는 경로를 결정하는 과정
- IP 주소: 네트워크 상에서 각 장치를 식별하는 데 사용되는 주소
- 전송 계층 (Transport Layer)
- TCP 특징: 연결 지향적이며, 흐름 제어와 오류 복구 기능을 제공
- UDP 특징: 연결이 없으며, 데이터 전송만을 위한 간단한 프로토콜
- 세션 계층 (Session Layer)
- 세션 관리: 데이터 전송 세션을 설정, 유지, 종료하는 기능을 담당
- 표현 계층 (Presentation Layer)
- 데이터 변환: 데이터의 인코딩, 암호화, 압축 등의 변환 작업을 수행
- 응용 계층 (Application Layer)
- 응용 프로토콜: HTTP, FTP, SMTP 등 다양한 응용 프로토콜이 이 계층에서 동작
- DNS: 도메인 이름을 IP 주소로 변환하는 시스템
- TCP/IP 모델 - 인터넷 프로토콜 스위트의 기반이 되는 모델로 4개의 계층으로 구성
- 네트워크 인터페이스 계층 (Network Interface Layer)
- 물리적인 네트워크 인터페이스와 상호작용하여 데이터를 전송
- 데이터 링크 계층과 물리 계층의 기능을 수행
- 인터넷 계층 (Internet Layer)
- 데이터 패킷의 라우팅과 전송을 담당
- IP 주소를 사용하여 목적지를 식별
- 전송 계층 (Transport Layer)
- 데이터의 전송을 관리하며, 흐름 제어와 오류 복구 기능을 제공
- TCP와 UDP 프로토콜이 이 계층에서 동작
- 응용 계층 (Application Layer)
- 최종 사용자와 직접 상호작용하여 응용 서비스를 제공
- HTTP, FTP, SMTP 등 다양한 응용 프로토콜이 이 계층에서 동작
- 네트워크 인터페이스 계층 (Network Interface Layer)
2. 주요 프로토콜
- HTTP/HTTPS
- HTTP(Hypertext Transfer Protocol)
- 상태 코드: 웹 서버의 응답 상태를 나타내는 3자리 숫자
- 메서드: 클라이언트가 웹 서버에 요청을 보낼 때 사용되는 명령어
- 헤더와 본문: HTTP 요청 및 응답에는 헤더와 본문이 포함. 헤더는 메타데이터를, 본문은 실제 데이터를 담고 있다.
- HTTPS(HTTP Secure)
- SSL/TLS 암호화: 데이터 전송 과정에서 암호화를 사용하여 보안을 강화
- 인증서: 웹 사이트의 신뢰성을 보장하기 위해 SSL/TLS 인증서를 사용. 공인된 인증 기관(CA)에 의해 발급
- 포트 번호: 기본적으로 443 포트를 사용하여 HTTPS 통신이 이루어진다.
- HTTP(Hypertext Transfer Protocol)
- TCP/UDP
- TCP(Transmission Control Protocol)
- 3-way 핸드쉐이크: 연결을 설정하기 위한 과정으로, SYN, SYN-ACK, ACK의 세 단계로 이루어진다.
- 흐름 제어와 혼잡 제어: 수신자의 처리 속도와 네트워크 혼잡 상태를 고려하여 데이터 전송 속도를 조절
- 데이터 순서 보장: 데이터 패킷이 전송되는 순서대로 수신되도록 보장
- UDP(User Datagram Protocol)
- 연결이 없음: 데이터 전송 전에 연결 설정 과정이 없다.
- 빠른 전송: 신뢰성보다는 빠른 데이터 전송을 목표로 한다.
- 브로드캐스트와 멀티캐스트: 한 번에 여러 대의 장치에 데이터를 전송할 수 있는 기능을 제공
- TCP(Transmission Control Protocol)
- IP(Internet Protocol)
- IPv4와 IPv6: IPv4는 32비트 주소 체계를 사용하며, IPv6는 128비트 주소 체계를 사용
- 라우팅: 목적지까지의 경로를 결정하고, 데이터 패킷을 다음 호스트나 라우터로 전달
- 서브넷팅과 슈퍼넷팅: IP 주소 공간을 효율적으로 사용하기 위한 네트워크 분할 기법
'다양한 Dev. > 기본 정리' 카테고리의 다른 글
2024.03.25 - RESTful API? (0) | 2024.03.25 |
---|---|
2024.03.12 - [Path Parameter] vs. [Query Parameter] (0) | 2024.03.12 |
2024.02.16 - Github와 Discord 연동하기 (0) | 2024.02.16 |
2024.01.07 - OOP(Object-Oriented Programming)란? (0) | 2024.01.07 |
2023.09.30 - Swagger(Nest.js) 작성 방법 (0) | 2023.09.30 |