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 연결을 설정하는 과정
  1. 클라이언트 → 서버: SYN 패킷 전송
  2. 서버 → 클라이언트: SYN+ACK 패킷 전송
  3. 클라이언트 → 서버: ACK 패킷 전송

OSI 7 LAYER

  1. 물리 계층: 전기적 신호 전송

  2. 데이터 링크 계층: MAC 주소 기반 통신

  3. 네트워크 계층: IP 주소 기반 라우팅

  4. 전송 계층: TCP/UDP 프로토콜 사용

  5. 세션 계층: 세션 관리

  6. 표현 계층: 데이터 암호화/압축

  7. 응용 계층: 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

브라우저 연결

  1. DNS 조회: URL → IP 주소 변환

  2. HTTP 요청: GET 요청 전송

  3. 서버 응답: HTML, CSS, JS 등 리소스 전송

  4. 브라우저 렌더링: 리소스 해석 및 화면 표시

  • Session: 서버에 저장, 보안성이 강함

  • Cookie: 클라이언트에 저장, 보안성이 약함

대칭 / 비대칭 암호화

  • 대칭키: 암호화/복호화에 동일한 키 사용으로 빠름

  • 비대칭키: 공개키와 개인키 사용, 보안이 강한대신 느림

Load Balance

  • 트래픽을 여러 서버에 분산하는 것

  • 알고리즘:

    1.라운드 로빈 : 서버로 들어온 요청을 순서대로 돌아가며 배정

    2.최소 연결 : 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽을 배정

    3.IP 해시 : 클라이언트의 IP 주소를 이용해 특정 서버로 매핑

Protobuf

구글에서 개발한 데이터 직렬화 형식으로 XML, JSON보다 데이터를 효율적으로 교환가능함

IP Protocol

  • 비연결성(connectionlessness) : 데이터 전송 전 연결을 설정하지 않음

  • 비신뢰성(unreliability) : 보낸 데이터가 제대로 전달되었는지를 보장하지 않음 (=오류 제어 없음 )

  • 주소 지정 : 네트워크의 각 장치에 고유한 IP 주소를 할당하여 장치들 간의 식별과 통신을 가능토록함

  • 라우팅 : 여러 경로를 통해 최적의 경로로 데이터를 전달할 수 있도록 라우팅을 수행

흐름제어, 혼잡제어, 오류제어

  • 참고 포스트

  • 흐름제어: 송신측과 수신측의 데이터 처리 속도 차이를 조절하여 수신자의 버퍼가 오버플로우되지 않도록 함

  • 혼잡제어: 네트워크 내 패킷의 수가 과도하게 증가하는 혼잡 현상을 방지하거나 제거하는 기능

  • 오류제어: 데이터 손실을 감지하고 복구하는 과정