네트워크 썸네일형 리스트형 Blocking/Non-blocking & Synchronous/Asynchronous Blocking / Non-blocking Blocking: 호출된 함수가 완료될 때까지 호출한 함수 실행을 멈춤, 제어권이 호출된 함수에 있음 Non-blocking: 함수 호출 시 호출된 함수가 즉시 제어권 반환, 호출한 함수는 제어권 가지고 계속 실행 Synchronous / Asynchronous Synchronous (동기): 작업 완료 여부 따져 작업들이 순차적으로 실행, 완료 여부 따로 확인 Asynchronous (비동기): 요청한 작업에 대해 완료 여부를 따지지 않고 서로 독립적으로 실행, 완료 시 콜백 반환 결합된 형태 Blocking Synchronous: 전통적인 동기적 함수 호출, 호출된 함수가 완료될 때까지 대기 Non-blocking Synchronous: 호출된 작업은 즉시 .. 더보기 로드 밸런싱 네트워크 트래픽을 여러 서버에 분산시켜 처리하는 기술 정적 로드 밸런싱(서버 상태 고려 X) 라운드 로빈 방식: 동일한 순서로 서버 목록을 순회하며 요청을 분산 가중 기반 라운드 로빈 방식: 각 서버의 용량이나 우선순위에 따라 다른 가중치를 부여하여 요청을 분산 IP 해시 방식: 클라이언트의 IP 주소를 기반으로 해싱하여 특정 서버에 요청을 지속적으로 할당 동적 로드 밸런싱(서버 상태 고려 O) 최소 연결 방법: 활성 연결 수가 가장 적은 서버에 새 요청을 할당 가중치 기반 최소 연결 방법: 서버의 가중치와 활성 연결 수를 고려하여 요청을 분산 최소 응답 시간 방법: 서버의 응답 시간을 고려하여 가장 빠른 응답을 제공할 수 있는 서버에 요청을 할당 리소스 기반 방법: 서버의 현재 리소스 사용량을 분석하여.. 더보기 HTTP & HTTPS HTTP 웹 상에서 클라이언트-서버가 데이터를 주고받기 위한 통신 프로토콜 html, css, js, 이미지, 폰트 등 전송 클라이언트 요청(requests) 서버 응답(responses) GET(요청), POST(작성), PUT(수정), PATCH(일부 수정), DELETE(삭제) 등의 메소드 사용 HTTP/0.9 GET 메서드로 HTML 파일만 가져올 수 있음 HTTP/1.0 헤더로 메타데이터 전송 GET, POST, HEAD 메소드 사용 Content-Type 추가(text/html, image/webp, audio/mp4, application/json 등) 상태 코드 추가 connection 하나당 1 요청, 1 응답만 처리 HTTP/1.1 연속적인 요청 사이에 커넥션 유지 OPTION, PUT.. 더보기 TCP/IP 흐름제어, 혼잡제어 Reliable Network 보장 문제 패킷 손실 패킷의 순서 바뀜 수신자 과부하 네트워크 혼잡 흐름제어 (Flow Control) 송신자와 수신자 간의 데이터 전송 속도를 조절 수신측의 저장 용량을 초과한 이후에 도착하는 데이터는 손실 될 수 있음 방법 Stop and Wait: 매번 전송한 데이터에 대해 확인 응답을 받아야만 그 다음 데이터 전송 Sliding Window: 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인응답없이 데이터를 전송 혼잡제어 (Congestion Control) 네트워크 내의 데이터 트래픽이 네트워크의 처리 능력을 초과하는 것을 제어 네트워크 혼잡이 발생하면 패킷 손실률이 증가하고, 전체 네트워크 성능이 저하 방법 AIMD(Additive Increase / Multip.. 더보기 TCP와 UDP 데이터 전송 계층의 두 가지 핵심 프로토콜 TCP UDP 연결 방식 연결 지향적 (3-way handshake로 연결 설정) 비연결 지향적 (연결 설정 없음) 전송 순서 보장됨 보장되지 않음 수신 여부 확인 수신 확인응답(ACK)을 통해 확인 확인하지 않음 통신 방식 점대점 (1:1 통신) 다대다 통신 가능 (브로드캐스트, 멀티캐스트) 신뢰성 높음 (자동 재전송, 순서 제어, 혼잡 제어) 낮음 (수신 여부, 순서 보장 없음) 속도 상대적으로 느림 상대적으로 빠름 사용처 이메일 전송, 파일 전송 등 신뢰성이 중요한 통신 실시간 스트리밍 등 지연 시간 최소화가 필요한 통신 더보기 TCP Handshak 3-Way-Handshak TCP/IP 프로토콜을 이용한 통신에서 데이터를 주고받기 전 연결 과정 순서 클라이언트는 서버에 접속을 요청하는 SYN(M) 패킷을 보낸다. 서버는 클라이언트의 요청 패킷을 받고 요청을 수락한다는 ACK(M+1)과 SYN(N)이 설정된 패킷을 발송한다. 클라이언트는 서버의 수락 응답 패킷을 받고 ACK(N+1)을 서버로 보낸다. 연결이 성립된다. 4-Way-Handshak TCP/IP 프로토콜을 이용한 통신에서 연결 해제 과정 순서 클라이언트가 서버에 FIN 패킷 전송 → FIN-WAIT 상태 서버가 FIN 패킷 수신, 클라이언트에 ACK 전송 → CLOSE_WAIT 상태 (자신이 보낼 데이터 다 보낼 때까지 대기) 서버가 연결 종료할 준비가 되었으면 클라이언트에 FIN 패킷 .. 더보기 OSI 7계층 1. 물리 계층(Physical) 물리적 신호(0, 1) 전송 통신 케이블, 허브, 리피터 2. 데이터 링크 계층(DataLink) 흐름 제어 및 오류 제어 담당 같은 네트워크에 속한 기기들 간의 통신을 담당 MAC 주소를 이용해 통신 프레임(Frame) 단위 Ethernet 프로토콜 스위치, 브리치 3. 네트워크 계층(Network) 서로 다른 두 네트워크 간 통신 담당 네트워크 계층은 데이터가 표적에 도달하기 위한 최상의 물리적 경로를 찾는데 이를 라우팅이라고 함 IP주소 이용해 통신 패킷(packet) 단위 라우터 4. 전송 계층(Transport) 통신을 활성화 오류검출 및 복구와 흐름제어, 중복검사 TCP, UDP 프로토콜 세그먼트(Segment) 단위 5. 세션 계층(Session) 두 기기 .. 더보기 이전 1 다음