카테고리 없음

[CS 면접] 네트워크 - 2

grulsuitg 2023. 5. 24. 22:03

보초님의 github에 있는 질문들을 보며 답변을 달아본 것입니다.

문제사항, 잘못된점 혹은 궁금한점이 있다면 댓글로 남겨주시면 감사하겠습니다.

이전 글을 읽지 않았다면 먼저 읽어보시면 좋습니다. 

→ 보러가기

 

[CS 면접] 네트워크 - 1

보초님의 github에 있는 질문들을 보며 답변을 달아본 것입니다. 문제사항, 잘못된점 혹은 궁금한점이 있다면 댓글로 남겨주시면 감사하겠습니다. 쿠키와 세션의 차이에 대해 설명해 주세요. 쿠

grulsuitg.tistory.com

 

 

웹소켓과 소켓 통신의 차이에 대해 설명해 주세요.

웹소켓

  • 단일 TCP 연결로 클라이언트와 서버 간 지속적인 통신을 허용합니다.
  • 요청 - 응답 패턴 없이 언제든지 메시지를 보낼 수 있습니다.
  • 웹브라우저, 다양한 장치 및 플랫폼에서 실행할는 웹 어플리케이션에서 사용할 수 있습니다.

소켓 통신

  • TCP/UDP 기반으로 클라이언트와 서버가 직접 네트워크 연결을 설정합니다.
  • 하위 수준에서 동작하여 바이트 스트림형식의 메시지를 전송합니다.
  • 브라우저 기반이 아니며 기타 다른 어플리케이션에서 사용가능합니다.
  • 클라이언트와 서버측 모두 소켓 구현이 필요합니다.

소켓과 포트의 차이가 무엇인가요?

소켓은 IP주소와 포트 번호의 조합으로 고유하게 식별되며 네트워크 통신을 위한 인터페이스입니다.

포트는 단일 장치내에서 실행되는 다른 프로그램들을 구별하는데 사용하는 식별자입니다.

여러 소켓이 있다고 할 때, 그 소켓의 포트 번호는 모두 다른가요?

소켓은 고유하게 식별되어야 하므로 동일 IP에 대해서는 각각의 소켓이 모두 다른 번호를 가지고 있어야 합니다.

HTTP/1.1과 HTTP/2의 차이점은 무엇인가요?

HTTP/1.1

  • 한번에 하나의 요청만 보낼 수있으며 요청 순서 대로 응답을 받아야 합니다.
  • 헤더는 일반 텍스트로 함께 보냅니다.
  • 서버는 명시적인 클라이언트 요청에만 응답할 수 있습니다.
  • 텍스트 기반 프로토콜을 사용합니다
  • 요청의 우선순위를 설정할 수 없습니다.

HTTP/2

  • 여러 요청 및 응답을 동시에 보내고 받을 수 있습니다.
  • 헤더 압축 알고리즘이 있습니다.
  • 클라이언트에 추가 리소스를 사전에 보낼 수 있습니다.
  • 바이너리 기반 프로토콜을 사용합니다.
  • 우선순위를 설정할 수 있습니다.

HOL Blocking에 대해 설명해 주세요.

Head of Line Blocking의 약자로 응답이 순차적으로 처리되는 HTTP/1.1 과 같은 프로토콜에서 발생할 수 있는 현상입니다. 앞선 요청의 응답을 받는데 시간이 오래걸려 후속 요청을 보내는데 대기가 생기는 현상을 의미합니다.

따라서 HTTP/2 에서는 다중 요청과 응답을 허용하여 후속 요청들이 앞선 요청의 응답을 기다리지 않을 수 있도록 하여 HOL Blocking 문제를 해결합니다.

HTTP/3.0의 주요 특징에 대해 설명해 주세요.

  • UDP 를 사용하여 향상된 성능을 제공합니다.
  • 응답 다중화를 지원합니다.
  • 연결 마이그레이션을 지원하여 세션을 전달할 수 있습니다.
  • 서버간의 안전한 통신을 보장합니다.

TCP와 UDP의 차이에 대해 설명해 주세요.

TCP

  • 연결지향성으로 연결이 설정되어야 데이터를 전달할 수 있습니다.
  • 올바른 순서로 오류없이 수신되도록 보장합니다.
  • 흐름제어, 혼잡제어를 제공합니다.
  • 데이터에 대한 신뢰를 할 수 있어야 하고 순서가 중요한 것들에 주로 사용됩니다.

UDP

  • 데이터를 보내기 전에 연결을 설정하지 않습니다.
  • 오류 없는 전송을 보장하지 않습니다.
  • 흐름제어, 혼잡제어를 제공하지 않습니다.
  • 응답시간이 중요한 시스템에 많이 사용됩니다.

왜 HTTP는 TCP를 사용하나요?

서버 - 클라이언트 모델 기반에 통신을 제공하는 HTTP 는 데이터의 무결성과 신뢰성이 중요합니다. 따라서 해당 기능을 제공하는 TCP를 사용합니다.

그렇다면, 왜 HTTP/3 에서는 UDP(QUIC)를 사용하나요? 위에서 언급한 UDP의 문제가 해결되었나요?

UDP의 특성에 맞게 설계된 혼잡 제어 메커니즘이 포함되어 있습니다. 또한 TCP에서 발생할 수 있는 HOL Blocking 과 같은 문제를 다중 요청 및 응답 을 지원하여 해결함으로 더 효율적이고 반응이 빠른 프로토콜을 제공할 수 있습니다.

본인이 새로운 통신 프로토콜을 TCP나 UDP를 구현한다고 하면, 어떤 기준으로 프로토콜을 선택하시겠어요?

사용 목적에 따라 프로토콜을 선택할 것 같습니다. 데이터의 신뢰성이 중요하다면 TCP를, 빠른 요청과 응답 처리가 중요하다면 UDP를 사용할 것 같습니다.

checksum이 무엇인가요?

checksum은 데이터에 오류가 생겼는지 확인할 수 있는 메커니즘입니다.

데이터를 전송할 때 특정 알고리즘으로 계산한 값을 checksum 비트와 함께 전송합니다. 수신된 데이터에 대해 동일한 계산을 수행하고 전달받은 checksum과 비교하여 일치하면 데이터가 오류 없이 전송되었음을 나타냅니다.

TCP와 UDP 중 어느 프로토콜이 Checksum을 수행할까요?

두 프로토콜 모두 Checksum을 사용합니다. 하지만 UDP 에서는 checksum 사용은 선택사항으로 checksum 필드가 0이면 사용하지 않는 것입니다.

그렇다면, Checksum을 통해 오류를 정정할 수 있나요?

오류를 수정할 수는 없습니다. 왜냐하면 전체 데이터에서 오류가 발생했는지 여부만 확인할 수 있기 때문에 오류가 어디서 어떻게 발생했는지는 확인할 수 없습니다.

TCP가 신뢰성을 보장하는 방법에 대해 설명해 주세요.

  • ACK 필드를 통해 데이터를 수신하였는지를 확인하는 요청 및 응답을 보냅니다.
  • 각 데이터에 고유한 시퀀스 번호를 할당하여 데이터를 올바른 순서로 전달할 수 있도록 합니다.
  • 흐름 제어 : 수신자가 수신할 수있는 데이터의 양을 나타내는 슬라이딩 윈도우 기능을 통해 흐름을 제어합니다.
  • 혼잡 제어 : 네트워크 정체 신호를 모니터링하여 네트워크 과부화를 방지합니다.
  • 오류 감지 : checksum 을 이용하여 데이터의 오류가 있는지 감지합니다.

TCP의 혼잡 제어 처리 방법에 대해 설명해 주세요.

혼잡 제어를 위해 TCP 는 다음과 같은 상태값들을 가지고 혼잡도를 제어합니다.

  • Slow Start : 연결이 처음 설정되거나 재전송이 발생하면 점진적으로 속도와 크기를 늘려나갑니다.
  • Congestion Avoidance : 전송 속도와 윈도우의 크기를 늘리다 정체가 감지되면 전송 속도를 줄입니다.
  • Congestion Detection : 패킷이 손실되거나 RTT가 임계값을 초과하면 전송속도를 줄입니다.
  • Fast Recoveray : 혼잡이 발생하면 윈도우의 크기를 줄여 혼잡에서 빠르게 복구할 수 있도록 합니다.

DHCP가 무엇인지 설명해 주세요

Dynamic Host Configuration Protocol의 약자로 네트워크와 관련된 설정들을 자동으로 구성할 수 있는 프로토콜입니다.

DHCP는 몇 계층 프로토콜인가요?

Application 계층에서 동작합니다. 응용 계층에서 동작함으로써 자동 네트워크 구성이 필요한 다양한 네트워크 장치 및 응용프로그램에서 활용할 수 있습니다.

DHCP는 어떻게 동작하나요?

  1. DHCP 서버 : 요청하는 장치에 할당할 수 있는 사용 가능한 IP 주소 풀을 보유합니다.
  2. DHCP 탐색 : 장치가 네트워크에 연결되면 브로드캐스트로 사용가능한 DHCP 서버를 탐색합니다.
  3. DHCP 제안 : 메시지를 수신한 서버는 사용가능한 네트워크 구성을 제안하여 응답합니다.
  4. DHCP 요청 : 클라이언트는 제안을 선택하여 요청메시지를 전송합니다.
  5. DHCP 승인 : 서버는 요청을 수신하고 승인 메시지로 응답합니다.
  6. IP 주소 임대 : 클라이언트는 제안받은 설정으로 네트워크를 구성합니다.
  7. 임대 갱신 : 임대가 만료되기 전 DHCP에 다시 연결하여 임대 갱신을 시도합니다.

DHCP에서 UDP를 사용하는 이유가 무엇인가요?

DHCP는 네트워크 초기화 중에 발생하기 때문에 빠르고 효율적으로 네트워크를 구성할 수 있어야 합니다. 이러한 목적이 UDP의 특성과 맞아 UDP를 사용합니다.

DHCP에서 IP주소 말고 추가로 제공해주는 정보가 있나요?

서브넷 마스크, 게이트웨이 등과 같이 네트워크 호스트에 대한 서비스 및 구성정보를 제공합니다.

DHCP의 유효기간은 얼마나 긴가요?

DHCP는 동적으로 네트워크를 구성하는 프로토콜로 사용 요청이 많은 곳에서는 짧은 시간으로 요청이 적은 곳에서는 긴 시간으로 유연하게 유효기간을 구성합니다.

 


출처