-
[ 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의 비트로 전송되고 데이터링크계층에서 데이터는 프레임으로 전송되며
네트워크계층에서 데이터는 패킷, 전송계층에서 데이터는 세그먼트로 전송됩니다반응형'공부 ! > Computer Science' 카테고리의 다른 글
[Design Pattern] Template Method (0) 2022.05.26 [Design Pattern] MVC (0) 2022.05.26 [ CS 기술면접 ] 네트워크 예상질문 모음 1 ! (0) 2022.05.22 [ CS 기술면접 ] 데이터베이스 예상질문 모음 ! (0) 2022.05.22 [ CS 기술면접 ] 알고리즘 예상질문 모음 ! (0) 2022.05.22