본문 바로가기

General

(3)
HTTP vs WebSockets 웹소켓은 네티이브 기술이고 자바스크립트는 자체적으로 웹소켓 API를 가지고 있다. HTML/CSS/JAVASCRIPT로 이루어진 클라이언트가 있고 Node로 이루어진 서버가 있다. 서버와 클라이언트는 각각 웹소켓을 가지고 있으며, 이는 완전히 별개의 존재들이다. 노드서버의 웹소켓은 클라이언트에 웹소켓이 있는지를 모른다. 단지 소켓에 대해서만 알 뿐이다. 노드 서버의 웹소켓은 네트워크 트래픽에 대한 전송만 처리할줄 안다. 그래서 무언가가 이 사이에서 중계기 역할을 해줘야 한다. 그 역할을 해주는 프로토콜이 바로 WS프로토콜이다. 이건 네이티브 웹소켓이나 소켓io의 웹소켓이나 사용하는 방식이다. 서버는 웹소켓을 모른다. 서버는 소켓만 안다. 네트워크 트래픽의 작동만 안다. 노드의 웹소켓 모듈이 소켓과 자바스..
웹소켓 Application - HTTP, FTP, SSH, SMTP Transport - TCP/UDP Network - IP Link - wifi, 이더넷커넥션 Physical - Cable 소켓io를 자바스크립트에 비유하자면 소켓io는 Jquery같은 것이다. 뭔가 사용하기 쉽게 만들어준 놈. 웹소켓과 대표적인 차이는 Long polling같은 상황이 벌어지면 소켓io는 이것을 지원하지 못한다. 그리고 Web Socket은 참고로 TCP를 사용한다. 컴퓨터의 운영체제에서 작동하는 모든것들은 process로 간주된다. 이 프로세스들을 스레드가 휘젓고 다닌다고 보면 된다. 이 프로세스들에 가상의 파이프같은것이 달려 있다고 보자. 빨대나 튜브같은것이라고 생각해도 된다. 이 튜브가 바로 소켓이다. 그리고 이 튜브..
TCP vs UDP 와 네트워킹 101 인터넷은 클라우드라고 해서 구름처럼 퍼져있는 연결을 떠올리기 쉽다. 하지만 실은 인터넷은 실제론 컴퓨터와 컴퓨터의 연결일 뿐이다. 복잡하게 연결된 1:1의 연결의 반복.. 서로서로 이야기하는 연결들의 반복. 이것이 실제로 인터넷의 모습이다. 실제로 클라이언트와 서버라고 부르는 각각의 기계들은 데이터를 주고 받으면서 자신들의 역할을 하는데 이런 데이터들을 패킷이라고 부른다. 패킷은 다섯개의 기본적인 레이어가 있는데 1단 : 피지컬레이어, 물리 레이어.(Physical) => 케이블 2단: 링크레이어(Link) => wifi, 이더넷 커넥션 3단: 네트워크 레이어(Network) => IP 4단: 트랜스포트 레이어(Transport) => UDP/TCP 5단: 어플리케이션 레이어(Application) =>..