TCP(Transmission Control Protocol) 통신이란? 📌 Transmission Control Protocol. 전송 제어 프로토콜(transport 계층). 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜. 데이터를 전송하기 위한 연결을 만드는, 연결 지향 프로토콜 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 수행 패킷 사이의 순서를 보장 연결 지향의 프로토콜을 사용해서 연결 신뢰성 구축해서 수신 여부를 확인 3 way handshake란? 📌 TCP 연결 성립 과정을 의미 SYN → SYN+ACK → ACK TCP의 경우 해당 과정이 있기 때문에 신뢰성이 있는 계층으로 판단됨. SYN 세그먼트 전송: 클라이언트는 서버에 난수인 I..
HTTP 멱등성 HTTP 멱등성이란? Idempotent Methods A request method is considered "idempotent" if the intended effect on the server of multiple identical requests with that method is the same as the effect for a single such request. Of the request methods defined by this specification, PUT, DELETE, and safe request methods are idempotent. Like the definition of safe, the idempotent property only applies to..
HTTP 메서드 HTTP 메서드란? 📌 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 함 응답 메서드는 안전하거나, 캐시 가능하거나, 멱등성을 가질 수 있음 1. GET GET 메서드는 특정 리소스의 표시를 요청 GET을 사용하는 요청은 오직 데이터를 받기만 함. 참고로 안정성과 멱등성은 신뢰할 수 없는 네트워크 상의 HTTP를 신뢰할 수 있게 만들어 줌. 만약, GET요청을 하고 응답을 못 받았을 경우 한 번 더 보내더라도 이 동작은 안전. 그러므로 G..
프로세스 : 컴퓨터에서 실행되고 있는 프로그램을 말함. CPU 스케쥴링의 대상이 되는 작업(task)라는 용어와 유사한 의미. 스레드 : 프로세스 내 작업의 흐름을 지칭. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화 일어나고, 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행. 1. 프로세스와 컴파일 과정 - 프로세스 : 프로그램으로부터 인스턴스화 된 것을 말함. ㄴ ex) 프로그램 : chrome.exe / 두번 클릭시 구글 크롬 '프로세스' 시작. 1. 컴파일러(Compiler) - 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는, 일종의 번역 프로그램. - 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러 종류가 존재한다. - 보통 ..
CPU스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야하는 일을 스레드 단위로 CPU에 할당함. 프로그램이 실행 될 때, CPU 스케쥴링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정. 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready que)에 있는 프로세스는 적게, 응답시간은 짧게 설정하는것을 목표로 함. 1. 비선점형 방식(non-preemptive) - 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않음. ㄴ컨텍스트 스위칭으로 인한 부하가 적음. 1) FCFS(First Come, Fist Served): 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 - 길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상(co..
컴퓨터 : 하드웨어와 소프트웨어를 관리하는 운영체제와 CPU, 메모리 등으로 이루어짐. 1. 운영체제의 역할과 구조 1] 운영체제의 역할 1) CPU 스케쥴링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환 관리. 2) 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 관리. 3) 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관 할 지 관리. 4) I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터간에 데이터를 주고받는 것을 관리. 2] 운영체제의 구조 - 유저 프로그램과 하드웨어 사이를 운영체제라고 부름 cf) 리눅스 서버 : GUI 없이 CUI만 있음. 더보기 * GUI : 사용자가 전자장치과 상호 작용할..
CF) CPU : '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐. 1. 메모리 계층 : 레지스터, 캐시, 저장장치. - 레지스터 : CPU 안에 있는 작은 메모리. 휘발성. 속도 : 가장 빠름. 기억용량 : 가장 적음. - 캐시 : L1, L2 캐시를 지칭. 휘발성. 속도 빠름. 기억용량 적음. (L3캐시도 있음). - 메모리(RAM, 주기억장치) : RAM. 휘발성. 속도 : 보통. 기억용량 : 보통. ㄴ HDD로부터 일정량의 데이터를 복사, 임시저장 후 필요시마다 CPU 에 전달. - 보조기억장치 : HDD, SDD를 일컬음. 휘발성. 속도낮음, 기억용량 많음. 1] 캐시(cache) : 데이터를 미리 복사해 놓는 임시 저장소. - 빠른 장치와 느린 장치에서 속도 차이에 따른 병목현상을 줄..
* 운영체제(OS, Operating System) : 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스. - 한정된 메모리나 시스템 자원을 효율적으로 분배. - cf) 펌웨어(firmware) : 운영체제와 유사하지만, 소프트웨어를 추가로 설치할 수 없는 것. 1. 운영체제와 컴퓨터 2. 메모리 3. 프로세스와 스레드 4. CPU 스케줄링 알고리즘
HTTP(Hyper Text Transfer Protocol) - 인터넷에서 HTML 문서와 같은 데이터를 주고받을 수 있도록 해주는 프로토콜. - 애플리케이션 계층으로, 웹 서비스 통신에 사용. 1. HTTP/1.0 - 한 연결당 하나의 요청을 처리하도록 설계됨 -> RTT증가 ㄴ 서버로부터 파일을 가져올 때 마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문. *RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간. RTT의 증가를 해결하기 위한 방법 - RTT가 증가 -> 서버에 부담이 많이 가고 사용자 응답 시간이 길어짐. ㄴ 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 사용. 이미지 스플리팅 - 많은 이미지를 다운로드받게 되면..
IP(Internet Protocol) : 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약 1. ARP(Address Resolution Protocol)란? - IP주소(가상주소)로부터 MAC주소(실제주소)를 구하는, IP와 MAC 주소의 다리역할을 하는 프로토콜. RARP(Reverse Address Resolution Protocol) : MAC주소를 IP주소로 변환 - 호스트가 ARP Request 브로트캐스트를 보내, IP주소에 해당하는 MAC주소를 찾음. 이후 해당하는 장치가 ARP reply 유니캐스트를 통해 MAC 주소를 반환하여 IP주소에 해당하는 MAC주소 찾음. 더보기 * 프로토콜 : 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하..
네트워크(Network)란? 네트워크 : 컴퓨터 등의 장치들이 통신기술을 이용하여 구축하는 연결망을 지칭하는 용어. - 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어있지 않은 집합체를 의미. 더보기 * 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미. * 링크 : 유선 또는 무선을 의미. 1. 처리량과 지연 시간 네트워크 구축시 중요한 것은 '좋은' 네트워크로 만드는 것이 중요. 좋은 네트워크 처리량 지연 시간 장애 빈도 보안 상태 많음 짧음 적음 좋음 처리량(throughput) 처리량 : 링크를 통해 전달되는 단위 시간당 데이터양을 말함. ㄴ 단위 : bps(bits per second). 초당 전송 또는 수신되는 비트의 수를 의미. ㄴ 처리량에 영향을 주는 요소 : 트래픽..
네트워크 기기 : 네트워크 구축의 기반이 되는 기기 1. 네트워크 기기의 처리 범위 - 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음. - 상위(애플리케이션쪽에 가까운) 계층을 처리하는 기기는 하위 계층 처리 가능.(반대는 불가능) 각 계층별 네트워크 기기 : • 애플리케이션 계층: L7 스위치 • 인터넷 계층: 라우터, L3 스위치 • 데이터 링크 계층: 브리지, L2 스위치 • 물리 계층: NIC, 리피터, AP 2. 애플리케이션 계층을 처리하는 기기 L7 스위치 - 로드밸런서라고도 하며, 서버의 부하는 분산하는 기기. - 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할. - 시스템이 처리할 수 있는 트래픽 증가가 설치 목표. - URL, 서버, 캐시, 쿠키들을 기반으로 트래픽을 ..