CS ‐ 면접을 위한 Network - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 주소와 송수신지 유형에 따른 전송 방식에 대해서 설명해보세요.⭐

  • 송수신지 유형별 전송 방식
    • 유니캐스트(Unicast) : 하나 수신지에 메시지를 전송한다.(기본적인 일대일)
    • 브로드캐스트(Broadcast) : 네트워크상의 모든 호스트에게 전송한다.(불특정 다수)
    • 멀티캐스트(Multicast) : 네트워크 내의 동일 그룹에 속한 호스트에게만 전송한다.(특정 다수)
    • 애니캐스트(Anycast) : 네트워크 내의 동일 그룹에 속한 호스트 중 가장 가까운 호스트에게 전송한다.

📚 프로토콜(Protocol)에 대해서 설명해보세요.⭐

  • 프로토콜(Protocol)
    • 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법
    • IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다.
    • HTTPS는 HTTP에 비해 보안상 더 안전한 프로토콜이다.
    • TCP는 UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜이다.

📚 네트워크 참조 모델(OSI 7 Layer & TCP/IP 4 Layer)에 대해서 설명해보세요.⭐

image

  • 물리 계층 : 데이터를 전기 신호로 변환하는 계층
  • 데이터링크 계층 : 네트워크 내 주변 장치 간 정보를 올바르게 주고받기 위한 계층
  • 네트워크 계층 : 메시지를 수신지까지 전달하는 계층
  • 전송 계층 : 신뢰성 & 안정성있는 전송을 해야 할 때 필요한 계층
  • 세션 계층 : 세션을 관리하는 계층
  • 표현 계층 : 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나 압축, 암호화
  • 응용 계층 : 사용자가 이용하는 다양한 네트워크 서비스

  • 네트워크 엑세스 계층 : OSI 7 Layer의 물리 계층, 데이터 링크 계층과 유사
  • 인터넷 계층 : OSI 7 Layer의 네트워크 계층과 유사
  • 전송 계층 : OSI 7 Layer의 전송 계층과 유사
  • 응용 계층 : OSI 7 Layer의 세션 계층, 표현 계층, 응용 계층과 유사

📚 PDU(Protocol Data Unit)

  • PDU는 각 계층에서 송수신되는 메시지의 단위
    • 물리 계층 : 비트(bit)
    • 데이터링크 계층 : 프레임(frame)
    • 네트워크 계층 : 패킷(packet)
    • 전송 계층 : 세그먼트(segment)
    • 세션 계층 : 데이터(data)
    • 표현 계층 : 데이터(data)
    • 응용 계층 : 데이터(data)

📚 네트워크 계층의 IP에 대해서 설명해보세요.⭐

  • IP는 주소 지정과 단편화를 지원한다.
  • 클라이언트 - 서버 간 IP 프로토콜을 사용해 패킷을 주고 받는다.
  • 그러나 IP 프로토콜의 한계는 다음과 같다.
    • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 그대로 전송한다는 점
    • 비신뢰성 : 중간에 패킷이 소실될 우려가 있고 패킷이 순서대로 가지 않을수도 있다는 점
    • 프로그램 구분이 어렵다 : 애플리케이션을 구분할 방법이 없다는 점

📚 포트(Port)에 대해 설명해보세요.

  • IP의 한계(애플리케이션 구분이 어렵다는 점)를 극복하기 위해 포트라는 개념이 등장했다.
  • Well Known Port : 0 ~ 1023번 까지의 포트(잘 알려진 포트)
  • HTTP(80), HTTPS(443)
  • IP주소:Port번호 형식으로 특정 애플리케이션 프로세스를 식별한다.

📚 전송 계층의 TCP와 UDP에 대해서 설명해보세요.⭐

  • TCP : 신뢰할 수 있는 통신을 위한 연결형 프로토콜
  • UDP : TCP보다 신뢰성은 떨어지지만 비교적 빠른 통신이 가능한 비연결형 프로토콜
  • TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만 속도가 비교적 느리다. TCP는 상태를 유지하는 Stateful 프로토콜이다.
  • UDP는 비연결형 서비스로 3-way handshaking 과정을 사용하지 않기 때문에 신뢰성이 다소 떨어지지만 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다. UDP는 상태를 유지하지 않는 Stateless 프로토콜이다.

📚 TCP 3-way handshaking과 TCP 4-way handshaking에 대해서 설명해주세요.⭐

  • 3-way handshaking은 TCP 연결 설정 과정으로, 클라이언트가 SYN 전송 -> 서버가 SYN+ACK 응답 -> 클라이언트가 ACK로 확인하는 단계입니다.
  • 4-way handshaking은 TCP 연결 종료 과정으로, 클라이언트가 FIN 전송 -> 서버가 ACK 응답 -> 서버가 FIN 전송 -> 클라이언트가 ACK로 확인하는 단계입니다.

다른 이유: 4-way handshaking은 한쪽이 연결 종료를 원할 때 다른 쪽이 아직 전송할 데이터가 남을 수 있어서 비대칭적으로 진행되며 양방향 연결을 각각 독립적으로 종료하기 위해 4단계가 필요한 것입니다.

image image

📚 응용 계층의 HTTP에 대해서 설명해보세요.⭐

  • HTTP는 요청 - 응답 기반 프로토콜이다.
  • HTTP는 미디어 독립적 프로토콜이다.
  • HTTP는 상태를 유지하지 않는(Stateless) 프로토콜이다.
  • HTTP는 지속 연결을 지원하는 프로토콜이다.

📚 DNS에 대해서 설명해보세요.⭐

  • IP 주소만으로는 송수신지를 특정하는 것은 어렵기 때문에 DNS가 필요하다.
  • DNS에서 IP주소를 도메인 네임에 대응시켜준다.

📚 HTTP와 HTTPS 차이점에 대해서 설명해보세요.⭐

  • HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에 HTTP로 중요한 정보를 주고 받으면 제3자에 의해 조회될 수 있다.
  • HTTPS는 SSL과 통신하고 SSL이 TCP와 통신함으로써 암호화와 증명서, 안전성 보호를 이용할 수 있다.

📚 www.naver.com에 접속할 때 발생하는 웹 브라우저 요청 흐름에 대해서 설명해보세요.⭐

image

  • 사용자가 웹 브라우저에 방문하고자 하는 URL을 입력한다.
  • DNS 서버에 도메인 네임에 대응되는 서버 주소를 질의한다.
  • 찾은 서버 주소로 웹 서버에 TCP 3-way handshaking로 연결을 수립한다.
  • 클라이언트는 웹 서버로 HTTP 요청 메시지는 보낸다.
  • 웹 서버는 클라이언트에게 HTTP 응답 메시지를 보낸다.
  • 도착한 HTTP 응답 메시지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력된다.

📚 HTTP Method에 대해서 설명해보세요.⭐

  • GET : 데이터 조회
  • POST : 요청 데이터 처리
  • PUT : 자원 대체
  • PATCH : 자원을 부분적으로 수정
  • DELETE : 데이터 삭제

📚 쿠키와 세션에 대해 설명해보세요.⭐

  • 쿠키는 클라이언트 PC에 저장된다. HTTP에서 클라이언트 상태 정보를 PC에 저장했다가 필요시 정보를 참조하거나 재사용할 수 있다.
    • 쿠키는 서버에서 생성되어 클라이언트 측에 저장되는 데이터로, 상태를 유지하지 않는 HTTP 프로토콜을 보완하는 수단이다.
    • 기본적으로 <이름, 값> 쌍의 형태를 가지고 추가로 여러가지 속성을 가질 수 있다.
  • 세션은 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다.
    • 세션은 클라이언트 측에 저장되는 것이 아니라 서버 측에 저장된다.
⚠️ **GitHub.com Fallback** ⚠️