본문 바로가기
IT/Interview

20.10.12 면접 스터디

by YEON-DU 2020. 10. 12.
반응형

1. TCP & UDP

TCP와 UDP의 차이점은 무엇인가요?

TCP와 UDP 각각의 사용하는 서비스는 무엇인가요?

 

TCP와 UDP는 실제 데이터 단위를 받기 위해 IP를 사용하는 프로토콜이다.

TCP의 경우에는 연결형 서비스이고, 높은 신뢰성 갖고있다. UDP보다 속도가 느립니다. 그러다보니 연속성보다 신뢰성있는 전송이 중요할 때 사용한다. http, email 등에 사용된다.

 

UDP는 여러 컴퓨터를 거치지 않고 데이터를 주고 받을 컴퓨터끼리 직접 연결할 때 사용한다. 따라서 UDP는 목적지에 도달하지 않을 수도 있는 특성이 있어서 비신뢰적이고 안정적이지 않다. 그러나 TCP보다 속도가 매우 빠르고 편해서 데이터 유실이 일어나도 상관이 없는 스트리밍이나 화면 전송에 사용된다.

 

2. 로드밸런싱

서버에 많은 부하가 일어날 때 필요한 것은 무엇인가요?

로드밸런서에 문제가 생기면 어떻게 해야하나요?

로드밸런싱 방식에는 어떤 것들이 있나요?

 

로드밸런싱은 분산식 웹 서비스이다. 서버를 계층화 시켜서 여러 서버에 load를 balancing하는 것이다. 말 그대로 부하를 나누어서 웹 서버가 다운되지 않도록 만드는 목적을 가지고 있다.

 

로드 밸런서는 서버를 라운드 로빈, least connections, source 방식으로 선택한다.

CPU 스케줄링과 동일한 라운드 로빈 방식이 있고,

가장 적게 연결된 서버를 선택하는 방식,

그리소 사용자 IP를 해싱하여 분배하는 방식이 있다. Source 방식을 사용하면 특정 사용자가 항상 같은 서버로 연결되는 것이 보장된다.

 

로드 밸런서에 문제가 생기게 되면 서버에 큰 타격이 올 수 있으므로 로드 밸런서를 이중화 시켜 문제를 대비하여야 한다.

 

+ DNS를 라운드 로빈으로 설계하면 생길 수 있는 문제점?

https://d2.naver.com/helloworld/284659

 

3. 가상머신과 컨테이너의 차이

가상머신과 컨테이너의 차이점은 무엇인가요?

컨테이너의 장점과 단점?

 

둘 모두 물리적 하드웨어의 필요성을 없애고, 애플리케이션을 어디서든 실행 가능하도록 만드는 데에 있다.

VM은 하이퍼바이저와 게스트 os가 모두 포함되어야 하기때문에 많은 용량을 차지 한다. 또한 부팅 시간에도 시간이 걸린다.

컨테이너는 어플리케이션을 실행, 배포하는 과정이 가볍기 때문에 더 많은 어플리케이션을 구동시킬 수 있다.

 

도커는 컨테이너를 관리하는 가상환경 플랫폼이다. 또한 도커는 프로세스이다. 단 하나의 타깃 프로세스를 실행하기 위한 파일들의 집합이다.

 

가상 머신은 하드웨어 기반의 여러 게스트 운영체제이다. 하이퍼바이저를 통해 에물레이션된다.

컨테이너는 애플리케이션 수준의 구성이며 커널 하나를 공유하는 여러 가상 환경을 에뮬레이션한다.

 

가상머신은 가상 머신에 구축된 애플리케이션을 실행할 때 메모리 사용량이 필요 이상으로 많아져 가상 머신이 호스트에 필요한 리소스를 모두 사용할 수 있다.

컨테이너는 기존 가상화와 달리 컨테이너화된 애플리케이션은 완전한 가상머신보다 리소스를 더 적게 사용하고 호스트 메모리에 가해지는 부담을 줄일 수 있도록 운영 체제 환경을 공유한다.

 

4. 3-way-hand-shake, 4-way-hand-shake

3-way-hand-shake와 4-way-hand-shake에 대해 설명해주세요.

왜 2-way로 충분할 것 같은데, 3-way를 사용하나요?

4-way-hand-shake중 두 번째 FIN이후 남은 패킷이 전송되기까지 기다리는 과정을 무엇이라 하나요?

 

연결성립을 체크하기 위한 방식은 3way이고 연결해제를 체크하기 위한 방식은 4way이다.

 

3way

클라이언트는 서버에 SYN를 보낸다. 서버는 SYN를 받고 ACK를 보낸다. 클라이언트는 ACK를 받아서 확인한 ACK를 다시 보낸다.

 

4way

클라이언트는 서버에 FIN를 보낸다. 서버는 확인으로 ACK를 보낸다. 그리고 데이터를 모두 보낼 때까지 TIME_OUT이 된다. 데이터를 모두 보내면 서버는 클라이언트에 FIN 을 전송한다. 클라이언트는 FIN을 받고 확인한 ACK를 보낸다. 서버는 ACK를 받아서 소켓 연결을 close한다. 

 

SYN은 synchronize sequence number

ACK는 acknowledgement

 

 

 

반응형

'IT > Interview' 카테고리의 다른 글

20.10.20 면접 스터디  (0) 2020.10.26
20.10.16 면접 스터디  (0) 2020.10.16
20.10.09 면접 스터디  (0) 2020.10.09
20.10.06 면접 스터디  (0) 2020.10.09
20.10.02 면접 스터디  (0) 2020.10.04

댓글