728x90
반응형

CS/Network 11

[네트워크] Blocking I/O & Non-Blocking I/O

I/O (Input / Output) I/O 작업은 Kernel level에서만 수행할 수 있다. 따라서, Process, Thread는 커널에게 I/O를 요청해야 한다. 어떠한 기기(디바이스)를 통해 입출력이 이루어지는 작업을 모두 I/O라고 한다. 즉, 네트워크를 통한 데이터 전송, 컨솔 출력 등과 같은 것도 포함된다. 이러한 I/O는 어플리케이션 성능에 가장 많은 영향을 끼친다. I/O에서 발생하는 시간은 CPU를 사용한 시간과 대기 시간 중에 대기 시간에 속하기 때문에 I/O가 많아진다느 것은 어플리케이션이 연산을 할 때까지 CPU가 아무것도 못하고 대기하는 시간이 길어진다는 의미이고, 이는 어플리케이션의 처리 속도 저하로 이어진다. 따라서 높은 성능을 보장해야하는 어플리케이션에서는 I/O가 큰 ..

CS/Network 2023.07.06

[네트워크] Blocking/Non-blocking & Synchronous/Asynchronous

동기/비동기는 우리가 일상 생활에서 많이 들을 수 있는 말이다. Blocking과 Synchronous, 그리고 Non-blocking과 Asysnchronous를 서로 같은 개념이라고 착각하기 쉽다. 각자 어떤 의미를 가지는지 간단하게 살펴보자. 2대2 매트릭스로 정리된 그림이다. 그림을 보면 Blocking 이면 반드시 Sync 가 아니고, Non-blocking 이면 반드시 async 도 아니다. 즉, Blocking / Non-blocking 과 Sync / Async 는 다른 개념이라는 것이다. Blocking / Non-blocking 과 Sync / Async 는 '관점'을 어떻게 두느냐에 따라 다르다. 블로킹 Blocking A 함수가 B 함수를 호출 할 때, B 함수가 자신의 작업이 종료..

CS/Network 2023.07.05

[네트워크] 로드 밸런싱 (Load Balancing)

로드 밸런싱 (Load Balancing) 이란? 네트워크 또는 서버에 가해지는 부하(Load)를 분산(Balancing) 해주는 기술이다. 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 로드 밸런싱의 필요성? 로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다. 서비스의 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능하다. 하지만 사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하게 된다. 트래픽이 많은 최신 웹 사이트는 클라이언트의 수많은 동시 요청을 처리하고 텍스트, 이미지, 비디오 또는 애플리케이션 데이터 등을 빠르고 안정적인 방식으..

CS/Network 2023.07.04

[네트워크] TLS/SSL HandShake

TLS / SSL 이란? SSL(Secure Sockets Layer)은 보안 프로토콜로서, 개인정보 보호, 인증, 무결성 을 인터넷 통신에 제공한다. SSL/TLS를 사용하는 웹사이트의 URL에는 "HTTP" 대신 "HTTPS" 가 있다. SSL 이란 명칭은 TLS(Transport Layer Security)로 발전했다. 최근 명칭: TLS(Transport Layer Security) 과거 명칭: SSL(Secure Sockets Layer) SSL의 인지도가 크기 때문에 TLS을 SSL로 부르며 사용한다. Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다. 주로 전송계층과 응용계층 사이에서 보안조치를 하는데 사용하게 된다. SSL (..

CS/Network 2023.06.28

[네트워크] HTTP와 HTTPS의 차이점

HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면 HTTPS는 안전하게 데이터를 주고 받을 수 있습니다. 다만, HTTPS는 암호화/복호화 과정이 필요하기 때문에 요즘은 거의 큰 차이를 못느끼지만 HTTP보다 속도가 느리고 인증서를 발급하고 유지하기 위한 추가비용이 발생할 수 있습니다. HTTP (Hyper Text Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약이다. 즉, 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 서로 다른 시스템들 사이에 통신을 주고 받게 해주는 가장 기본적인 프로토콜이다. 인터넷에서 하이퍼텍스트를 교환하기위한 통신규약이다. 요청(Request)과 응답(Response)으로 구성되어 있으며..

CS/Network 2023.06.27

[네트워크] 대칭키와 공개키

대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다. 공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말한다. (비대칭키 암호화라고도 한다.) 대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 하나의 키를 양쪽(client & server)가 같이 사용한다. 대칭키는 암복호화키가 동일하므로 해당 키를 아는 사람이 문서를 복호화할 수 있게 된다. 장점 동일한 키를 주고받기 때문에 공개키 암호화 방식에 비해 암호화 및 복호화 속도가 빠르다. 비교적 간편하다. 단점 암호화 통신을 하는 사용자끼리 같은 대칭키를 공유해야만 한다. (키를 교환해야 하는 문제가 발생) 이게 왜 단점? 물리적으로 직접 만나서 전달하지 않는 한, ..

CS/Network 2023.06.26

[네트워크] UDP

UDP 통신이란? User Datagram Protocol의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형, 신뢰성 없는 전송 프로토콜이다. 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층이다. Transport layer에서 사용하는 프로토콜이다. TCP와 UDP는 왜 나오게 됐는가? IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있다. 또한, IP에서 오류가 발생한다면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다. 1번을 해결하기 위하여 포트 번호가 나오게..

CS/Network 2023.06.23

[네트워크] TCP/IP (흐름 제어, 혼잡 제어)

TCP / IP 란? 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약이다. TCP와 IP 두 가지의 프로토콜로 이루어져 있다. TCP (Transmission Control Protocol) 두 호스트가 교환하는 데이터와 승인 메세지의 형식을 정의하여, 서버와 클라이언트간의 데이터를 신뢰성있게 전달하기 위해 만들어진 규약이다. 데이터 패킷에 일련의 번호를 부여함으로써, 데이터 손실을 찾아내서 교정하고, 순서를 재조합하여 클라이언트에게 전달할 수 있게 해준다. IP (Internet Protocol) TCP와는 달리 데이터의 재조합이나 손실여부 확인이 불가능하며, 단지 데이터를 전달하는 역할만을 담당한다. IP주소는 하드웨어 고유의 식별번호인 MAC주소와 다르게 임시적으로 다른 주체(통신사)..

CS/Network 2023.06.23

[네트워크] TCP의 3 way handshake & 4 way handshake

TCP (Transmission Control Protocol) 란? TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜이다. TCP는 애플리케이션에게 신뢰적이고 연결지향성 서비스를 제공한다. TCP는 연결형 서비스로, 신뢰적인 전송을 보장하기에 hanshaking하고 데이터의 흐름제어와 혼잡제어를 수행한다. 하지만 이러한 기능으로 인해 TCP의 속도는 느리다. 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용한다. IP는 배달을, TCP는 패킷의 추적 및 관리를 하게 된다. TCP의 3 way handshake & 4 way handshake 란? 연결을 성립하고 해제하는 과정을 말한다. 3-Way Handshake 는 TCP의 접속, 4-Way Handshake는 TCP의 접..

CS/Network 2023.06.23

[네트워크] TCP/IP 4계층

OSI 7계층 vs TCP/IP 4계층 TCP/IP 계층은 OSI 7계층을 더 단순화 시켜서 4개의 계층(Layer)로 분류하여 사용한다. OSI 7계층이 네트워크 전송의 데이터 표준을 정립했다면, TCP/IP 4계층은 이를 실제로 사용하는 인터넷 표준인 셈이다. 실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다. TCP / IP의 개념 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음이다. TCP와 IP 두 가지의 프로토콜로 이루어져 있다. (2개의 계층으로 구분한다.) TCP(상위계층) 전송 데이터를 일정 단위로 나누고 포장하는 것에 관한 규약 메세지나 파일을 작은 패킷으로 나누거나 재조립하여 송수신에..

CS/Network 2023.06.23
728x90
반응형