네트워크 면접질문


Q1.TCP와 UDP에 대해서 설명해주세요.

TCP의 특징

  1. 연결형 서비스
  2. 가상회선 방식으로 패킷을 교환한다.
  3. 전송 순서를 보장
  4. 수신여부를 확인한다.
  5. 1대1 통신이다.
  6. 신뢰성이 높다
  7. 속도는 상대적으로 UDP에 비해 느리다.
  8. 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
  9. 흐름제어 및 혼잡제어를 제공.

Q) 흐름제어(Flow Control)와 혼잡제어(Congestion Control)이란?

흐름제어 는 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 것입니다. 예를 들어 송신하는 곳에서 감당이 안되게 데이터를 빠르게 많이 보내면 수신자에서 문제가 발생하기 때문입니다.

혼잡제어 는 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것입니다. 만약 정보의 소통량이 과다하면

패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막습니다.

UDP의 특징

  1. 비연결형 서비스이다.
  2. 데이터그램 방식으로 패킷 교환
  3. 전송 순서가 바뀔 수 있다.
  4. 수신 여부를 확인하지 않는다.
  5. 1대1 or 1대N or N대N 통신이다.
  6. 신뢰성이 낮다.
  7. 속도가 상대적으로 TCP에 비해 빠르다

Q2. GET과 POST의 차이

GET

GET서버로부터 정보를 조회하기 위해 설계된 메소드입니다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송 합니다.

쿼리스트링 이란?

URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 쿼리스트링이라고 부릅니다. 만약, 요청 파라미터가 여러 개이면 &로 연결합니다.

GET은 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있습니다.

  • js, css, 이미지 같은 정적 컨텐츠는 데이터양이 크고, 변경될 일이 적어서 반복해서 동일한 요청을 보낼 필요가 없습니다. 정적 컨텐츠를 요청하고 나면 브라우저에서는 요청을 캐시해두고, 동일한 요청이 발생할 때 서버로 요청을 보내지 않고 캐시된 데이터를 사용합니다. 그래서 프론트엔드 개발을 하다보면 정적 컨텐츠가 캐시돼 컨텐츠를 변경해도 내용이 바뀌지 않는 경우가 종종 발생합니다. 이 때는 브라우저의 캐시를 지워주면 다시 컨텐츠를 조회하기 위해 서버로 요청을 보내게 됩니다.

POST

POST리소스를 생성/변경하기 위해 설계되었기 때문에 GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다. HTTP 메세지의 Body는 길이의 제한없이 데이터를 전송 할 수 있습니다.

그래서 POST 요청은 GET과 달리 대용량 데이터를 전송 할 수 있습니다. 이처럼 POST는 데이터가 Body로 전송되고 내용이 눈에 보이지 않아 GET보다 보안적인 면에서 안전 하다고 생각할 수 있지만, POST 요청도 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해 전송 해야 합니다.

Q3. www.example.com에 접속하는 과정 설명

  1. 호스트 네임을 통해 DNS에서 IP주소를 받아온다.
  2. IP주소를 통해 서버와 커넥션을 맺는다.
  3. 서버는 받은 요청에 따라 이를 처리하고 브라우저가 볼 수 있는 HTML을 구성해 브라우저에게 준다.
  4. 브라우저는 HTML을 해석해 화면에 띄운다.

Q4. DHCP란?

Dynamic Host Configuration Protocol

DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜.

네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜

-DHCP 장점

PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능하고, IP를 자동으로 할당해주기 때문에 IP 충돌을 막을 수 있습니다.

-DHCP 단점

DHCP 서버에 의존되기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않습니다.

Q5. SSL 통신과정 설명

Q6. http2.0이란?

  • 기존 HTTP/1.x 버전의 성능향상에 초점을 맞춘 프로토콜

  • HTTP 메시지 전송 방식의변화
    • 바이너리 프레이밍 계층 사용
      • 파싱, 전송속도 증가, 오류발생 가능성 감소
  • 스트림을통한 양방향 전송을 통해 요청과 응답 멀티플렉싱이 가능
    • Head of Line Blocking 해결
  • Stream Prioritization
    • 리소스간 우선 순위를 설정 가능.
  • 서버 푸시 가능.
  • Header 압축. 헤더의 크기를 줄여 페이지 로드시간 감소.

Q7. 프록시 서버의 기능

클라이언트가 프록시 서버를 통해서 다른 네트워크 서비스에 간접적으로 접근을 할 수 있게 하는 것을 말한다. 프록시 서버는 요청된 내용들을 캐시에 저장을하고 다음에 같은 요청이 들어온다면 캐시에 저장된 정보를 제공함으로써 전송시간을 줄일 수 있다.

Q8. unicast, multicast, broadcast 설명

  • 유니캐스트(Unicast) : 1 대 1
    • 정보를 전송하기 위한 프레임에 자신의 MAC 주소와 목적지의 MAC 주소를 첨부하여 전송하는 방식을 말한다.
    • tcp
  • 멀티 캐스트(Multicast) : 1 대 다
    • 네트워크에 연결되어 있는 시스템중 일부에게만 정보를 전송하는 것.
    • udp
  • 브로드 캐스트(Broadcast) : 1 대 다
    • 로컬 네트워크에 연결되어 있는 모든 시스템에게 프레임을 보내는 방식.
    • 통신하고자 하는 시스템의 MAC주소를 알지못하는 경우, 네트워크에 있는 모든 시스템에게 알리는 경우, 라우터끼리 정보를 교환하거나 새로운 라우터를 찾는 경우에 이용이 된다.
    • udp

Reference

  • https://mangkyu.tistory.com/15

  • https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/



on Network, 네트워크, Interview, 면접