[네트워크] 면접 예상 질문 & 답변

·2023년 4월 14일
0

1. 네트워크란?

: 물리적 전송매체를 사용하여 서로 연결된 장치 세트
-컴퓨터 네트워크는 하드웨어, 데이터 및 SW와 같은 정보 리소스를 통신하고 공유하기 위해 서로 연결된 컴퓨터 그룹
-네트워크에서 노드는 둘 이상의 네트워크를 연결하는데 사용됨

1-1. 네트워크 망의 종류

-LAN : 한 건물 또는 사무실 내의 호스트들 간에 연결된 소규모 네트워크
-WAN : LAN과 LAN을 연결하는 대규모 네트워크

2. Cast의 종류

-Unicast : 1:1 통신, 원하는 대상 하나를 정해서 통신
-Multicast : 1:N 통신, 원하는 대상 여러 명을 정해서 통신
-Broadcast : 1:all 통신, 내 의지와 상과없이 무조건 받아들여야 하는 통신

3. 회선, 대역폭이란?

: 전송되는 데이터를 허용할 수 있는 동시접속자 수

4. ISP란?

: Internet Service Provider, 인터넷 서비스 공급자로 다양한 회선 상품을 제공하며 기업마다 서비스가 다름

5. VPN이란?

: Virtual Private Network, 가설사설망으로 ISP에 정보를 넘겨주지 않고 익명성을 유지하여 인터넷에 접속

6. DSL이란?

: Digital Subscriber Line, 전화선을 이용한 인터넷 서비스, 현재는 잘 쓰이지 않음
-ADSL : 비대칭, 다운로드는 빠르고 업로드는 느림, 전화선에 모뎀과 마이크로 필터를 사용해서 인터넷에 연결, 전화국으로부터 거리가 멀어도 OK
-VDSL : 초고속,대칭/비대칭 모두 지원하며 ADSL처럼 전화선을 이용하나 속도가 훨씬 빠름. 전화국으로부터 거리가 멀면 안됨

7. FTTH란?

: Fiber TO The Home, 광통신,초고속 기가 인터넷, 집안까지 광케이블을 통해 인터넷을 제공하는 서비스

8. IP란?

: Internet Protocol Address, 컴퓨터 네트워크에서 기기들이 서로를 인식하고 통신하기 위해 사용하는 식별번호

9. 패킷이란?

: 네트워크 상에서 전송하는 데이터를 일정한 크기로 자른,작게 나눠진 데이터의 묶음 - 누구에게 어디로 무엇을 보내야 하는지에 대한 정보가 담겨있음, 안전성 때문에 나눠서 보냄

10. TCP/IP 프로토콜 4계층

-LINK 계층 : 물리적인 계층, LAN, WAN, MAN 과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역
-IP 계층 : 데이터 경로 설정, 특정한 규칙 없음, 오류 발생하면 다른 임의의 경로로 변경
-TCP/UDP(전송) 계층 : 데이터의 실제 송수신, IP 계층에서 발생한 문제를 해결
-APPLICATION 계층 : 서버와 클라이언트를 만드는 과정에서 프로그램의 성격에 따라 정한 데이터 송수신에 대한 약속(규칙)

10-1. 네트워크 애플리케이션의 역할

-TCP/IP SW에 데이터 전달할 때, 데이터를 받을 호스트의 주소인 IP주소와 포트번호도 함께 전달
-IP주소 : 네트워크에 연결된 기기를 식별하는 유일한 번호
-포트 번호 : 수신 측에서 동작하는 여러 애플리케이션 중 데이터를 수신할 애플리케이션을 식별하는 번호

11. TCP와 UCP의 특징과 차이점은?

TCP
: 연결지향형 전송규약
-흐름 중심 프로토콜, 통신을 주고받는 것을 중요시함
-중간에 패킷이 손실되는 경우 재전송을 통해(SYN-ACK handshaking), 신뢰성을 보장함(느림) - 대부분의 통신에서 사용됨, 특히 파일이나 데이터 전송 시에 사용
-데이터 경계 구분이 없음 (바이트 스트림 서비스)

UDP
: 비연결지향형 전송규약
-데이터 중심 프로토콜, 주고받는 통신보다 데이터를 일방적으로 보내는 것을 중요시함 - 데이터 전송의 신뢰성 보장 X, (빠름)
-P2P, 스트리밍, 전화에 사용

TCPUDP
연결지향형비연결지향형
세그먼트데이터그램
순서 보장, 느림순서 보장 X, 빠름
HTTP, 메일, 파일DNS, Broadcasting 헤더(8바이트) 추가하여 전송
헤더(20바이트) 추가하여 IP로: 포트번호, 데이터의 길이, 체크섬
: 포트번호, 순서번호, 인정 번호, 제어 비트

12. 3-Handshaking과 4-Handshaking의 과정은?

12-1. 3-Handshaking

: TCP에 쓰이는 연결 설정
-SYN/SYC : 통신 요청 데이터
-ACK : 응답 데이터
-SYN_RCV : 통신 요청 받음

12-2. 4-Handshaking

Client 상태전송 데이터Server상태
1CLOSE# 연결 XLISTEN
2CLOSE--SYN-> LISTEN
3CLOSESYN_RCV
4CLOSE<-ACK+SYN--SYN_RCV
5ESTABLISHED--ACK->SYN_RCV
6ESTABLISHED# 연결 성공ESTABLISHED

Client 상태전송 데이터Server 상태전송 데이터애플리케이션 상태
1ESTABLISHED# 연결중ESTABLISHED#프로세스 진행
2FIN_WAIT_1--FIN->ESTABLISHED-
3FIN_WAIT_1<-ACK--CLOSE_WAIT-
4FIN_WAIT_2CLOSE_WAIT--CLOSE()-># 프로세스 종료
5FIN_WAIT_2<-FIN--LAST_ACK
6TIME_WAIT--ACK->LAST_ACK
7CLOSED# 연결 XCLOSED

12-3. 비정상 종료

-CLOSE_WAIT 상태 : 애플리케이션에서 close()를 처리해주지 못하면, TCP 포트는 CLOSE_WAIT 상태로 계속 기다리게 된다.

CLOSE_WAIT 상태가 statement에 많아지게 되면, Hang이 걸려 더는 연결하지 못하는 경우가 발생, 여러 상황에 따라 close() 처리를 잘 해줘야 함

-FIN_WAIT_1 상태 : 상대방 측에 연결 종료를 요청했는데 ACK를 받지 못한 상태로 기다리는 것. 네트워크 및 방화벽의 문제일 수 있음 TIME OUT이 되면 자동으로 닫음

-FIN_WAIT_2 상태 : 클라이언트가 서버에 종료를 요청한 후 서버에서 ACK를 받았지만, FIN 패킷을 받지 못하고 기다리고 있는 상태, 서버 측에서 CLOSE를 처리하지 못하는 경우, TIME OUT이 되면 스스로 CLOSED 함

3-H / 네번째 줄에서, 클라이언트가 서버가 보낸 ACK+SYC를 받지 못하면?

A. 두 번째 줄에서 클라이언트는 서버로 SYC를 보내고 시간을 잰다. Timeout이 되기 전까지 ACK+SYC가 오지 않으면, 다시 SYC를 보내고 ACK+SYC 수신을 대기한다.

4-H / 서버가 마지막에 FIN을 보내는 이유?

서버가 아직 클라이언트에 보낼 데이터가 남아있을 경우 데이터를 다 전송하지도 못한 채 클라이언트에서 포트를 닫아버리게 되므로 서버 또한 종료될 준비가 되었다는 의미로 FIN을 보냄

4-H / 클라이언트가 마지막에 ACK를 굳이 보내는 이유?

서버가 보낸 FIN을 클라이언트가 받지 못하면 클라이언트는 FIN_WAIT_2 상태로 종료가 되지 못한 채 계속 기다려야 한다. 하지만 서버는 이미 포트를 닫고 더는 응답을 하지 않는 상태이기에 클라이언트는 불필요한 자원을 소모할 수 있음

HTTPS 환경에서의 3-H

-Client -> Server : SSL 정보 및 암호화방식, 무작위 바이트 문자열(A)
-Server -> Client : 인증서, 무작위 바이트 문자열(B)
-Client가 CA에 인증서 목록에 있는지 확인 후 있다면 공개키 받음
-Client -> Server : 무작위 바이트 문자열 A, B를 조합, 공개키로 암호화하여 전송
-Server에서 비밀키로 받은 무작위 바이트 문자열 조합을 복호화, 이것으로 session key를 만듦 - 해당 session key를 가지고 암호화한 데이터를 주고 받음

13. OSI 7 Layer란?

: ISO(국제표준화기구)에서 네트워크 통신 과정을 7단계로 정의한 국제통신표준규약
1) 물리 : 전송하는데 필요한 기능 제공 (통신 케이블, 허브)
2) 데이터링크 : 송/수신 확인, MAC Address로 통신 (브릿지, 스위치)
3) 네트워크 : IP를 기반으로 데이터(패킷) 전송 경로 결정 (라우팅)
4) 전송 : TCP/UDP 포트 정보를 참조해 데이터의 전송
5) 세션 : 통신 시스템 사용자 간의 연결을 유지 및 설정
6) 표현 : 세션 계층 간의 주고받는 인터페이스를 일관성 있게 제공
7) 응용 : 사용자가 네트워크에 접근할 수 있도록 서비스를 제공

14. 허브와 리피터를 비교

공통점
-물리계층에서 전기적인 신호를 증폭시켜 전송 거리를 연장하는 장치
-네트워크 신호가 연결된 모든 PC에 전달되기 때문에 연결된 장치가 많을수록 부하가 심해짐

차이점
허브 : 패킷 모니터링과 멀티 포트를 지원하여 문제가 생긴 곳을 고립시킬 수 있음

15. 브릿지와 스위치 비교

공통점
-데이터링크계층에서 전송 거리를 연장하는 장치

차이점
브릿지 : SW적으로 프레임을 다시 만들어 전송해 더 느림
스위치 : 성능에 따라 L2,L3,L4,L7로 구분됨, 하드웨어적으로 처리해 더 빠름

16. ARP (Address Resolution Protocol) 과 RARP를 비교

공통점
-네트워크 계층에서 사용되는 주소 결정 프로토콜

차이점
ARP : IP주소에서 MAC 주소를 알아냄
RARP : MAC 주소에서 IP 주소를 알아냄

-상대방 MAC 주소를 모를 때, IP와 브로드 캐스팅 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크에 전송하여 이를 수신한 호스트가 자신의 MAC 주소를 반송하는
-이때 ARP 캐시라 불리는 메모리에 테이블 형태로 저장하여, 패킷을 전송할 때에 다시 사용됨

17. 게이트웨이란?

: 외부로 연결되는 통로, 로컬망 라우터와 외부망 라우터 간의 통로를 말함

18. 로드 밸런싱이란?

: 분산식 웹 서비스로 여러 서버에 부하(Load)를 나누어 줌, Round Robin, Least Connection, Response Time, Hash 등의 기법이 있음

1) Round Robin : 각 서버에 session을 순서대로 연결하는 방식, 모든 클라이언트를 똑같이 취급하고, 서버별 처리량을 기억하고 있어야 함

2) Least Connextion : 클라이언트와 서버별 연결된 connection 수를 고려해 가장 적은 서버에 연결하는 방식

19. 주요 포트 넘버

프로토콜포트 번호내용
HTTP80웹을 지원하기 위한 프로토콜. GET,PUT 같은 프로토콜 기능을 포함해서 웹 서버에게 어떠한 Content를 요청하고 또 웹 서버로 정보를 보냄
FTP20,21TCP를 활용해 대량의 파일을 송신하고 수신하는 프로토콜
TFTP69UDP를 사용하는 파일 전송 프로토콜. 라우터나 스위치 등의 네트워크 장비의 IOS 이미지를 업로드, 다운로드할 떄 사용
Telenet23원격지에 있는 장비로 표준 터미널 에뮬레이션 기능을 제공함. 네트워크 장비에서는 텔넷을 통해 원격지에서 장비를 설정
SMTP25컴퓨터 네트워크를 통해 전자 메일을 전송하는 프로토콜. 받을 때는 POP3 활용
SNMP161네트워크 장비를 모니터링하고 제어하기 위해 사용하는 프로토콜로 네트워크 장애 관리, 장비 설정, 통계 성능 및 보안 등을 관리
DNS53도메인 주소를 IP ADDRESS로 변경, 모든 퍼블릭 IP주소와 호스트 이름은 DNS에 저장되고 나중에 해당 IP 주소로 변환

20. 프로토콜이란?

: 컴퓨터 간 데이터 통신을 원할히 하기 위해 규정한 약속,신호 송신의 순서(handshaking)나 데이터 표현법, 오류 검출법 등을 정한 것

20-1. HTTP 프로토콜이란?

: 하이퍼텍스트를 전송하는 규약
-하이퍼텍스트 : 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트
-비연결성 프로토콜, REQUEST에 대한 RESPONSE만 전달되고 연결 유지 X

20-2. 비연결성을 해결하기 위한 방법

-Cookie / Session : Cookie에 클라이언트에 대한 정보를 저장해뒀다가 사용하거나 Session을 등록해서 유지하는 방식
-Session Storage / Local Storage : HTML5에서 제공, 세션 스토리지는 세션이 유지되고 있을 때 까지 브라우저 내부 저장소에 저장하고 세션이 끊기면 자동으로 없어짐. 로컬 스토리지는 사용자나 프론트엔드 내부적으로 삭제를 하지 않는 이상 영구적으로 저장 됨

20-3. HTTPS 프로토콜이란?

: HTTP + SSL, HTTP로 통신하는 소켓을 SSL or TLS라는 프로토콜로 대체한 것 (새로운 별개의 프로토콜이 아니라 연결 방식이 달라진 것)
-HTTP는 TCP와 직접 통신하지만, HTTPS에서는 SSL과 통신하고 SSL이 TCP와 통신하는 방식
-SSL을 사용하기 때문에 암호화와 증명서, 안전성 보호를 이용할 수 있음
-공통키 암호화 방식과 공개키 암호화 방식을 혼합한 하이브리드 암호 시스템 사용, 공동키를 공개 키 암호화 방식으로 교환하고 이후 통신은 공통키 암호를 사용하는 방식

20-4. HTTP Request - GET과 POST의 차이점

-GET : 서버에 데이터를 전달할 때 Url Query를 사용해야 하므로 보안에 취약함 / 데이터를 받는 용도로 적합

-POST : 데이터를 Header에 넣어서 전송하므로 헤더를 열어보지 않으면 확인할 수 없음 / DB 내용을 갱신하거나 서버로 데이터를 전송할 때 적합

-SSL을 이용한 HTTPS 프로토콜로 데이터 전송을 암호화하면 보안성을 보완할 수 있음. URL 뒤에 붙는 쿼리스트링 내용 모두 암호화되어 전송되기 때문에 보안성을 강화함

20-5. Restful API에서의 URL과 일반적인 HTTP에서의 URL의 차이는?

-일반적인 HTTP URL : 기능에 중점을 두어 설계 ex) 회원 정보 호출 - '/getUser'

  • Restful API : 자원에 중점을 두고 설계 ex) '/user' 하위에 기능에 대한 구분을 추가, POST, GET, DELETE, PUT 등의 HTTP 메서드를 사용

21. Javascript에서 HTTP request를 동기로 호출하고 값을 처리하면 발생하는 문제점

-Request에 대한 Response 응답시간이 길어질 수도 있으므로 절차 지향적으로 짜놓은 코드가 제대로 동작하지 않을 수 있음

21-1. 해결방안

-CallBack 함수를 만들어 호출하면 해당 Request에 대한 응답이 온 후에 이후에 그 값을 가지고 다시 다른 함수를 실행함

21-2. CallBack 함수의 문제점, 해결방안

-callback 함수를 이용한 비동기처리를 많이 하면 '콜백헬'이라 불리는 가독성이 매우 떨어지는 코드가 됨. 가독성 저하는 유지보수에 걸림돌이 되므로, Promise나 Async/Await을 사용함. Promise에서는 요청 후 비동기 처리하는 부분은 then절에 추가하면 되고 Async/Await는 Await이 then절의 역할

21-3. Promise vs Async/Await

-Promise : Async/Await가 Promise로 구성되어 있으므로, Promise를 잘 모르면 Async/Await도 잘 쓸 수 없음. Promise로 다양한 비동기 처리를 경험해보고 다양한 오류를 처리해 봐야 함

-Async : try & catch를 이용해서 예외처리를 할 수 있고, 간단한 비동기 처리 경우에는 가독성이 뛰어남

22. 프록시 서버 기능이란?

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

22-1. 페이지의 내용과 데이터의 값이 계속해서 바뀌면?

-캐시 만료기한을 설정함
-프록시 서버라도 최초로 받는 요청에는 실제 서버로 요청을 보내야 하므로 그때 만료기한을 설정해서 프록시 서버로 보내면 됨
-프록시 서버로 사용자가 요청했을 때 요청한 시각이 프록시에서 다운로드 받은 시간에서 만료기한 이내이면 프록시에서 다운로드를 할 것이고, 그렇지 않다면 다시 실제 서버로 요청을 하게 됨

23. AOT와 JIT 설명

-JIT : Just In Time Compile, 브라우저에서 템플릿 컴파일을 진행하기 때문에 느림, JIT 컴파일러를 포함해야 하므로 용량도 큼

-AOT : Ahead Of Time Compile, 빌드 시 템플릿을 먼저 컴파일을 함, 빌드에는 시간이 더 소요 되지만 브라우저에서는 컴파일이 실행되지 않기 때문에 상대적으로 빠름

-개발 시에는 JIT 방식으로 빠르게 빌드해서 변경사항을 확인하고, 실제 서비스 배포 시에는 AOT 방식으로 빌드해서 전체 용량 감소 및 컴파일 시간을 없앰

24. Big Endian과 Little Endian

-엔디안 : 컴퓨터 메모리에 연속된 바이트를 배열하는 방법

Big EndianLittle Endian
최상위 바이트가 앞에 오는 경우최하위 바이트가 앞에 오는 경우
사람이 읽고 쓰는 방법과 같아서 디버깅이 쉬움디버깅이 어려움
수가 커지면 메모리에 저장된 데이터를 Little Endian으로 옮겨야 함수가 커지더라도 오버헤드가 발생하지 않음

25. 가상 DOM이란?

-가상돔 : 추상화한 돔
-가상돔을 사용하지 않고 div 태그 1000개에 CSS 효과가 추가된다면? 천개의 돔 노드들을 일일히 검색하고 업데이트 해야 함

-탐색비용과 업데이트 비용을 좀 더 줄이기 위해, 추상화한 돔에서 탐색과 업데이트를 한 후 변경사항만 실제 돔에 반영
-어떻게 돔을 추상화할 것인지, 언제 돔에 변경사항을 적용할지에 대한 알고리즘이 핵심

26. 방화벽이란?

-방화벽 : 컴퓨터 네트워크를 무단 액세스로부터 보호하는 데 사용되는 네트워크 보안 시스템

-외부로부터의 악의적인 액세스를 방지, 외부 사용자에게 제한된 액세스 권한을 부여하기 위해 방화벽을 구축함

-하드웨어 장치, SW 프로그램, 또는 이 둘의 조합으로 구성됨

-방화벽을 통해 라우팅되는 모든 메시지는 특정 보안 기준에 따라 검사되며 기준을 충족하는 메시지는 네트워크를 통해 성공적으로 통과하거나 해당 메시지가 차단됨

-다른 컴퓨터 SW와 마찬가지로 설치할 수 있으며, 나중에 필요에 따라 사용자가 정의하고 액세스 및 보안 기능을 일부 제어할 수 있음

26-1. Windows 방화벽은?

운영 체제와 함께 제공되는 Microsoft Windows 응용 프로그램, 바이러스, 웜 등을 방지하는데 도음을 줌

출처
https://hyonee.tistory.com/136

0개의 댓글