[네트워크] 질문모음

함민혁·2023년 9월 19일
0

cs면접준비

목록 보기
43/43

OSI 7계층에 대해서 설명해보세요.

국제 표준화 기구에서 정의한 표준으로 컴퓨터 네트워크에서 데이터 통신의 과정을 일곱 개의 계층으로 나눈 개념 모델입니다. 각각의 계층은 특정한 기능을 수행하고, 데이터 흐름을 조정하며, 통신에 필요한 서비스를 제공합니다. 7계층은 최하위부터 최상위 계층까지 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 이루어져있습니다.

OSI를 7계층으로 나눈 이유가 뭔가요?

OSI를 7계층으로 나눔으로써 새로운 기술이나 서비스가 새로 도입되었을때 유연성과 확장성을 제공합니다. 새로운 기능이나 서비스는 해당하는 계층에 추가가 되고, 기존 계층의 수정 없이 독립적으로 구현이 가능하게 됩니다.

OSI 7계층의 각 계층에 대해 아는대로 설명해주세요

최하위 계층인 물리 계층부터 최상위 계층인 응용 계층 순서로 설명드리겠습니다. 물리 계층은 7계층 중 최하위 계층으로 데이터를 전기 신호로 바꿔주는 역할을 하며, 데이터의 단위는 비트입니다. 다음 데이터링크 계층은 데이터의 물리적인 전송과 흐름 제어를 담당하고 있으며, 데이터의 단위는 프레임입니다. 다음 네트워크 계층은 패킷의 경로 선택 및 라우팅을 담당합니다. 그다음 전송 계층은 양 종단 간의 신뢰성 있는 정보를 전달하며, TCP와 UDP 프로토콜이 이 계층에서 동작합니다. 데이터의 단위는 세그먼트입니다. 그리고 세션 계층은 연결설정을 담당하고 표현 계층은 데이터 암호화,복호화를 담당합니다. 마지막으로 최상위 계층인 응용 계층은 사용자에게 통신을 위한 서비스를 제공하는 인터페이스 역할을 합니다.

TCP/IP 계층이란 무엇인가요? 이는 OSI 7계층과 무엇이 다른가요?

TCP/IP 계층은 OSI 모델을 기반으로 상업적으로 이용될 수 있도록 단순화한 모델입니다. 한마디로 네트워크 전송 시 데이터 표준을 정리한 것을 OSI 7계층, 그리고 이 이론을 실제로 상업적, 실무적으로 사용하는 인터넷 표준이 TCP/IP 계층이라고 생각하시면 될것 같습니다.

라우팅이란 무엇인가요?

데이터를 목적지까지 전달하기 위한 모든 일련의 과정을 말합니다. 데이터가 전달되는 과정에서 여러 네트워크들을 통과해야하는 경우가 생기는데, 이 네트워크들의 연결을 담당하고 있는 라우팅 장비에게 데이터의 목적지가 어디인지 확인하고 빠르고 정확하게 길을 찾아 전달해주는 과정이 라우팅입니다.

정적 라우팅과 동적 라우팅의 차이에 대해 설명해보세요

정적 라우팅은 수동으로 라우팅 테이블을 만드는 방법을 말합니다. 라우터 간의 데이터 교환이 없어 대역폭 절약과, 보안에는 강하지만 정해진 경로에 장애가 발생할 경우 네트워크 전체에 장애가 발생할 수 있습니다. 반면 동적 라우팅은 접하는 라우터들끼리 라우팅 정보를 서로 교환하여 라우팅 테이블을 자동으로 만듭니다. 대역폭 소비가 크지만, 자동으로 라우팅 테이블을 만들고 갱신까지 하기때문에 규모가 큰 네트워크에 적합합니다.

라우터와 스위치의 차이점에 대해 설명해보세요

라우터는 네트워크 계층에 속하며, 여러 네트워크를 연결하는 장치로 IP주소가 사용됩니다. 스위치는 데이터 링크 계츠에 속하며, 여러 장치를 동시 연결하는 장치로 mac주소가 사용됩니다. 라우터 같은 경우는 목적지가 불분명한 데이터가 들어오면 폐기시키지만, 쉬위치는 브로드케스트를 통해 해결한다는 차이점이 있습니다.

TCP/IP 흐름제어가 필요한 이유에 대해서 설명해보세요.

TCP/IP 프로토콜에서 흐름제어가 필요한 이유는 효율적인 데이터 전송을 보장하기 위함입니다. 예를 들어 송신자가 데이터를 빠른 속도로 보내고, 수신자는 느린 속도로 데이터를 처리하는 경우, 수신자의 버퍼가 넘칠 수 있습니다. 이럴 때 TCP 흐름 제어를 통해 송신자가 더이상 데이터를 못보내게 해서 데이터 전송 속도를 조절합니다.

흐름제어 방법 2가지에 대해서 설명해보세요

stop and wait과 sliding window 방법이 있습니다. Stop and wait은 데이터 전송 후 매번 ack을 통해 잘 도착했음을 확인하고 다음 데이터를 보내는 방식입니다. Sliding window는 버퍼가 사용되어서 window크기만큼 ack 없이 데이터를 보낼 수 있는 방식입니다.

혼잡제어란 무엇인가요?

만약에 한 라우터에 데이터가 몰릴 경우, 그 하나의 라우터는 모든 데이터를 다 처리할 수가 없데 되고 그러면 송신자는 계속해서 전송을 하게되고 결국 오버플로우나 데이터 손실이 발생하게 되는 상황을 혼잡 현상이라고 하는데, 이러한 혼잡을 피하기 위해서 송신측에서 보내는 데이터의 전송속도를 강제로 줄이는데 이것을 혼잡 제어라고 합니다.

혼잡제어와 흐름제어의 차이점에 대해서 설명해보세요

흐름제어는 송신측과 수신측 사이의 전송속도를 다루는 반면, 혼잡제어는 호스트와 라우터를 포함한 보다 넓은 관점에서 전송 문제를 다룹니다. 혼잡제어가 좀 더 큰 개념이라고 보시면 될 것 같습니다.

혼잡제어 방법 2가지에 대해 설명해보세요

후..

TCP/IP란 무엇인가요?

컴퓨터 네트워크에서 데이터 통신을 위한 프로토콜 스택 중 하나입니다. TCP와 IP 이 두가지 프로토콜로 구성되어있습니다. 간단히 TCP는 신뢰성있는 연결, IP는 신속한 연결을 해준다고 생각하면 될 것 같습니다.

TCP와 UDP의 차이점을 설명해보세요.

TCP는 연결지향형 프로토콜이고 UDP는 비연결형 프로토콜입니다. TCP는 신뢰성을 중시하지만 이로 인해 속도는 UDP에 비해 좀 느립니다. 반면 UDP는 신뢰성보다는 단순한 데이터 전송을 목적으로 하여, 신뢰성은 낮지만 속도는 빠릅니다.

3way handshake와 4wayhandshake에 대해 설명해보세요

TCP는 신뢰성을 중시하는 연결 지향형 프로코롤입니다. TCP는 3way로 연결을 설정하고 4way로 연결을 해제합니다. 3way부터 간단히 말씀드리면 클라이언트가 서버에게 연결 요청을 보냅니다. 그리고 서버는 그 요청을 받고 연결을 수락할 준비를 하고 그 사실을 클라이언트에게 알립니다. 클라이언트는 서버의 응답을 받고 연결을 확정합니다. 다음 연결을 해제할때 사용하는 4way는 마찬가지로 연결을 종료한다는 메시지를 주고 받습니다. 하지만 이 과정에서 서버는 클라이언트에게 받은 연결 종료 요청에 대한 응답메세지를 보내는 것 외에 서버의 모든 데이터를 보낸 후 연결을 종료하는 fin패킷도 보냅니다. 그리하여 연결 종료할때는 한번의 통신이 더 일어나는 것입니다.

HTTP 프로토콜에 대해 설명해보세요

HTTP란 하이퍼텍스트 이동 프로토콜의 줄임말입니다. 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약이라고 생각하면 될것같습니다. 이전상태를 기억하지 않는 stateless와 connectionless 특징을 가지고 있습니다.

stateless와 connectionless의 명확한 개념에 대해서 설명해주세요.

먼저 stateless는 서버가 클라이언트의 상태를 저장하지 않는 것을 말합니다. 이를 통해 서버의 확장성을 높일 수 있습니다. connectionless는 비연결성을 말하며, 통신 프로토콜이 연결을 설정한 후 이를 유지하지 않고 데이터를 주고 받는 것을 의미합니다. 각 패킷은 독립적으로 처리되며, 연결을 설정하고 해제하는 오버헤드가 없습니다.

HTTP와 HTTPS의 차이점에 대해 설명해보세요

HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출될 수 있는 보안 이슈가 존재합니다. 이런 보안문제를 해결해주는 프로토콜이 HTTPS입니다. 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용합니다.

http 1.0과 1.1이후의 차이점은 무엇인가요?

기존 1.0버전은 메서드 종류가 3가지 뿐이고, 1.1부터는 메서드의 종류가 7가지입니다. HTTP 1.0은 하나의 요청을 보내면 요청에 대한 응답이 돌아올때까지 기다려야했지만 1.1은 파이프라이닝이 추가되어 앞에 보냈던 요청에 대한 응답을 기다리지 않고 계속 요청을 보낼 수 있다는 게 가장 큰 차이점입니다.

대칭키 암호와와 비대칭키 암호화에 대해서 설명해보세요.

대칭키는 클라이언트와 서버가 동일한 키를 사용해 암호화와 복호화를 진행합니다. 그래서 키가 노출되면 굉장히 위험하지만 연산속도는 빠릅니다. 반대로 비대칭키는 1개의 쌍으로 구성된 공개키와 개인키를 사용합니다. 키가 노출되어도 비교적 안전하지만 연산속도가 느립니다.

HTTP 메소드의 종류와 역할에 대해 설명해보세요

HTTP메소드는 GET, POST, PUT, DELETE, HEAD, CONNECT, OPTIONS 이렇게 총 7가지가 있습니다.
get은 데이터 조회, post는 데이터 생성, put은 데이터 수정 그리고 delete는 데이터 삭제를 할때 사용합니다. head는 서버가 정상적으로 작동되고 있는지 확인할 때 사용되고, connect는 ssl 통신을 할때 사용하며, options는 서버가 지원하는 메소드를 확인할때 사용합니다.

HTTPS 동작 방식에 대해서 설명해보세요.

https는 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 모두 제공합니다. https는 처음 연결 성립 시에는 비대칭키를 사용하고, 이후에는 빠른 연산 속도를 위해 대칭키를 사용합니다.

GET과 POST의 차이점을 설명해보세요

GET은 데이터 조회할 떄 사용하는 메소드입니다. 데이터를 파라미터를 통해 전송하기 때문에 HTTP 요청 메시지의 BODY부분이 비어있습니다. 반면 POST는 데이터를 생성할때 쓰는 메소드로 데이터 전송 시 HTTP 요청 메세지의 BODY 부분에 데이터를 저장하여 전송합니다.

로드밸런싱이 필요한 이유는 무엇인가요?

로드 밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술입니다. 증가하는 트래픽에 대처하기 위한 방법으로 scale-up 방식과 scale-out 방식이 있는데, 이 중 scale-out의 경우에는 여러 대의 서버로 트래픽을 균등하게 분산하기 위해 로드 밸런싱이 반드시 필요합니다.

L4로드밸런서와 L7로드밸런서의 차이에 대해서 설명해보세요

L4로드밸런서는 전송 계층에서 부하를 분산하는 방식으로 IP주소, 포트번호, MAC주소 등에 따라 트래픽을 나누고 분산처리합니다. 반면면 L7로드밸런서는 애플리케이션 계층에서 부하를 분산하는 방식으로, HTTP 헤더, 쿠키와 같은 사용자의 요청을 기준으로 트래픽을 분산처리합니다.

Blocking & Non-Blocking I/O의 차이점에 대해 설명해보세요

웹 서버의 구조에 대해 설명해보세요.

www, 월드 와이드 웹에는 html, url, http라는 세가지 기술이 사용됩니다.
html은 www를 통해 볼 수 있는 문서를 만들 때 사용하는 프로그래밍 언어이고, url은 인터넷에서 파일 위치를 지정하기 위해 기술된 주소이다.

DNS란 무엇인가요?

DNS는 도메인 주소를 IP 주소로 변환해 주는 시스템입니다. 저희가 접하고 있는 구글 닷컴이나 네이버 주소 같은 것들이 도메인 주소라고 생각하시면 될 것 같습니다. DNS는 그런 도메인 주소들을 IP 주소로 변환해줍니다.

네트워크 애플리케이션 구조 2가지에 대해서 설명해보세요

클라이언트 서버 구조와 P2P 구조가 있습니다. 클라이언트 서버 구조는 요청을 보내고 응답을 기다리는 클라이언트와 받은 요청에 대한 응답 결과를 보내주는 서버로 이루어져 있습니다. p2p 구조는 서버에 의존하지 않고 호스트끼리 직접 통신하여 호스트 각각이 서버와 클라이언트 둘 다 될 수 있습니다.

IP와 PORT의 차이점이 무엇인가요?

IP는 목적지 서버를 찾는 것이고, 그 목적지 서버 안에서 애플리케이션을 구분하는게 포트라고 생각하시면 됩니다. 8080,8090 같이 ip주소 뒤에 붙는 것들이 port번호들입니다.

인터넷 계층에서 이미 데이터 전송의 역할을 맡았는데 트랜스포트 계층은 왜 필요한건가요?

IP는 데이터 전송만 담당할 뿐, 순서 등을 고려하지 않는 비신뢰성 연결인데, 트랜스포트 계층에서는 데이터 분실을 방지하고 순서를 보장해주는 등 신뢰성있는 연결을 보장해주기 떄문에 필요합니다.

IP주소는 무엇이며, 어떤 기능을 하나요?

IP 주소는 인터넷 프로토콜에서 사용되는 주소로, 네트워크 상에서 호스트를 식별하고, 목적지 서버를 찾는데 사용됩니다. IP는 비신뢰성, 비연결형인 최선형 전송 서비스입니다.

IP와 mac 주소의 차이점에 대해서 설명해보세요.

mac주소는 네트워크 인터페이스 계층에서 사용된는 전송 주소로 물리적으로 할당된 고유 주소입니다. 로컬네트워크에서 기기들을 구분하는데 사용됩니다. 반면 IP 주소는 인터넷 프토로콜에서 사용되는 논리적인 주소로 네트워크 상에서 호스트들을 구분하고 통신하는데 사용됩니다.

쿠키와 세션의 차이점에 대해 설명해보세요

쿠키는 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일입니다. HTTP에서 클라이언트의 상태 정보를 PC에 저장했다가 필요할때 꺼내서 사용 가능합니다. 세션은 일정 시간동안 같은 사용자로부터 들어오는 요청들을 하나의 상태로 보고 그 상태를 저장하는 기술입니다.쿠키는 클라이언트 측에 저장되는 반명 세션은 웹서버에 저장됩니다.

www.naver.com에 접속할때 생기는 과정에 대해 설명해보세요

먼저 사용ㅇ자가 브라우저에 URL을 입력합니다. 그러면 DNS 서버에서 도메인 이름을 통해 서버의 IP 주소를 찾아냅니다. 그리고 찾아낸 IP주소로 웹 서버에 3way handshake로 연결을 설정합니다. 그러면 이제 클라이언트는 웹 서버로 HTTP 요청메시지를 보내서 웹서버로부터 응답메시지를 받습니다. 도착한 응답메시지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력됩니다.

세션 방식과 토큰 방식의 차이점에 대해서 설명해보세요.

세션 방식의 경우 서버에 클라이언트 상태를 유지하지만, 토큰 방식은 클라이언트에 토큰이 저장되어 있습니다. 그래서 세션 방식은 보안에는 강하지만 DB 과부하가 올 수 있고, 반대로 토큰 방식은 서버 부담이 줄어들지만, 토큰이 한번 탈취 당하면 토큰 만료 전까지 보안에는 조금 취약하다는 특징이 있습니다. 그럼에도 토큰이 확장성이 뛰어나 대부분 토큰 방식을 많이 사용합니다.

인증과 인가에 대해서 설명해주새요

인증은 쉽게 말해 로그인입니다. 클라이언트가 자기 자신이라고 주장하고 있는 사용자가 맞는지를 검증하는 과정입니다. 인가는 유저의 요청에 대한 권한을 확인하고 허가 해주는것입니다.

profile
Born to be FE developer 🧑🏻‍💻

0개의 댓글