[CS기술면접] 네트워크

bbbbbhyun·2026년 5월 1일

Study

목록 보기
24/28

OSI 7계층

  • OSI7계층에 대해서 제가 아는대로 설명드리겠습니다. OSI 7계층이라는게 일반적인 이 복잡한 네트워크 상에서 각각의 역할과 영역을 명확하게 함으로써 역할을 추상화하는데 있다고 생각합니다. 우선 모듈화를 통해서 각 계층이 독립적으로 설계되어 있고, 인터페이스만 유지한다면 다른 계층에 영향이 없다는 부분에 집중하였고, 이를 통해서 자연스럽게 표준화가 구성이 된다는것을 이해하였습니다. 또한 이런 구조로 인해서 자연스럽게 문제가 발생했을떄 계층별로 범위를 좁혀서 분석하기 위해 사용되는 구조로 이해하였습니다.
  • 계층계층명주요 역할PDU장비/프로토콜
    7응용 계층 (Application)사용자 인터페이스 제공 (웹 브라우저, 이메일)DataHTTP, FTP
    6표현 계층 (Presentation)데이터 암호화, 압축, 코드 변환DataJPEG, MPEG, SSL
    5세션 계층 (Session)통신 연결 설정, 유지, 종료DataTCP/IP 세션
    4전송 계층 (Transport)송수신 프로세스 간 신뢰성 있는 데이터 전송SegmentTCP, UDP
    3네트워크 계층 (Network)IP 기반의 최적 경로 설정 및 라우팅Packet라우터, IP
    2데이터 링크 계층 (Data Link)물리적 링크 간 신뢰성 있는 전송 (MAC 주소)Frame스위치, 브리지
    1물리 계층 (Physical)물리적 매체를 통한 전기 신호 전송Bit허브, 케이블, 리피터

전송 프로토콜

  • TCP (Transmission Control Protocol)
    • 연결 지향: 데이터 전송 전 논리적 연결 설정 (전화 통화와 유사)
    • 신뢰성 보장: 패킷 유실/손실/순서 뒤바뀜 문제 해결
      • 순서 번호로 재조립
      • ACK 확인 응답 + 자동 재전송
      • 흐름 제어(Flow Control), 혼잡 제어
    • 헤더 크기: 20바이트
    • 사용 예: HTTP, HTTPS, FTP, SMTP (데이터 정확성 중요)
  • UDP (User Datagram Protocol)
    • 비연결성: 연결 설정 없이 즉시 데이터 전송
    • 신뢰성 미보장: 패킷 도착/순서 확인 없음
    • 빠르고 가벼움:
      • 연결 설정/확인 응답/재전송 없음
      • 헤더 크기 8바이트
    • 사용 예: 스트리밍, 라이브 방송, 게임 (실시간성 중요)
  • 3-Way Handshake (TCP 연결 수립)
    1. SYN: 클라이언트 → 서버 (연결 요청 + 초기 순서 번호) → SYN_SENT
    2. SYN+ACK: 서버 → 클라이언트 (요청 수락 + 서버 순서 번호 + ACK) →SYN_RECEIVED
    3. ACK: 클라이언트 → 서버 (확인 응답) → ESTABLISHED
  • 4-Way Handshake (TCP 연결 종료)
    1. FIN: 클라이언트 → 서버 (종료 요청) → FIN_WAIT_1
    2. ACK: 서버 → 클라이언트 (확인) → CLOSE_WAIT / FIN_WAIT_2
    3. FIN: 서버 → 클라이언트 (서버도 종료) → LAST_ACK
    4. ACK: 클라이언트 → 서버 (최종 확인) → TIME_WAIT (2MSL 대기) → CLOSED

식별자 및 규칙

  • URI vs URL
    • URI : URI는 자원의 위치(URL)이 될수도 있고 자원의 이름(URN)이 될 수도 있는 가장 상위의 개념(자원의 식별자)
    • URL : 자원의 위치를 식별하는 문자열(위치(Location))
  • Http 상태 코드
    • 클라이언트의 요청에 대한 서버의 처리 결과를 3자리 숫자로 나타낸 것으로, 5가지 클래스(1xx~5xx)로 분류됩니다. 2xx(성공)는 요청이 성공했음을, 4xx(클라이언트 오류)는 잘못된 요청을, 5xx(서버 오류)는 서버 문제를 나타내며, 3xx(리다이렉션)는 추가 동작이 필요함을 의미
    • 2XX (성공 - Successful): 요청이 성공적으로 처리됨
      • 200 OK: 요청 성공 (가장 일반적)
      • 201 Created: 요청이 성공하여 새로운 리소스가 생성됨
      • 204 No Content: 요청은 성공했으나, 응답 바디에 보낼 내용이 없음
    • 3XX (리다이렉션 - Redirection): 요청을 완료하려면 추가적인 행동이 필요함
      ◦ 301 Moved Permanently: 페이지가 영구적으로 이동함
      ◦ 304 Not Modified: 캐시를 사용해도 된다는 의미 (새로 고침 시 주로 발생)
    • 4XX (클라이언트 에러 - Client Error): 클라이언트의 요청이 잘못되어 서버가 처리할 수 없음
      ◦ 400 Bad Request: 잘못된 요청 (문법 오류 등)
      ◦ 401 Unauthorized: 인증이 필요함 (로그인 미비)
      ◦ 403 Forbidden: 서버가 요청을 거부함 (권한 없음)
      ◦ 404 Not Found: 요청한 리소스(페이지)를 찾을 수 없음
    • 5XX (서버 에러 - Server Error): 서버가 정상적인 요청을 처리하지 못함
      ◦ 500 Internal Server Error: 서버 내부 오류
      ◦ 502 Bad Gateway: 게이트웨이 서버가 백엔드 서버로부터 불량 응답을 받음
      ◦ 503 Service Unavailable: 서버가 일시적인 과부하 또는 유지보수로 인해 작동하지 않음
profile
BackEnd developer

0개의 댓글