웹소켓은 하나의 TCP 연결에 전이중 통신 채널을 제공하는 통신 프로토콜이다.

여기서 말하는 전이중 통신이라는 단어는 '양방향 통신이 가능하다'는 뜻으로, 웹소켓 커넥션이 맺어진 클라이언트와 서버 간에는 하나의 커넥션을 통해 통신이 가능하다.

이는 HTTP와 가장 큰 차이점을 보이는 부분으로, HTTP 요청의 경우 보낼 때마다 새로 커넥션을 맺고 응답을 받은 후 커넥션이 종료가 되는데 비해 웹소켓의 경우에는 아래 이미지에서 보듯, 최초의 handshake 이후에 한쪽에서 커넥션을 종료시키지 않는 한 커넥션이 유지가 된다.

최초의 커넥션이 성공적으로 맺어졌다는 것을 어떻게 확인할 수 있나? handshake 성공시 101 응답을 받게 되는데, 이 101 코드의 의미는 '프로토콜 전환'이 성공적으로 이루어졌음을 말하는 것이다.

반응형

'Web & Network' 카테고리의 다른 글

NAT (Network Address Translation, 네트워크 주소 변환)  (0) 2018.12.19

사설 네트워크 (흔히 192.168.x.x로 나오는 IP 주소가 사설 네트워크이다)는 원칙적으로 외부와 소통할 수 없다. 외부와 소통하기 위해서는 인터넷 주소 관리 기관에서 공식적으로 발급받은 공인 IP를 가지고 있어야만 한다.


그렇다면 공인 IP를 갖고 있지 않은 개별 컴퓨터 (혹은 서버)는 어떻게 외부와 소통하는 것일까?


(이미지 출처: https://www.onlinecomputertips.com/support-categories/networking/601-network-address-translation-nat)


우리가 인터넷을 통해 어떤 사이트에 접속 한다고 하자. 도메인의 이름은 abc.com이라고 할 때, 이 abc.com이라는 도메인은 171.12.18.101, 171.12.18.102 171.12.18.103이라는 각 공인 IP에 매핑되어 있다. 바로 이 공인 IP를 사설 IP로 바꿔주는 것이 NAT의 역할이다. 이렇게 함으로써 사설 IP를 추가하여 내부 서버를 증설하더라도 공인 IP의 개수에 구애받지 않을 수 있다. 


반대로 각 내부 서버에서 외부로 요청이 나갈때, NAT는 사설 IP를 공인 IP로 바꿔준다. 즉 위의 이미지에서 어떤 내부 서버에서 요청을 외부로 보낸다고 할 때, 발신 IP는 매핑된 공인 IP 발신으로 나가게 된다. 

반응형

'Web & Network' 카테고리의 다른 글

웹소켓 (Websocket)은 무엇인가?  (0) 2022.12.11

+ Recent posts