ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ CS 기술면접 ] 네트워크 예상질문 모음 2 !
    공부 !/Computer Science 2022. 5. 22. 01:33
    반응형

    네트워크 질문 모음

    # Http version & http, https & URL

    TCP/IP에서 TCP와 IP의 역할에 대해 설명해주세요
    TCP 는 신뢰성 있고 무결성을 보장하는 연결을 통해 데이터를 안전하게 전달해주는 전송 프로토콜이고, IP 는 패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 프로토콜이다.

     TCP와 UDP의 차이점에 대해 설명해주세요
    TCP 는 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 흐름제어 및 혼잡제어를 제공하고, 전이중, 점대점 방식이라서 멀티캐스팅이나 브로드캐스팅을 지원하지 않는다. 높은 신뢰성을 보장하고 UDP보다 속도가 느리다.

    UDP 는 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형 서비스로 데이터그램 방식을 제공하고 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다. 또한, UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다. 신뢰성이 낮고 TCP보다 속도가 빠르다.

     TCP handshake 에서 연결 성립과 연결 해제의 과정에 대해 설명해주세요
    연결 성립은 3 way handshake이고, 다음과 같은 과정을 거친다.
    1. 클라이언트가 서버에게 SYN 패킷을 보낸다 (sequence : x)
    2. 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보낸다 (sequence : y, ACK : x + 1)
    3. 클라이언트는 서버의 응답은 ACK(x+1)와 SYN(y) 패킷을 받고, ACK(y+1)를 서버로 보낸다

    연결 해제는 4 way handshake이고, 다음과 같은 과정을 거친다
    1. 클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보낸다
    2. 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보낸다 (이때 서버에서 모든 데이터를 보내기 위해 CLOSE_WAIT 상태가 된다)
    3. 데이터를 모두 보냈다면, 연결이 종료되었다는 FIN 플래그를 클라이언트에게 보낸다
    4. 클라이언트는 FIN을 받고, 확인했다는 ACK를 서버에게 보낸다 (아직 클라이언트가 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT을 통해 기다린다) 서버는 ACK를 받은 이후 소켓을 닫는다. TIME_WAIT 시간이 끝나면 클라이언트도 닫는다.

     

    # cookie & session, session & token & jwt, DNS


     쿠키와 세션의 차이점과 쿠키와 세션 각각의 특징을 설명해주세요
    가장 큰 차이는 사용자의 정보가 저장되는 위치입니다 쿠키는 클라이언트, 세션은 서버의 자원을 사용합니다
    세션은 보안이 뛰어나다는 점과 쿠키는 요청 속도가 빠르다는 특징이 있습니다

     JWT 는 무엇이고 장단점에 대해 설명해주세요
    Json web token 의 약자로 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰입니다 보안성 쿠키를 전달하지 않아도 되어 취약점이 사라진다는 장점이 있지만 JWT 토큰이 길어질수록 대역폭 낭비가 심해진다는 단점이 있습니다

     DNS 를 사용하는 이유에 대해서 설명해주세요
    인터넷은 서버를 유일하게 구분할 수 있는 IP 주소를 사용하게 되는데 이를 일일히 외우지 않아도 DNS 를 사용하여 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 용이하게 하기 때문에 사용합니다

     

    # HTTP Cache & Load Balancing & OSI 


     Cache-Control 필드의 no-store와 no-cache의 차이점을 설명해 주세요. 
    no-cache 는 캐시를 저장하되 캐시가 유효한지 매번 서버에 질의하는 것이고
    no-store 는 아예 캐시를 저장하지 않는 것입니다

     로드 밸런싱의 개념을 설명하고 늘어나는 서버 부하를 처리하기 위한 2가지 방법을 설명해주세요. 
    로드 밸런싱이란 컴퓨터 네트워크의 기술로 둘 혹은 셋이상의 cpu 저장장치 같은 컴퓨터 자원들에게 부하를
    나누어 할당하는 것을 의미합니다 서버 부하를 처리하기 위한 첫번째 방법으로는 기존에 갖고 있는 성능을 업그레이드하는  scale-up 방법과 두번째 방법으로는 여러대의 서버를 더 증설하는 scale-out 방법이 있습니다

     네트워크 계층과 전송 계층이 수행하는 역할에 대해 설명해주세요. 또, 1~4계층에서 데이터가 전송되는 형태가 어떻게 변화하는지 설명해주세요.
    네트워크 계층는 여러 노드를 거칠때마다 경로를 찾아주는 역할을 수행하고 전송계층은 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있도록 하며 상위 계층이 데이터전달의 유효성 및 효율성을 고려하지 않아도 되는 역할을 수행합니다
    물리계층에서 데이터는 0과 1의 비트로 전송되고 데이터링크계층에서 데이터는 프레임으로 전송되며
    네트워크계층에서 데이터는 패킷, 전송계층에서 데이터는 세그먼트로 전송됩니다


    반응형

    댓글

Designed by SooJI