ID: key_26_09_02_26_15_08_48_51300 Created date: Feb 26 2026 Thursday, 9th 15:08

연관 문서

OSI 7 Layer

  • 개요
    • 네트워크 통신을 7개 계층으로 나눈 표준 참조 모델로 각 계층은 독립적으로 수행하며, 상위 계층은 하위 계층의 서비스를 활용
  • 목적: 계층화를 통해 복잡성을 줄이기 위함
    • 독립성: TCP에서는 WI-FI or 유선 케이블이 관심 대상 X
    • 유지 보수 용이성: 범위 정의 용이함
    • 표준화 응용 프로그램 ↕ ⑦ 응용 계층 (Application) - 사용자와 직접 상호 작영 (ex Http) ⑥ 표현 계층 (Presentation) - 데이터 형식 변환, 암호화 (ex SSL) ⑤ 세션 계층 (Session) - 연결 설정 관리 (대부분 7 계층에서 구현) ④ 전송 계층 (Transport) - 종단간 데이터 전송 (ex TCP, UDP) ③ 네트워크 계층 (Network) - 논리적 주소 (ex IP) ② 데이터 링크 계층 (Data Link) - 물리적 주소 (ex MAC) ① 물리 계층 (Physical) - 실제 전기 신호 및 비트 (ex 광섬유) ↕ 물리적 네트워크

Transport Layer (TCP vs UDP)

  • 목적
    • Network Layer: 어떤 컴퓨터로 보낼지 정의 (IP)
    • Transport Layer: 해당 컴퓨터의 어떤 프로그램으로 얼마의 신뢰성 유지
  • 핵심 개념
    • 포트: 해당 컴퓨터의 어떤 프로그램
    • 연결 수립 및 종료 방식
      • TCP
        • 수립: 3 Way Handshake
          • 흐름
            • → 연결 요청 (SYN, seq=100)
            • ← 연결 수락 (SYN-ACK, seq=200, ack=100)
            • → 최종 확인 (ACK, ack=200)
          • seq: 데이터 순서를 보장하기 위한 번호
          • ack: 해당 seq 까지 받았다는 의미
        • 종료: 4 Way Handshake
          • 흐름
            • → 종료 요청 (FIN, seq=100)
            • ← 종료 요청 수신 (ACK, seq=200, ack=100)
            • ← 종료 완료 (FIN, seq=300)
            • → 종료 확인 (ACK, ack=300)
          • 서버에서 아직 보내야할 데이터가 남아있을 수 있으므로 끝까지 확인
        • 강제 종료
          • 프로세스 강제 종료, 방화벽 차단 등
          • 흐름
            • → 데이터 요청 (ACK, seq=100 w/ 데이터)
            • ← RST (서버 OS에서 발송)
          • 소켓 Read 시 Connection Exception 발생 (즉시 감지)
        • Slient Drop (조용한 단절)
          • 방화벽 테이블에서 제거해버림 (FIN, RST 없음)
          • 흐름
            • → 데이터 요청 (ACK, seq=100 w/ 데이터)
            • 패킷 버려짐
          • 위 상황 Half-Open Connection
    • 데이터 전송 방식
      • TCP: 전송 신뢰성 확보 방법
        • 세그먼트 분할 & 순서 보장
        • ACK & 재전송 (손실 복구)
          • seq1에 대한 ack1에 timeout 발생 한다면
          • seq2로 다시 요청
        • 흐름 제어 (Flow Control) - 수신자 보호
          • 수신 측의 버퍼를 보고 받아 (WIndow Size) 속도 조절
          • Window Size는 TCP 헤더에 포함
        • 혼잡 제어 (Congestion Control) - 네트워크 보호
          • 네트워크 자체의 부하를 감지해 패킷 발송 속도를 제어
      • TCP 헤더 내 존재하는 데이터로 조작을 많이함
  • TCP vs UDP
    • 비교