기술 정리 & CS/기술면접 대비

[기술면접 대비] Network

yubi5050 2022. 10. 25. 17:56

네트워크 계층 구조 (OSI 7계층, TCP/IP 5계층 등)

👉 OSI 7 계층 이란?

두 호스트가 네트워크를 통해 데이터를 전달하면서 수행되는 일련의 프로토콜을 의미

응용->표현->세션->전송->네트워크->데이터링크->물리 로 수행됨

  • 응용 계층 : 응용 서비스를 통해 최초 데이터를 생산
  • 표현 계층 : 시스템 간의 형식을 변환 하며 암호화 복호화, 인코딩-디코딩 등을 수행 (SSL 수행)
  • 세션 계층 : 양 끝단 연결 기기에 대한 세션 관리 (TCP/IP 세션을 만들고 없애는 책임)
  • 전송 계층 : TCP/UDP 프로토콜을 통해 세션을 유지하는 사용자와의 데이터 통신 보장
  • 네트워크 계층 : 위 계층에서 완성된 데이터-Header 조합을 패킷 단위로 목적지(IP주소) 까지 라우팅 역할 수행
  • 데이터 링크 계층 : 전송되는 데이터의 무손실 보장을 위한 오류 검출, 재전송 등 (랜카드 MAC 주소 연결)
  • 물리 계층 : 네트워크의 디지털 신호 변환 작업 및 전달, 하드웨어 구성 (단위 Bit)

 

👉 TCP/IP 5 계층 이란?

OSI 7계층을 좀더 줄여 5구조로 표현한 것

  • 애플리케이션 계층 : FTP, HTTP, SSH, SMTP - 전자메일, DNS - 도메인 주소의 IP 변환
  • 전송 계층 : TCP/UDP 프로토콜을 통해 세션을 유지하는 사용자와의 데이터 통신 보장
  • 네트워크 계층 : 위 계층에서 완성된 데이터-Header 조합을 패킷 단위로 목적지(IP주소) 까지 라우팅 역할 수행
  • 데이터 링크 계층 : 전송되는 데이터의 무손실 보장을 위한 오류 검출, 재전송 등 (랜카드 MAC 주소 연결)
  • 물리 계층 : 네트워크의 디지털 신호 변환 작업 및 전달, 하드웨어 구성 (단위 Bit)

 

👉 계층 간 데이터 송수신 과정은?

보내는 요청이 애플리케이션 계층 ~ 링크 계층을 거쳐 캡슐화 => 링크 계층 ~ 애플리케이션 계층을 거쳐 비캡슐화

애플리케이션 계층 : 데이터
전송 계층 : TCP 헤더 + 데이터
인터넷 계층 : IP 헤더 + TCP 헤더 + 데이터
링크 계층 : 프레임 헤더 + IP 헤더 + TCP 헤더 + 데이터

 

그림 출처:도서 '면접을 위한 CS 전공지식 노트'

 

👉 데이터 캡슐화 (Encapsulation) 란?

어떤 네트워크를 통과하고 해석하는 과정에서 전송 데이터, 제어 정보를 캡슐화/역캡슐화 하는 것

 

👉 PDU (Protocol Data Unit) 비교

네트워크의 한 계층에서 다른 계층으로 데이터가 전달 될 때의 단위로 "PDU = 헤더(header) + 데이터(payload)" 구성

  • 애플리케이션 계층 (Application, Presentation, Session) : 데이터 메시지
  • 전송 계층 : 세그먼트 (TCP), 데이터그램(UDP)
  • 네트워크 계층 : 패킷
  • 데이터 링크 계층 : 프레임(Frame)
  • 물리 계층 : bit (비트)

 

👉 인터넷 주소창에 URL (www.naver.com) 을 입력하면 어떻게 되나요?

짧은 문장 : 사용자가 브라우저에 도메인 네임을 입력하게 되면 캐싱, DNS, 라우팅, ARP, 브라우저 렌더링의 순서를 거쳐 화면이 나타나게 됩니다. 또한 이 과정에서 데이터와 제어 정보의 캡슐화-비캡슐화를 거쳐 데이터가 송수신 됩니다.

 

(1) 브라우저의 주소창 입력 요청시 먼저 캐싱 여부를 확인

(2) 브라우저 단 or 프록시 서버 단에 캐시 없을시, DNS 조회 진행

(3) DNS 조회를 통해 브라우저가 요청한 도메인의 IP를 알게됨. (IP로 바꿔주는 쿼리 작업을 거침)

(4) IP 주소를 바탕으로 라우팅을 거쳐 게이트웨이를 통과하며 패킷 전달

(5) ARP 작업을 통해 IP에 대한 MAC 주소(고유 네트워크 하드웨어 주소) 조회 (BroadCasting 및 Unicast 방식)

(6) 브라우저의 TCP 3-way handshaking을 통해 목적지와 연결하고

(7) HTTP 요청/응답을 통해 브라우저 창을 렌더링

 

기타 정보

  • DNS가 입력시 ISP 서버에서 DNS 정보를 해석, ISP 서버의 Top-level에서 부터 sub DNS Server 등 까지 IP 주소 획득
  • IP주소 획득 후 HTTP Request 메시지를 작성 => OS의 프로토콜 스택에 메시지 전송 의뢰
  • LAN에 제어정보를 붙인 패킷을 LAN 어댑터로 넘김 => LAN 어댑터는 전기신호로 변환하여 LAN 케이블로 송출
  • 송신한 패킷이 허브, 스위치, 라우터를 경유하여 프로바이더 ISP 로 전달
  • 패킷은 많은 엑세스 회선을 통해서 POP에 거쳐 인터넷 핵심부로 진입
  • 많은 고속 라우터들 사이로 패킷이 상대방 서버에 도달
  • 서버측의 LAN에 도착하면 방화벽에 도착하여 이상 없는지 테스트를 받음
  • 캐시서버에 응답할 데이터가 있는지 확인하고 없으면 웹 서버 전달
  • 웹서버는 WAS를 통해 응답 메시지를 만들어 다시 클라이언트에게 전송 

 

참고블로그

 

인터넷 주소창에 URL을 입력 후 화면에 출력되는 과정

인터넷 주소창에 naver.com 을 입력하고 Enter키를 눌렀을 때 일어나는 과정들을 알아보자. 1. 브라우저의 URL 해석/파싱 크롬 주소창에 www.naver.com을 입력하고 엔터를 눌렀을 때, 가장 먼저 일어나는

1-7171771.tistory.com

 

👉 Loopback IP는 어떻게 동작하나요?

DNS를 바탕으로 IP주소를 찾고, Loopback(로컬호스트)가 확인되면 패킷을 외부로 전송하지 않고, 자신이 수신 한 것처럼 동작 하여 랜더링한다.

 

TCP, UDP 차이

👉 TCP vs UDP 차이

TCP

  • 연결형 통신방식으로 상대방의 수신여부를 확인, 속도는 비교적 느리지만 신뢰성이 보장
  • 흐름 제어 : 송수신자 간의 전달 속도 조절, 너무 많이 보내면 buffer 오버플로우 발생
  • 혼잡 제어 : 네트워크 내 패킷 수가 과도하게 증가하는 현상 방지 (네트워크 내 메시지 100개 까지 지키자!)

 

UDP 

  • 비연결형 통신방식으로 상대방의 수신여부를 따로 확인 X

 

Case 1. Live Streaming 을 구현 한다고 하면 TCP, UDP 중 어느쪽에 더 적합할까?

  • UDP (TCP는 패킷 전송 실패시 재 요청을 해야 되므로 성능이 떨어질 수 있음)

 

Case 2. TCP 속도가 더 느린 이유는?

  • 전송 완료 확인(신뢰성) + 흐름 제어 + 혼잡 제어 기능 등 수행하기 때문

 

웹 캐시 & 프록시(Proxy Server)

👉 웹 캐시

Browser 캐시 : Browser 로컬 저장소의 - Cache Storage에 정적 자원(과거 웹페이지) 저장

프록시 웹 캐시 : 클라이언트와 서버 사이에 위치하여 서버로 요청이 들어가기전 Caching 처리 가능

CDN : 콘텐츠 전송 네트워크(Content Distribution Network)로 지역화 된 캐시

 

참고 링크

 

[네트워크] 웹 캐시(프록시 서버)

웹 캐시(프록시 서버)는 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 한다. 그래서 원래의 웹 서버를 대신하여 HTTP

snoop-study.tistory.com

 

👉 웹 캐시의 성능 척도

캐시 적중률 (Hit Rate, HR) : 요청을 캐시로 처리하는 비율 지표 (일반적으로 40% ↑ 지향)

바이트 적중률 (BHR, Byte Hit Rate) : 횟수가 꼭 많은량을 캐시 해준 것은 아니다. 규모가 큰 요청일 경우 기여가 더 크다,

 

 

👉 Proxy 서버란? 장점은?

Proxy는 자신을 통해서 다른 네트워크에 간접적으로 접속하는 것

 

Proxy 서버 장점

  • 외부 사용자가 서버에 직접 접근 막음으로서 보안 향상
  • 동일 한 요청에 대한 Cache 적용 및 속도 개선
  • 사이트 접근에 대한 ACL 정책 등 정의 가능

 

👉 Proxy 서버 종류

Forward Proxy

Client와 Server 중간 사이에 위치해 가장 기본적인 중계 역할 (단순 전달 역할)

 

Reverse Proxy

Clinet와 Server 중간 사이에 위치하여, Target Server의 URL을 Proxy Server가 매핑된 URI로 중계하는 구조

외부로부터 감춰지는 효과가 있음

 

Load Balancing

👉 로드 밸런싱 (Load Balancing) 이란?

증가하는 트래픽을 여러 서버에 균등하게 트래픽을 분산시켜주는 것

 

로드 밸런서 서버 선택 방식

  • 라운드 로빈 (Round Robin) : CPU 스케쥴링 (순서를 돌아가면서 할당)
  • Least Connections : 연결 갯수가 가장 적은 서버 선택 (트래픽으로 인해 세션이 길어지는 경우)
  • Source : 사용자 IP를 해싱하여 특정 서버로만 분배 (특정 사용자가 항상 같은 서버 연결 보장)

 

👉 로드 밸런싱 (Load Balancing)의 Scale-out vs Scale-up

  • Scale-up : 하드웨어 성능을 올림
  • Scale-out : 서버를 증설하여 나눠서 일하도록 만듬 (서버가 여러대시 무중단 서비스를 제공 가능)

 

👉 L4 스위치와 L7 스위치 로드 밸런서의 차이

L4 스위치 (로드밸런싱 장비)

  • IP와 Port기반 트래픽 분산
  • NLB (Network Load Balancer)는 L4 기반

 

L7 스위치 (로드밸런싱 장비)

  • URL, 서버, Payload, HTTP Header, 캐시, 쿠키 등 기반 트래픽 분산
  • 바이러스, 불필요한 외부 데이터 필터링, 트래픽 모니터링 등 기능 수행
  • 정기적인 헬스 체크(health check)로 트래픽 분산 대상 제외 가능
  • AWS에서 ALB (Application Load Balancer)는 L7

 

 

네트워크 문제 해결 

👉 네트워크의 병목 발생시 체크 필요 항목 (Only Network 문제)

  • 네트워크 대역폭이 충분한지?
  • 네트워크 토폴로지에 문제가 없는지?
    ex. 지연 발생 => 대역폭을 크게 설정해도 변화x, 토폴로지 확인 후 서버간의 회선 추가. 병목현상 해결
  • 서버 CPU, 메모리 사용량 확인

 

👉 좋은 네트워크란?

좋은 네트워크란 많은 처리량(throughput)을 가지며, 지연시간(latency)이 짧고 장애빈도가 적으며 좋은 보안을 갖춘 네트워크

 

👉 네트워크 검사 주요 명령어

ping, netstat, nslookup, tracert

 

 

네트워크 용어

👉 DNS 란?

Domain Name System으로 도메인 이름 (www.naver.com)을 머신이 읽을 수 있는 IP 형태로 변환해 주는 것

 

👉 Gateway 란?

서로 다른 통신망, 프로토콜을 가진 네트워크 간의 통신을 가능하게 하는 역할

 

👉 Gateway와 ProxyServer 차이는?

  • Proxy : 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결
  • 게이트웨이 : 서로 다른 프로토콜을 사용하는 둘 이상 연결

 

👉 ARP, RARP 란?

  • ARP(Address Resolution Protocol) : IP주소로부터 MAC 주소를 구하는 프로토콜
  • RARP (Reverese Resolution Protocol) : MAC 주소로부터 IP를 구하는 프로토콜
  • ARP 방법 : ARP Request를 연결된 장비들에 Broadcast(모두) 보내고, 응답한 장치(ARP reply 유니캐스트)를 통해 MAC 주소를 반환 받음.

 

👉 처리량 (throughput), 대역폭 (bandwidth) 차이는?

데이터 양에 대한 개념으로 단위 시간당 최대 vs 실제 라는 차이가 있으며 단위는 bps, Mbps, Gbps 등이 있음

  • 대역폭 (bandwidth) : 단위 시간 동안 전송될 수 있는 최대(Max) 비트 수 
  • 처리량 (throughput) : 단위 시간 당 전송 되는 실제 비트 수 

 

👉 지연 시간 (latency)이란?

데이터 시간에 대한 개념으로 요청+응답 하는데 걸린 시간을 의미

 

👉 네트워크 토폴로지란?

노드와 링크가 배치되어 있는 방식 (트리, Bus - 일직선, 스타, 링, Mesh - 모두 연결)

 

 

네트워크 데이터 처리 (Hardware)

👉 계층별 처리 기기

  • 애플리케이션 계층 : L7 스위치
  • 전송 계층 : L4 스위치
  • 인터넷 계층 : 라우터, L3 스위치
  • 데이터 링크 계층 : 브리지, L2 스위치
  • 물리 계층 : NIC, 리피터, AP 

 

👉 인터넷 계층 처리 기기 - 라우터, L3 스위치

라우터

  • 여러 개의 네트워크를 연결, 분할, 구분 시켜주는 역할
  • 다른 네트워크에 존재하는 장치끼리 데이터 전송시 패킷 소모 최소화 및 경로 최적화하여 패킷 포워딩

 

L3 스위치

  • L2 스위치 + 라우팅 기능
  • 주로 하드웨어 담당 라우팅

 

👉 데이터 링크 계층 처리 기기 - L2 스위치, 브리지

  • L2 스위치 : MAC주소 테이블 관리, 패킷 전송 담당
  • 브리지 : 두개의 LAN을 상호 접속 할 수 있도록 통신망 연결 장치, 중간 다리 역할

 

👉 물리 계층 처리 기기 - NIC, 리피터, AP

  • NIC(Network Interface Card) : PC내 LAN 카드를 의미, LAN 카드 마다 고유 식별번호 MAC 주소가 있음
  • 리피터(Repeater) : 들어오는 약해진 신호 정도를 증폭하여 다른쪽으로 전달
  • AP(Access Point) : 패킷 복사 기기 (ex. AP에 유선 LAN 연결 후 다른 장치에서 무선 LAN 환경 구축 가능)