CS STUDY/네트워크 (8) 썸네일형 리스트형 대칭키 & 공개키 대칭키(Symmetric Key) 암호화, 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 동일한 키를 주고받기 때문에 매우 빠름 but 전달과정에서 해킹 위험에 노출 DES, 2DES, AES, SEED, ARIA 등 공개키(Public Key)/비대칭키(Asymmetric Key) A가 B에게 데이터를 보내는 경우 A는 B의 공개키로 데이터를 암호화해서 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 확인 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있다. 중간 공격자가 B의 공개키를 알아도 B의 개인키로만 복호화가 가능 복잡한 수학 연산을 수행하기 때문에 대칭키 알고리즘에 비해 속도가 느리다. Diffie-Hellman, RSA, DSA, ECC 등 참.. TCP/IP 흐름제어 & 혼잡제어 흐름제어(Flow Control) 수신 측이 송신 측보다 데이터 처리 속도가 빠르면 문제가 없지만, 송신 측의 속도가 빠를 경우 문제가 발생 수신 측에서 제한된 저장 용량을 초과한 이후에 도착한 데이터는 손실될 가능성이 있으며, 손실된다면 불필요하게 응답과 데이터 전송이 송/수신 측 간에 빈번히 발생한다. 송신 측의 데이터 전송량을 수신 측에 따라 조절할 필요가 있다. 해결방법 Stop and Wait: 매번 전송한 패킷에 대해 확인 응답을 받은 후 다음 패킷을 전송, 속도가 느림 Sliding Window(Go Back N ARQ) 한 번에 보낼 데이터 개수를 동적으로 제어 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답 없이 패킷을 전송할 수 있다. 오류 제어(Error Control) 오.. UDP UDP(User Datagram Protocol) 비연결형, 신뢰성이 없는 전송 프로토콜 흐름제어, 오류제어 및 손상된 세그먼트의 수신에 대한 재전송을 하지 않음 순서를 보장하지 않지만 TCP보다 간단하고 빠름 간결한 헤더 UDP Checksum 도착 IP주소, 송신 포트번호, 수신 포트번호, 데이터 길이, payload 등의 데이터들을 16비트 단위로 쪼개서 전부 더한다. 더하는 도중 overflow되서 carry-out된 값이 있다면 결과에 다시 더해서 sum 값을 만든다. 계산한 sum 값에 1의 보수를 취하면 checksum 송신측과 수신측의 checksum이 동일하다면 에러가 없는 것 전송 도중 checksum이 바뀔 수 있다. UDP 사용 사례 실시간 스트리밍 서비스 손실 없는 데이터보다 끊김.. TCP 3-Way Handshake TCP 연결지향적 신뢰성 Sequence Number: TCP 세그먼트의 연속된 데이터 번호 Ack Number: 상대방으로부터 받아야 하는 다음 TCP 세그먼트 데이터 번호 데이터의 전송 순서 보장 IP가 배달은 한다면 TCP는 패킷의 추적 및 관리 흐름 제어 => 수신자 버퍼 오버플로우 방지 혼잡 제어 => 패킷 수가 과도하게 증가하는 것 방지 연결의 설정(3-Way Handshaking), 해제(4-Way Handshaking) 3-Way Handshake (연결 설정) 클라이언트가 서버에게 SYN(x) 패킷 전송 서버가 SYN(x)를 받고, 받았다는 신호인 ACK(x+1)과 SYN(y) 패킷 전송 클라이언트는 받았다는 신호인 ACK(y+1)을 서버로 전송 4-Way Handshake(연결 해제) .. OSI 7 계층 OSI 7 계층 Physical Layer(물리 계층) 데이터를 전기적인 신호로 변환해서 주고 받음 통신 단위는 비트로 1, 0으로 표현한다. 케이블, 리피터, 허브 DataLink Layer(데이터 링크 계층) 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리 통신에서의 오류도 찾아주고 재전송 맥 주소로 통신 전송 단위는 프레임 브리지, 스위치 Network Layer(네트워크 계층) 데이터를 목적지까지 가장 안전하고 빠르게 전달(라우팅) 경로를 선택하고 IP 주소를 정하고 경로에 따라 패킷 전달 라우팅, 흐름 제어, 오류 제어, 세그멘테이션 라우터 복잡한 네트워크들의 연결로 이루어진 인터넷에서 목적지 컴퓨터로 데이터를 전달하기 위해 IP 주소를 이용해 경로를 찾고(라우팅) 라우터에게 데이터를 넘.. 동기/비동기 & 블로킹/논블로킹 동기(Synchronous) & 비동기(Asynchronous) 1. 동기 방식(Synchronous) 요청한 작업에 대해 완료 여부를 따져 순차적으로 처리 => 하나의 작업이 완료되어야 다음 작업 수행 함수 A가 함수 B를 호출한 뒤, 함수 B의 리턴 값을 계속 확인하면서 신경씀 2. 비동기 방식(Asynchronous) 요청한 작업에 대해 완료 여부를 따지지 않기 때문에 다음 작업을 그대로 수행 함수 A가 함수 B를 호출할 때 콜백함수를 함께 전달하고 호출한 후로 함수 B의 작업 완료 여부는 신경쓰지 않음 블로킹(Blocking) & 논블로킹(Non-Blocking) 1. 블로킹(Blocking) A함수가 B함수를 호출하면 B에게 제어권을 넘긴다. A는 B에게 제어권을 넘겨주었기 때문에 함수 실행을 .. 로드밸런싱(Load Balancing) 로드밸런싱(Load Balancing) 1. 개념 컴퓨터 네트워크 기술의 일종으로 처리해야 할 업무나 요청을 둘 혹은 셋 이상의 중앙처리장치 or 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것 즉, 부하를 나누는 것을 의미한다. 왜 필요한가? 서비스의 클라이언트 수가 증가하게 되면 기존 서버만으로는 요청에 응답하는 것이 어렵다!! Scale-up으로 서버 자체의 성능을 확장하거나, Scale-out으로 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설 => 로드밸런싱 2. 기능 Health Check 주기적으로 서버들을 Health Check를 하는 과정을 통해 서버들의 장애 여부를 판단하여, 정상 동작 중인 서버로만 트래픽을 보낸다. L4 체크: TCP는 3 Way-Handshakin.. HTTP & HTTPS HTTP HTTPS HyperText Transfer Protocol HyperText Transfer Protocol Secure 정의 인터넷상에서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 인터넷 상에서 SSL 프로토콜을 이용해서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 포트 기본 포트 80 기본 포트 443 용도 이전 텍스트 기반 웹 사이트 모든 최신 웹 사이트 보안 기능 여부 X O 장점 속도가 더 빠르다. 참조 링크도 더 잘 추적한다. 민감한 데이터를 담고 있을 때 제3자가 해당 데이터를 가로채지 못한다. HTTP 프로토콜의 특징 1. Connectionless 프로토콜(비연결 지향) 클라이언트가 서버에 요청(Request) 했을 때, 그 요청에 맞는 응답(Respon.. 이전 1 다음