2017. 8. 5 - 카우앤독 자습

#2017년 8월 5일 토요일 - 카우앤독 자습

##TCP(Transmission Control Protocol, 전송 제어 프로토콜) - 위키참조

  • TCP는 IP의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다.
  • 근거리 통신망이나 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 데이터를 안정적으로, 순서대로, 에러없이 교환할 수 있게한다.
  • 전송 계층에 위치하며 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜이다.
  • TCP는 웹브라우저 들이 WWW에서 서버에 연결할 때 사용되며, 이메일 전송이나 파일 전송에도 사용된다.

웹소켓(WebSocket) - 위키참조

  • 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다.
  • 웹소켓은 TCP 기반 소켓 API를 대체할 목적으로 HTML5 사양에서 TCPConnection으로 처음 참조됨.
  • 2008년 6월, 마이클 카터(Michael Carter)에 의해 주도된 토론으로 웹소켓으로 알려진 최초 버전의 프로토콜이 탄생함.
  • 프로토콜 핸드셰이크
    • 웹소켓을 연결하기 위해 클라이언트는 웹소켓 핸드셰이크 요청을 보내며, 이렇게 하면 서버는 웹소켓 핸드셰이크 응답을 아래의 예에서 보는 바와 같이 반환한다.
    • 클라이언트 요청:
      GET /chat HTTP/1.1
      Host: server.example.com
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
      Sec-WebSocket-Protocol: chat, superchat
      Sec-WebSocket-Version: 13
      Origin: http://example.com
      
    • 서버 응답:
      HTTP/1.1 101 Switching Protocols
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
      Sec-WebSocket-Protocol: chat
      

핸드셰이 - 위키참조

  • 핸드셰이킹(handshaking), 주고받기는 정보기술과 전기통신 및 관련분야에서 채널에 대한 정상적인 통신이 시작되기 전에 두 개의 실체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 자동화된 협상 과정이다. 채널의 물리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어진다.

  • TCP 3방향 핸드셰이크

    • 정상적인 TCP 연결을 수립하려면 3가지 단계가 필요하다.
      1. 최초의 호스트(Alice)가 두 번째 호스트(Bob)에 SYN(동기화) 메시지를 보낸다. 이 메시지에는 자체 시퀀스 번호 x가 있으며, 이것을 Bob이 받는다.
      2. Bob은 SYN-ACK 메시지와 함께 응답한다. 이 메시지는 자체 시퀀스 번호 y와 응답 번호 x+1을 포함하며, Alice가 이를 받는다.
      3. Alice는 응답 메시지와 함께 응답한다. 이 메시지는 응답 번호 y+1이 포함되며 Bob이 이것을 받지만 이에 응답할 필요는 없다.
    • 과정 Alt txt

AJAX 와 웹소켓의 차이점 - Ajax란?

  • 사용 방법으로는 Ajax와 비슷하지만 개념 면에서 Ajax와 차이를 두고 있다.
  • Ajax의 경우는 웹 브라우저에서 데이터를 호출하면 웹 서버에서 호출된 값을 검색, 작성해서 웹브라우저로 메시지를 보내는 형식의 구조.(단방향통신 클라이언트->서버)
  • 웹 소켓의 경우는 웹 브라우저에서 호출해서 데이터를 가져가는 기능 포함 반대로 서버에서 클라이언트를 호출할 수 있는 기능까지 포함됨.(양방향통신 클라이언트<->서버)

Spring-boot에서의 웹소켓 구현

Comments