자격증/정보보안기사

네트워크보안(2) | TCP/IP 구조1

burrri 2025. 5. 4. 11:43

TCP/IP 4 layer에 대해서 알아보자. 

 

# Application 계층(L4) 

  • osi 7layer의 5(session), 6(presentation), 7(application)이 합쳐진 계층
  • 사용자들이 사용하는 어플리케이션에 맞게 user interface를 설계
  • 응용 계층과 연결, 기본적 사항 및 에러/일관성 제어
  • 관련 서비스: ftp, dns, http, telnet, smtp, snmp 등 

 

HTTP 

 

  • W3C 표준 프로토콜을 사용하여 웹 브라우저와 서버 사이 메세지를 송수신하는 프로토콜
  • TCP 프로토콜 기반
  • 80port, 오직 하나의 프로세스만 root 사용자로 가동하여 점유 → 자식 프로세스를 생성하여 실행
HTTP 1.0 3way handshake → HTML 페이지를 수신받고 (request-response) → 완전 연결 종료
HTTP 1.1 완전 연결 종료가 아닌,  일정 기간 연결을 대기하는 Keep alive connection 지원
HTTP 2.0 빠른 데이터 처리를 위해
멀티 플랙싱 : 동시다발적 양방향 통신
헤더 압축
서버 푸시 : 서버가 클라이언트에게 미리 필요한 데이터를 전송 -> 요청 횟수와 전송 데이터 양 감축

 

 

| HTTP request 구조 

요청 방식에 따라 데이터를 전달하는 방식이 다름

GET으로 요청하면 위에서 확인 가능하듯이 url에 인자를 넣어서 요청 → 전송 가능 양이 제한적(2~4KB)

POST로 요청 시, request body에 넣어서 데이터를 전송

 

 

| HTTP response 구조

 

쿠키 웹 브라우저에서 저장하는 상태 정보 보안 option
- secure : 암호화된 요청일 경우에만 전송
- httponly : xss공격을 방지하기 위해 document.cookie API접근 차단
- domain : 쿠기가 전송하게될 호스트 명시
- path : 쿠키 header전송을 위해 요청되는 특정 url 경로
세션 서버에 저장된 상태 정보
(로그인 여부, 사용자 정보 등)
세션 ID 쿠키에 담겨 브라우저로 전송
→ 
그걸로 서버가 사용자를 식별

세션 ID 탈취되면 공격자는 로그인 없이도  사람처럼 행동 가능
 
보안 옵션 중요

 

 

 

# Transport 계층(L3) 

  • end-to-end 전송
  • 데이터의 오류x, 순서가 보존되도록 하는 연결지향서비스
  • 단위 : segment (message + tcp/udp header)

 

1. TCP

TCP신뢰성 있는 연결 지향 프로토콜로, 연결 수립과 종료 명확한 상태 전이가 있음

 

| 구조 

 

| 연결

1. 상태 정보 확인 : netstat 등을 통해 확인

2. 3-way handshake (syn - syn,ack - ack)을 통해 신뢰성있는 연결 지향

 

| 에러 제어 : GO-BACK-N ARQ

중간에 하나라도 ack을 받지 못하면, 돌아온 ACK 번호 이후의 모든 것을 전부 재전송 (BEC 기법)

 

| 혼잡제어

congestion slow start : congestion windows 크기를 지수승으로 증가

 

동일한 ACK 번호만 재전송하거나, 패킷 손실 등의 네트워크 혼잡도를 감지 (congestion avoidance)

 → 전송 속도를 낮춤 

 → Congestion windows(cwnd)를 줄이고 다시 천천히 증가

 

| 흐름제어 : Sliding windows 

수신자의 window크기에 맞춰서 일정 수의 패킷을 전송 후, 응답이 확인되면 그 다음 패킷을 전송 

 

| 신뢰성 보장

Sequence번호를 통해 메세지의 순서 파악  → 메세지 조각 맞춤

Checksum을 통해 메세지 무결성을 확인

 

 

2. UDP

  • 비연결성(connection-less)
  • 비신뢰성 : 목적지에 성공적으로 전송한다는 보장 x
  • 빠른 전송
  • 간단 헤더