Network 면접 예상문제

이고은·2021년 10월 6일
0

네트워크

목록 보기
7/7
post-thumbnail

TCP통신과 UDP통신을 각각 설명해주세요

TCP와 UDP 모두 송신자의 프로세스와 수신자의 프로세스를 연결하는 통신 서비스를 제공하는 Transport Layer의 프로토콜

TCP

  • TCP는 연결 지향형 프로토콜로 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다. 가상 회선 방식을 사용하여 흐름/혼잡 제어 기능이 있습니다. UDP에 비해 높은 신뢰성을 보장하고 속도가 느립니다.
    (흐름제어는 수신자의 버퍼 오버플로우를 막는 것, 혼잡 제어는 네트워크가 너무 혼잡해지는 것을 막는 것)

  • 서버와 클라이언트는 소켓을 기반으로 1대1로 연결되고 스트림 전송으로 전송 데이터의 크기가 무제한이다.

ex) SMTP, HTTP

UDP

  • 반면 UDP는 비연결 지향형 프로토콜로 정보를 보내거나 받는다는 신호절차를 거치지않고 체크섬으로 최소한의 에러만 체크한다. TCP보다 신뢰성이 낮고 속도가 더 빠르다.

  • 소켓 대신 IP를 기반으로 데이터를 전송하여 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다. 데이터그램(메세지) 단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.

ex) DNS, RIP

3Way Handshake와 4Way handshake를 각각 설명해주세요

TCP의 연결 시 3Way Handshake가 일어나고 연결 종료 시 4Way Handshake가 일어난다.

3Way Handshake

  1. client에서 server에 요청을 위해 S(Seq 넘버)는 랜덤한 수 N, A(Ack 넘버)는 0으로 지정하여 SYN 패킷을 보냅니다.

  2. server에서 client의 요청에 응답하여 S는 랜덤한 수 M, A는 N+1으로 지정하여 SYN + ACK flag를 지정하여 패킷을 보냅니다.

  3. client에서 S는 N+1, A는 M+1로 지정하여 ACK 패킷을 보내고 ACK를 받은 서버는 ESTABLISHED 상태로 변경됩니다.

4Way Handshake

  1. 클라이언트가 서버에게 FIN을 보낸 후, FIN_WAIT 1상태로 대기한다.

  2. FIN을 받은 서버는 CLOSE_WAIT로 변경하고, 응답으로 ACK를 보낸다. ACK를 받은 클라이언트는 FIN_WAIT2로 상태를 변경합니다. 서버는 해당 포트에 연결되어 있는 애플리케이션에게 CLOSE()를 요청합니다.

  3. 서버의 애플리케이션이 종료되고 서버는 FIN을 클라이언트에게 보낸 후 상태를 LAST_ACK으로 변경합니다.

  4. FIN_WAIT 2 상태에서 FIN을 받은 클라이언트는 ACK을 보낸 후 TIME_WAIT로 변경합니다. 최종 ACK을 받은 서버는 CLOSED로 상태를 변경하고 클라이언트도 일정 시간이 지나면 CLOSED로 상태를 변경합니다.

HTTP 프로토콜에서 GET과 POST 방식의 차이를 설명해주세요

GET

  • GET 은 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드이다. 예를들면 게시판의 게시물을 조회할 때 쓸 수 있다.

  • GET을 통한 요청은 URL 주소 끝에 쿼리 스트링 (query string)으로 포함되어서 파라미터에 다 노출되어 버린다.

POST

  • 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용 되는 메서드이다. 예를 들면 게시판에 게시글을 작성할 때 사용된다.

  • POST는 전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 보낸다. URI에 직접적으로 공개되지는 않기 때문에 보안상 더 좋지만, 데이터를 암호화하지 않으면 body의 데이터도 안전하지 않으므로 HTTPS를 사용한다.

DNS서버의 관점에서 www.naver.com이라고 검색했을 때 일어나는 일을 설명해주세요

이거 중간고사에서 틀린 문제인데..

대칭키 vs 공개키

자신만 가지고 있는 개인키를 가지고 있고, 공개키로
동일한 키 하나로 암호화/복호화를 진행하여 빠르고 안전한다.

HTTP 특징과 관련하여 cookie를 사용하는 이유

  • 비상태 프로토콜
  • 쿠키는 로컬에 저장을 한다.
  • 쿠키로 사용자에 대한 정보를 얻을 수 있다.

OSI 모델과 protocol stack에서는 사용하는 것은 protocol stack을 사용한다.

OSI 7 계층을 나눈이유는?

계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.
흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고,
7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.

실제로는 protocol stack을 사용하지만 설명하기가 편하기 때문에 OSI 모델을 사용합니다.

HTTP에서 비지속 연결과 지속 연결을 설명해주세요

: HTTP 1.0과 1.1의 차이
HTTP 1.1이 되면서 지속 연결이 default가 되었다.

encapsulation, decapsulation을 설명해주세요

소켓이 무엇으로 이루어져 있는가?

소스 IP, 소스 port, 목적지 IP, 목적지 port, 프로토콜

profile
MLOps Engineer가 되고싶은 ML과 DevOps에 관심이 많은 컴공생입니다👩🏻‍💻

0개의 댓글