TCP / UDP
-
TCP (Transmission Control Protocol): 연결 지향적, 신뢰성 높음, 순서 보장, 오류 복구 가능, 비교적 속도가 느린 프로토콜
(예: 파일 전송, 이메일) -
UDP (User Datagram Protocol): 비연결 지향적, 신뢰성 낮음, 순서 보장 없음, 오류 복구 불가, 속도가 빠른 프로토콜
(예: 실시간 스트리밍, DNS)
TCP / UDP 패킷 구조 차이
-
TCP 패킷: 헤더에 오류 검출을 위한 Sequence Number, Acknowledgment Number, Checksum 등 포함
-
UDP 패킷: 헤더가 간단하여 Checksum만 포함
3-Way Handshaking
- TCP 연결을 설정하는 과정
- 클라이언트 → 서버: SYN 패킷 전송
- 서버 → 클라이언트: SYN+ACK 패킷 전송
- 클라이언트 → 서버: ACK 패킷 전송
OSI 7 LAYER
-
물리 계층: 전기적 신호 전송
-
데이터 링크 계층: MAC 주소 기반 통신
-
네트워크 계층: IP 주소 기반 라우팅
-
전송 계층: TCP/UDP 프로토콜 사용
-
세션 계층: 세션 관리
-
표현 계층: 데이터 암호화/압축
-
응용 계층: HTTP, FTP 등 애플리케이션 프로토콜
리피터, 허브, 브릿지, 라우터
-
리피터: 신호 증폭
-
허브: 여러 장치 연결, 패킷 브로드캐스트
-
브릿지: 두 네트워크 연결, MAC 주소 기반 필터링
-
라우터: 다른 네트워크 간 데이터 전송, IP 주소 기반 라우팅
계층별 스위치
스위치는 여러 IT 디바이스가 서로 통신할 수 있도록 연결해주는 장비를 뜻하며 계층에 따라 동작방식이 다름
-
L2 스위치: MAC 주소 기반 스위칭
-
L3 스위치: IP 주소 기반 라우팅
-
L4 스위치: 포트 번호 기반 로드 밸런싱
-
L7 스위치: 애플리케이션 계층(HTTP 등) 기반 스위칭
RESTful API
-
HTTP 메서드(GET, POST, PUT, DELETE)를 사용해 리소스를 CRUD(Create / Read / Update / Delete)하는 API.
-
상태 없음(Stateless), 자원 중심 구조가 특징
HTTP / HTTPS
HTTP는 클라이언트와 서버 간 데이터 통신을 위한 프로토콜로 요청(Request)과 응답(Response)으로 구성됨
-
HTTP: 암호화 없음, 보안에 취약
-
HTTPS: SSL/TLS로 암호화, 보안이 강화된 버전
SSL (Secure Sockets Layer) - 데이터 암호화를 위한 프로토콜로 HTTPS에서 사용
HTTP method
-
GET: 리소스 조회
-
POST: 리소스 생성
-
PUT: 리소스 전체 수정
-
PATCH: 리소스 부분 수정
-
DELETE: 리소스 삭제
GET vs POST
GET: URL에 데이터 포함, 캐시 가능 - 조회용 method POST: Body에 데이터 포함, 캐시 불가 - 생성/수정용 method
브라우저 연결
-
DNS 조회: URL → IP 주소 변환
-
HTTP 요청: GET 요청 전송
-
서버 응답: HTML, CSS, JS 등 리소스 전송
-
브라우저 렌더링: 리소스 해석 및 화면 표시
Session vs Cookie
-
Session: 서버에 저장, 보안성이 강함
-
Cookie: 클라이언트에 저장, 보안성이 약함
대칭 / 비대칭 암호화
-
대칭키: 암호화/복호화에 동일한 키 사용으로 빠름
-
비대칭키: 공개키와 개인키 사용, 보안이 강한대신 느림
Load Balance
-
트래픽을 여러 서버에 분산하는 것
-
알고리즘:
1.라운드 로빈 : 서버로 들어온 요청을 순서대로 돌아가며 배정
2.최소 연결 : 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽을 배정
3.IP 해시 : 클라이언트의 IP 주소를 이용해 특정 서버로 매핑
Protobuf
구글에서 개발한 데이터 직렬화 형식으로 XML, JSON보다 데이터를 효율적으로 교환가능함
IP Protocol
-
비연결성(connectionlessness) : 데이터 전송 전 연결을 설정하지 않음
-
비신뢰성(unreliability) : 보낸 데이터가 제대로 전달되었는지를 보장하지 않음 (=오류 제어 없음 )
-
주소 지정 : 네트워크의 각 장치에 고유한 IP 주소를 할당하여 장치들 간의 식별과 통신을 가능토록함
-
라우팅 : 여러 경로를 통해 최적의 경로로 데이터를 전달할 수 있도록 라우팅을 수행
흐름제어, 혼잡제어, 오류제어
-
흐름제어: 송신측과 수신측의 데이터 처리 속도 차이를 조절하여 수신자의 버퍼가 오버플로우되지 않도록 함
-
혼잡제어: 네트워크 내 패킷의 수가 과도하게 증가하는 혼잡 현상을 방지하거나 제거하는 기능
-
오류제어: 데이터 손실을 감지하고 복구하는 과정