본문 바로가기

CS/Network29

[네트워크] CDN과 ADN CDN(Contents Delivery Network, Contents Distribution Network) - 느린 응답 속도/다운로딩 시간을 극복하기 위한 기술 - 지리적, 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공하기 위한 기술 - 사용자와 가까운 곳에 위치한 Cache 서버에 해당 컨텐츠를 저장하고 컨텐츠 요청 시 Cache 서버가 응답 ADN(Application Delivery Network) - 느린 응답 속도/다운로딩 시간을 극복하기 위한 기술 - 지리적, 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공하기 위한 기술 - CDN과 차이점은 컨텐츠를 캐싱하는 것이 아닌 망 지연이 발생하는 구간에 트래픽을 늘리는 기술 2020. 6. 29.
[네트워크] 로드 밸런싱(Load Balancing) 로드 밸런싱(Load Balancing) - 서버에 가해지는 부하를 분산해주는 장치 또는 기술 - 클라이언트와 서버풀 사이에 위치해 한 대의 서보로 부하가 집중되지 않도록 트래픽을 관리 - 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 관리 - 스케일 아웃으로 시스템 확장을 했다면, 반드시 동반되어야하는 기술 1) 로드 밸런싱 알고리즘 (1) 라운드 로빈 방식(RR, Round Robin) - 서버에 들어온 요청을 순차적으로 배정 - 각 서버가 동일한 스펙을 가지고 있고, 세션이 오래 지속되지 않는 경우에 적합 (2) 가중 라운드로빈 방식(Weighted Round Robin) - 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 우선적으로 배정 - 각각의 서버의 트래픽 처리 속도가 상이한 경우에 .. 2020. 6. 29.
[네트워크] 스케일 업(Scale-Up)과 스케일 아웃(Scale-Out) 이용자의 증가, 사업 확장 등 여러가지 이유로 더 많은 서버 용량과 성능이 필요할 때, 스케일 업과 스케일 아웃을 통해 시스템 확장이 가능 스케일 업(Scale Up) - 수직 확장 방식 - 하나의 서버 자체의 성능을 증가시키는 방법 - 고성능 CPU, 메모리 확장, SSD 등 - 데이터베이스 서버에 적합 1) 장점 - 구축 설계가 쉬움 - 여러 대의 서버에 데이터 일관성을 유지해야하는 작업이 필요하지 않음 - 컨트롤러나 네트워크 비용이 별도로 발생하지 않음 2) 단점 - 서버 한대에 모든 부하가 집중되므로 장애 발생 시 치명적 - 용량, 성능 확장 제한 - 비용이 많이 듬 스케일 아웃(Scale Out) - 수평 확장 방식 - 서버를 여러대 추가해 시스템을 확장하는 방법 - 로드 밸런싱이 동반되어야 함.. 2020. 6. 28.
[네트워크] Web Server와 WAS 웹(Web) - 인터넷을 기반으로 한 정보를 공유, 검색할 수 있는 기능을 제공하는 서비스 - URL(주소), HTTP(통신 규칙), HTML(문서)로 구성 웹 서버(Web Server) - 클라이언트로부터 HTTP Request를 받아 정적인 컨텐츠(html, css, image 등)를 제공하는 컴퓨터 - 아파치, MS IIS 웹 애플리케이션 서버(WAS, Web Application Server) - 웹 컨테이너 - DB 접근이나 다양한 로직 처리 등을 요구하는 동적인 컨텐츠를 제공하는 Application Server - 톰켓, IBM Shpere Web Server와 WAS를 분리하는 이유 - 동적 컨텐츠 제공과 정적 컨텐츠 제공이라는 기능을 분리해 서버 부하를 방지 - 웹 서버에 여러 대의 WA.. 2020. 6. 28.
[네트워크] Spoofing / Sniffing / Snooping Spoofing - '속이다', '사기치다'의 뜻 - TCP/IP의 구조적 결함을 이용해 사용자의 시스템 권한을 획득 후, 정보를 빼가는 해킹 수법 - 위조 사이트 접속 유도, IP 스푸핑 Sniffing - '코를 킁킁거리다'의 뜻 - 네트워크 상의 자신이 아닌 다른 상대방의 패킷 교환을 훔쳐보는 행위 Snooping - '염탐하다'의 뜻 - 네트워크 상에서 떠도는 중요 정보를 몰래 획득하는 행위 2020. 6. 28.
[네트워크] 웹 크롤링과 웹 스크래핑 웹 크롤링과 웹 스크래핑 1) 웹 크롤링(Web Crawling) - 웹 크롤러(자동화 봇)가 일정 규칙으로 웹 페이지를 브라우징하는 기술 2) 웹 스크래핑(Web Scarping) - 웹 사이트 상에서 원하는 정보를 추출하는 기술 - 일반적으로 말하는 웹 크롤링을 웹 스크래핑을 의미 3) 파싱(Parsing) - 특정 웹 페이지에 원하는 데이터를 패턴이나 순서에 따라 추출해 정보를 가공하는 것 - 더 일반적인 개념으로는 일련의 데이터를 분석하고 가공하는 것 웹 스크래핑 방지 기술 1) IP 제한 - 특정 IP 주소에서 단 기간에 많은 요청이 있음이 감지될 경우, IP 주소 차단 2) 액세스 속도 추척 - 시스템에서 페이지를 빨리 지나가는 것이 감지될 경우, 스크래핑으로 인식하고 차단 3) 레이아웃이 다.. 2020. 6. 28.
[네트워크] 싱글스레드 서버와 멀티스레드 서버 멀티스레드 서버 - 멀티스레드를 이용해 여러 사용자의 request와 response 처리 - 대부분의 웹 애플리케이션은 멀티스레드 기반 - 동기식 모델 - Spring 1) 동작 과정 (1) 웹 서버는 내부적으로 스레드 풀을 유지 (2) 클라이언트는 서버에 요청을 전달 (3) 스레드 풀 내의 각각의 스레드가 blocking I/O 등의 클라이언트 요청을 처리하고 응답 싱글스레드 서버 - 싱글 스레드 기반의 이벤트 루프 구조로 멀티 스레드 기반 모델보다 더 동시적으로 다수의 클라이언트 요청 처리 가능 - 멀티스레드 기반의 모델보다 상대적으로 적은 스레드가 필요(자원의 효율) - 비동기식 모델 - Node.js 1) 동작방식 (1) 서버 내부에 단일 스레드가 무한 루프를 돌며 클라이언트의 요청을 대기(이벤.. 2020. 6. 28.
[네트워크] 동기식 네트워크와 비동기식 네트워크 블로킹(Blocking)과 논블로킹(Non-blocking) 1) 블로킹(Blocking) - 호출된 함수가 자신의 작업이 모두 끝날 때까지 제어권을 가지고 있어, 호출한 함수가 대기하도록 만듬 2) 논블로킹(Non-blocking) - 호출된 함수가 바로 return함으로써, 호출한 함수에게 제어권을 넘겨주어 다른 일을 처리할 수 있도록 함 동기식 네트워크와 비동기식 네트워크 1) 동기식(Synchronous) 네트워크 - Request를 보낸 스레드는 Response가 도착하기 전까지 블로킹(Blocking) 됨 (1) 장점 - 요청과 응답의 순서 보장 - 요청에 대한 처리 결과 보장 (2) 단점 - 응답이 지연되게 되면 요청을 보낸 스레드는 무한 대기상태에 빠짐 - 한 요청이 지연되면 전체 성능이슈.. 2020. 6. 28.
[네트워크] MAC / ARP / RARP MAC Address - 네트워크 상에서 서로를 구분하기 위해 Device마다 할당된 물리적인 주소 ARP(Address Resolution Protocol) - 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(binding)시키기 위해 사용되는 프로토콜 - 즉, 논리적인 주소(IP Address)를 기반으로 물리적인 주소(Mac Address)를 찾는 프로토콜 1) 동작 방식 (1) ARP Request - 송신측은 ARP 요청 패킷을 브로드캐스트로 전송 (2) ARP Reply - 모든 호스트와 라우터는 송신측에 전송한 ARP Request 패킷을 수신 - 송신측이 요청한 IP 주소와 일치하는 수신측은 IP 주소와 Mac 주소를 넣어 응답 패킷을 전송 RARP(Reverse Address R.. 2020. 6. 28.
[네트워크] IP Address IP Address 네트워크 상의 각각의 HOST를 구분하기 위한 논리적인 주소 1) IP 구조 - 32bit 주소체계 - 'ooo.ooo.ooo.ooo'처럼 dot으로 구분된 octet(8bit) 4개의 조합으로 표기 - octet별로 0 ~ 255까지의 범위 - 약 43억개의 주소 표현 가능 2) IP 클래스 (1) 네트워크 ID - 어떤 네트워크 인지 나타냄 (2) 호스트 ID - 해당 네트워크 내의 어떤 디바이스인지 나타냄 (3) 클래스 - 하나의 IP 주소에서 네트워크 ID와 호스트 ID를 나누는 방법이자 약속 - 목적에 따라 호스트 IP를 얼마나 가질 수 있는지 나눔 a. A 클래스 - 0.0.0.0 ~ 127.255.255.255 - 0sss ssss . hhhh hhhh . hhhh hhh.. 2020. 6. 28.
[네트워크] 프록시(Proxy) 프록시(Proxy) - '대리'의 의미 - 직접 통신할 수 없는 두 host 사이에서 대리로 통신을 수행하는 기술을 프록시, 프록시 서버라고 함 1) 특징 - 프록시 서버는 클라이언트와 서버의 입장에서 각각 상반되는 역할을 수행하는 것처럼 인식 - 요청된 내용을 캐시를 이용해 저장 2) 장점 - 전송시간 단축 - 불필요한 외부와의 접속을 막아줌 - 트래픽을 줄여 네트워크 병목현상을 방지 2020. 6. 27.
[네트워크] SYN Flooding SYN Flooding - TCP 3-way-handshake의 취약점을 이용한 DOS 공격 방식 - 두번째 패킷 전송(SYN + ACK) 후 서버는 클라이언트에 ACK를 받기 전까지 연결 요청을 백로그 큐에 저장 - 공격자는 첫번째 패킷(SYN)만 계속 전송해 백로그 큐를 가득 차게 만들어 서버가 더이상 요청을 받아들일 수 없도록 함 1) 공격 방식 (1) 공격자는 SYN 패킷만을 계속 전송 (2) 서버는 해당 요청을 백로그 큐에 저장 (3) 백로그 큐가 가득 차게 되면 서버는 더이상 요청을 받아들일 수 없게 됨 2) 방어 방법 (1) Backlog Queue 사이즈 확장 - 백로그 큐의 사이즈 확장 - 임시 방편 (2) TCP Connection timeout - 타임아웃 시간을 짧게 잡아 백로그 큐.. 2020. 6. 27.