티스토리 뷰
프로토콜 부터 이해하기
프로토콜은 컴퓨터나 원거리 통신 장비에서 메시지를 주고 받는 양식과 규칙의 체계이다.
우리가 1,2,3,4 를 하나 둘 셋 넷으로 알고 외국에서도 one two three four로 아는 것처럼 통신 데이터도 일종의
공통 양식이 필요한 것이다.
물론 이렇게 간단하게 양식이 설계되지 않고, 신호 체계, 인증, 오류감지, 수정, 단방향, 반이중, 전이중,
재전송, 수신 완료 과 같이 OSI 계층을 지나면서 얻는 헤더 값들을 주고받게 된다.
WebSocket 이란
웹 소켓은 하나의 TCP접속에 전이중 통신(양방향 통신) 채널을 제공하는 컴퓨터 통신 프로토콜이다.
브라우저혹은 애플리케이션이 이 프로토콜을 지원해야 된다는 것이 선제 조건이지만, 지금의 브라우저 대부분은
이 프로토콜을 지원한다. 기존에 웹 통신을 위해 HTTP 폴링과 같은 반 이중방식을 사용했었는데, 이는 더 높은
부하가 생기게된다. 통신 포트는 80(TLS 암호화 연결의 경우 443)을 통해 수행된다.
웹소켓 프로토콜 사양은 2개의 새로운 통합 자원 식별자 (URI) 스킴으로 ws, wss (WebSocket Secure)를 정의한다.
이들은 각각 암호화되지 않은 연결과 암호화된 연결에 사용된다.
TCP란?
Transmission Control Protocol의 약자로 IP와 함께 TCP/IP라는 명칭으로 널리 불리며 전송계층에 존재한다.
TCP는 패킷 전송을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
주로 사용하는 곳은 서버에 연결할때나, 이메일 전송, 파일전송에도 이용된다. (신뢰성)
TCP는 상대방과의 연결을 확인하기 위해 HandShake 과정을 거친다.
클라이언트가 SYN 비트 1로 설정 해 패킷 송신 -> 서버 에서 받게 되면 SYN + ACK 비트를 1로 설정해 송신
다시 클라이언트가 ACK와 Packet(데이터) 전송 [ 이 과정이 3-way handshake 과정이다. ]
또, 데이터를 전부 송신한 Client가 FIN 송신 -> Server가 ACK 송신 Server에서 남은 패킷 송신(일정 시간 대기)
Server가 FIN 송신 -> Client가 ACK 송신 [이 과정이 4-way handshake과정이다.]
UDP란?
User Datagram Protocol의 약자로 TCP와 마찬가지로 메시지를 교환하기위해 사용되는데,
전송방식이 단방향이고, 보내주면 끝이라고 생각해서 오류 검사나 수정이 필요없는 곳에 사용된다.
주로 IPTV, 스트리밍서비스, VoIP(음성) 등이 있다.