EnjoyCSStudy / CS-Knowledge-Source

0 stars 0 forks source link

240102 Network Interview Question #8

Open skydreamer21 opened 9 months ago

skydreamer21 commented 9 months ago

네트워크 면접 질문 올려주세요!

skydreamer21 commented 9 months ago

이전 질문들

skydreamer21 commented 9 months ago

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

BaeYoungSuk commented 9 months ago

TCP와 UDP의 차이에 대해 설명해주세요.

rt3310 commented 9 months ago

NAT에 대해 설명해주세요

rt3310 commented 9 months ago

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

HTTP는 클라이언트와 서버 간 통신을 위한 프로토콜입니다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답합니다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환합니다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술입니다. HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리는 HTTPS는 HTTP의 더 안전한 버전으로 HTTP에 데이터 암호화가 추가된 프로토콜입니다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다.

TCP와 UDP의 차이에 대해 설명해주세요.

TCP는 신뢰성 있는 데이터 전송을 지원하는 연결지향형 프로토콜입니다. 일반적으로 IP와 같이 사용되는데 IP는 패킷 전달 여부를 보증하지 않기 때문에, 데이터 전송을 담당하고 TCP는 패킷을 추적하고 관리하는 역할을 합니다. TCP는 연결지향형 프로토콜이기 때문에 3-way handshake라는 과정을 통해 연결 후 통신을 시작합니다. UDP는 비연결형 프로토콜로, TCP와 달리 연결하는 과정을 거치지 않고 일방적으로 데이터를 전달합니다. 또한 TCP 처럼 혼잡 제어를 하지 않기 때문에 TCP 보다 전송 속도가 더 빠릅니다. 하지만 데이터 전송을 보장하지 않기 때문에 패킷 손실이 발생할 수 있습니다. 또 스스로 속도 제어를 할 수 없기 때문에 한 회선에서 UDP를 다수가 사용하면 대역폭이 점유당해 다른 사람들이 통신을 못하는 상황이 빚어질 수 있습니다. 때문에 이에 대한 관리가 필요합니다. UDP는 전송 속도가 중요한 영상, 실시간 스트리밍 서비스, 온라인 게임의 서버-클라이언트 통신 등에 사용됩니다.

NAT에 대해 설명해주세요

NAT(network address translation)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말합니다. NAT를 이용하는 이유는 대개 사설 네트워크(Private Network)에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다.

BaeYoungSuk commented 9 months ago

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

HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜입니다. 반면에 HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜입니다.

TCP와 UDP의 차이에 대해 설명해주세요.

TCP는 연결 지향적 프로토콜입니다. 프로그램 간에 데이터를 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해줍니다. 반면 UDP는 비연결형 프로토콜입니다. 보내는 쪽에서 일방적으로 데이터를 전달하며, 신뢰성보다는 연속성 있는 전송이 필요할 때 사용하는 프로토콜입니다.

NAT에 대해 설명해주세요.

NAT이란 IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받게하는 기술입니다. IP주소를 절약하고 보안을 강화할 수 있다는 장점이 있습니다.

soun997 commented 9 months ago

죄송합니다 오늘 밤 안으로 꼭 질문이랑 올리겠습니다ㅜㅜ...

soun997 commented 9 months ago

HTTP 상태코드를 반환하는 이유에 대해 알고 계신가요?

skydreamer21 commented 9 months ago

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

HTTP는 Web 상에서 정보를 주고 받을 때 쓰는 프로토콜로 서버/클라이언트 구조 및 Request/Response 구조를 활용합니다.

HTTPS는 HTTP에 SSL 계층을 더하여 보안성을 추가한 프로토콜입니다. HTTP의 정보 전달은 단순한 문자열로 이루어지기 때문에 누구나 쉽게 해당 정보에 접근할 수 있어 보안에 취약합니다.

조금 더 구체적으로 SSL 계층에서는 제공하는 서비스를 신뢰할 수 있다는 의미인 CA의 인증서와 대칭키, 비대칭키를 활용한 서버와 클라이언트의 정보전달로 보안을 강화합니다.

이렇게 HTTPS를 사용한 통신에서는 중간에 가로챈 데이터를 읽어도 사람이 알아볼 수 없는 무의미한 문자열로 이루어져 있어 정보를 가로챈다고 해도 사용하기 어렵습니다.


TCP와 UDP의 차이에 대해 설명해주세요.

TCP와 UDP는 모두 OSI 7 Layer에서 4번째 계층인 Transfer Layer에서 쓰이는 프로토콜로 사용하는 목적에 차이가 있습니다.

먼저 TCP의 대표적인 특징으로는 신뢰성이 있습니다. TCP를 통해 전달된 데이터에 대해서는 순서, 손실 등에 대해 걱정할 필요가 없습니다. 따라서 많은 web 상의 신뢰성이 필요한 모든 통신이 TCP 통신을 씁니다.

이에 반해 UDP의 대표적인 특징은 비연결형의 빠른 통신입니다. TCP와 다르게 HandShake 과정이 없어 TCP에서 발생할 수 있는 지연을 줄일 수 있기 때문에 빠르게 데이터를 교환할 수 있습니다. 하지만 전달하는 데이터가 100% 올바로 전달된다고 보장할 수는 없습니다. 따라서 이러한 특징으로 인해 UDP는 실시간성이 강조되는 스트리밍 서비스 등에 이용되고 있습니다.


NAT에 대해 설명해주세요.

Public Network와 Private Network 간의 IP 변환을 의미합니다. Private Network는 부족해지는 IP를 해결하기 위한 수단이자 내부 사용자의 IP를 보호하기 위한 용도로 쓰입니다. 따라서 Private Network 밖의 사용자는 해당 Private Network에게 할당된 Public IP 밖에 알지 못하기 때문에 Private Network 로 들어가는 과정에서 특정 사용자의 IP로의 변환이 필요하고 이를 NAT이 담당합니다.


HTTP 상태코드를 반환하는 이유에 대해 알고 계신가요?.

HTTP 상태코드는 Web 간 통신의 모든 주체자들에게 요청한 정보의 상태를 알려주는 인터페이스로서 역할을 합니다. 다양한 상태가 있을 수 있는 데이터의 상태에 표준화된 코드를 부여함으로써 어떤 사람이 봐도 같은 의미로 해석할 수 있습니다.

대표적으로는 2XX 는 요청에 대한 성공, 3XX은 리다이렉트, 4XX은 잘못된 요청, 5XX는 서버 에러 의 의미를 가지고 있습니다.