CH.5 에서... 드디어 올 것이 왔다.  TCP 

악명이 높은 TCP 통신에 관한 챕터이다.

 

 

구현하기에 앞서, TCP 에서 사용하는 패킷과 

패킷의 데이터 단위인  Buffer 에 대해 알아야 한다.

 

 

 

 

 

TCP 는 바이트 배열을 주고받으며 통신한다.

 

1바이트 = 8비트 단위의 데이터 배열이며, 

8 비트는 16진수 2자리에 해당하고, 0~255의 값을 표현 할 수 있다. ( 00 ~ FF )

 

 

16진수를 단위를 쓰는 색상코드는 한번 쯤은 봤을 것인데, 

이는 00 00 00   8비트 x3 의 코드이다.

 

 

게이머라면 써봤을법 한

 

게이머라면 알만한 프로그램인  치트 엔진에서도 

데이터를 16진수 2자리 = 8비트 로 표현하는 것을 볼 수 있다.

 

 

다음은..

 

아무튼 Node 의 기본 문자열 처리방식인  UTF-16 (16비트) 인코딩보다 빠르다는게 중요

 

 

 

 

백문불여일견 !!

 

Hello 문자열을 아스키 코드 16진수로 표현하면 48 65 6c 6c 6f 가 되고,

 

Buffer.from('Hello') 를 실행해 보면, 버퍼 객체인

 

<Buffer 48 65 6c 6c 6f> 가 출력되는것을 확인 할 수 있다.

 

왜 'H ' 가 48이 되었는가 하면,  

'H' 는 아스키 코드로 72 에 해당하고,  72 (10진) 을 16진수로 바꾸면 48이 되는것이다.

 

 

살짝 머리아픈 부분은, 막상 해당 인덱스를 찍어서 보면 72 즉, 10진수로 표시해준다는것

헷갈리지 말자 !

 

 

마무리

강의에서 설명해준 내용대로,

문자열 -> 버퍼 -> 전송  -> 문자열 의 과정을 수행해 보았다.

 

서버가 받는 문자열은 뒤집는 것 까지 !

+ Recent posts