CS 공부 - 네트워크 3

3way 핸드쉐이크/4way 핸드쉐이크

📌 TCP 3-way Handshake TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위해 3-way Handshake를 사용한다. 3-way Handshake란? TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정이다. 클라이언트, 서버 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작되기전에 한 쪽이, 다른 쪽이 준비되었다는 것을 알 수 있도록 한다. 즉, TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정 1. A(Client) → B(Server): SYN 프로세스 A가 연결 요청 메시지(SYN, 'synchroni..

WS vs WAS

웹서버와 웹 어플리케이션 서버의 차이 📌 1. WS vs WAS 웹 서버와 WAS의 차이는 어떤 타입의 컨텐츠를 제공하느냐에 있다 웹서버(Web Server)는 정적인 컨텐츠 (html,css, js)를 제공하는 서버이다. ex) Apache, Nginx 웹 어플리케이션 서버(WAS)는 DB조회나, 어떠한 로직을 처리해아 하는 동적인 컨텐츠를 제공하는 서버이다. ex) Tomcat, Jeus 웹 서버와 WAS는 각각 독립적으로 존재할 수 있음 대부분의 WAS는 정적인 컨텐츠도 제공해주고 있기 때문에, 웹 서버 없이 WAS로만 존재할 수 있음 (웹 서버 < WAS 포함 개념) 📌 2. 그럼에도 불구하고 WS를 WAS 앞단에서 사용하는 이유 a. WAS가 해야 할일의 부담을 줄이기 위해서 WAS 앞에 웹서버..

[Network]블로킹, 논블로킹, 동기, 비동기

블로킹/논블로킹 - 블로킹/논블로킹은 호출된 함수가 호출한 함수에게 제어권을 건네주느냐 아니냐의 차이다 - 함수 A,B가 있고, A안에서 B를 호출했다고 가정(제어권은 B가 있음) Blocking : 제어권을 넘겨주지 않아서, 호출한 A는 B가 끝날 때까지 기다려야함 Non-blocking : 함수 B가 할 일을 마치지 않았어도 A에게 제어권을 바로 넘김, A는 B를 기다리며 다른 일 가능 동기/비동기 - 동기/비동기는 일을 수행 중인 동시성이 중요 - 위와 같이 가정 시, 함수 A와 B가 있을때, B의 수행 결과나 종료상태를 A가 신경쓰고 있느냐 아니냐의 차이 - 비동기는 callback이 오기 전까지 호출한 함수는 신경쓰지 않고 다른 일 가능 동기, Synchronous : 함수 A는 함수 B가 일을..