본문 바로가기

CS/네트워크

(18)
로드밸런싱 1. 로드 밸런싱이란? 트래픽이 대량으로 발생했을 때, 여러 대의 서버가 분산 처리하여 트래픽을 분산시키는 기법이다. 2. 로드 밸런싱의 주요 기능 NAT(Network Address Translation) 사설 IP주소를 공인 IP주소로 바꾸는 변조기 Tunneling 눈에 보이지 않는 통로를 만들어 통신할 수 있도록 하는 개념 데이터를 캡슐화하여 연결된 상호 간의 패킷만을 구별하여 캡슐화 해제 가능 DSR 서버에서 클라이언트로 응답 시 스위치를 거치지 않고 곧바로 클라이언트로 응답 Health Check 주기적인 Health Check를 통해 서버 장애 여부 판단 몇 대에 이상이 생기더라도 정상 작동중인 다른 서버로 트래픽을 보내주는 Fail-over 가능 L3 체크, L4 체크, L7체크 등 3. ..
Authentification과 Authorization의 차이 Authentification(인증) 사용자 자신이 누구인지를 증명하는 프로세스이다. Authorization(승인, 인가) 말 그대로 '허락 권한'이다. 예를 들어보면, 권한을 가진 사람이 부엌에서 그릇을 꺼낼 수 있을 것이다. 이 사람은 방에 들어갈 권한이 없을 수도 있다. 즉, 특정한 장소에서 승인을 가진 사람만이 특정 task를 수행할 수 있다. 인증 후 인가 과정을 거친다고 생각하면 된다. 쿠키, 세션, 토큰 더 나아가서 OAuth까지 연결되는 개념인데 추후 따로 포스팅할 예정이다.
HTTP 헤더 공통헤더 request, response에 모두 사용되는 헤더이다. Date HTTP 메시지가 만들어진 시각. 자동생성된다. ex) Date: Thu, 12 Jul 2018 03:12:27 GMT Connection HTTP 1.1을 사용한다면 default로 keep-alive로 설정되어 있다. 사실상 아무 의미가 없다. HTTP 2에서는 해당 형식이 제외되었다. ex) Connection: keep-alive Cache-Control 중요한 부분이다. 이 부분과 관련해서는 추후 포스팅할 예정이다. 304를 받았다면 이 부분을 의심해보자. Cache-Control 속성은 누가 응답을 어떤 조건에서, 얼마나 캐시할 수 있는지 정의한다. Content-Length request, response 메시지의 ..
GET과 POST HTTP 프로토콜의 종류이다. GET 메서드 정보를 조회하기 위한 메서드 가져와서 보여준다(select) url 끝에 ?가 붙고, 정보가 key=value 형태의 쌍을 이루어 서버로 전송된다. 요청정보가 여러개일 경우 &로 구분한다. ex) www.aa.com?name=value url에 요청 정보가 붙기 때문에 길이 제한이 있다.→대용량 데이터 전송 불가능 url에 정보가 담겨 전송되기 때문에 보안에 취약하다. body는 비어 있는 상태로 전송된다.→body의 데이터 타입 표현하는 Content-Type도 비어 있는 상태 post 방식보다 빠르다. 캐싱 사용이 가능하다. POST 메서드 서버의 값이나 상태 바꾸기 위한 메서드 요청을 수행한다(Insert, Update, Delete) 요청 정보를 HTT..
TCP의 3 way handshake와 4 way handshake 3 way handshake(연결 설정) 두 프로세스 모두 전송할 준비가 되어있다는 것을 보장한다. 1) Client(Process A)에서 Server(Process B)에 연결을 요청하는 패킷 SYN(a)를 보낸다. 2) Server가 정상적으로 요청을 받았다면, 그를 수락하는 ACK(a+1)패킷과 함께 SYN(b)를 보낸다. cf) ACK(a+1)의 의미는 a번 패킷까지 안전하게 받았으니 a+1번째 패킷을 달라는 의미가 된다. 이를 통해 클라이언트는 자신이 보낸 패킷이 안전하게 도달했는지 알 수 있다. 3) Client는 두 패킷을 받고 ACK(b+1)로 패킷을 보내면 연결이 완료된다. 4 way handshake(연결 해제) 1) Client에서 연결을 끊겠다는 FIN플래그를 전송한다. 2) Se..
TCP/UDP의 Header TCP Header Source Port, Destination Port: 송신, 수신 포트 주소 Sequence Number: 송신자가 보내는 데이터의 순서 번호(MSS단위로 증가): k번째를 보냈다 MSS(Max Sequence Size): TCP가 한 번에 보낼 수 있는 데이터의 최댓값 즉, 5000 bytes 데이터가 있고 MSS가 100bytes라면 50개의 세그먼트가 생성된다. 첫 번째 세그먼트의 sequence number는 0, 두 번째 세그먼트의 sequence number는 (0+100)으로 설정된다. Acknowledge Number: 수신자가 받은 바이트 수에 대한 응답: (k-1)번째까지 받았다→k번째를 기다리고 있음 위의 상황에서 0번째 데이터를 정상적으로 모두 받았다면, 0~9..
TCP와 UDP Transport layer 신뢰성 있는 데이터를 전송하는 계층이다. 신뢰성이란, 데이터를 순차적이고 안정적으로 전달하는 것을 말한다. 전송이란, 포트 번호에 해당하는 프로세스에 데이터를 전달하는 것을 말한다. 왜 중요할까? Transport layer가 없다면... Flow Problem: 송수신자 간의 데이터 처리 속도에 차이가 있을 수 있다. Congestion Problem: 네트워크의 데이터 처리 속도에 문제가 있을 수 있다.(네트워크 혼잡) TCP(Transmission Control Protocol) 신뢰성 있는 데이터 통신을 가능하게 해주는 프로토콜이다. 데이터의 순차 전송을 보장한다. Flow control, Congestion control, Error detection 수행 full-..
OSI 7계층 OSI란? 국제표준화기구에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 모델 프로토콜을 기능별로 나누었다. why? 관리를 용이하도록 해준다. 계층별로 나누어 관리하면 어디서 문제가 발생했는지 빠르게 파악할 수 있어 도움이 된다. 현재는 OSI 7계층보다 TCP/IP(updated ver.) 모델이 더 많이 사용되고 있다! TCP/IP(updated ver.)은 ( Application / Transport / Network / Data-Link / Physical )으로 나누고 있다. 하위계층은 상위계층에게 기능을 제공한다. 하위는 하드웨어(data-link, physical), 상위는 소프트웨어로 구현되어 있다. Application layer 응용 서비스를 수행..