많은 인터넷 프로토콜이 텍스트를 기반으로하는 것은 아닙니다. 사실, 내가 추측한다면 텍스트 기반 프로토콜이 소수라고 말할 것입니다. 인터넷에서 볼 수있는 거의 모든 텍스트 기반 프로토콜에는 사람들이 동일하거나 유사한 데이터를 전송하기 위해 발명 한 이진 프로토콜이 두 개 이상 있습니다.
그러나 대부분의 인터넷 트래픽 은 텍스트 기반 프로토콜을 사용합니다. 텍스트보다 이진 프로토콜이 많지만 이진보다 더 많은 텍스트 트래픽이 있다고 가정하면이 사실은 흥미 롭습니다. 인터넷 에서 성공한 프로토콜의 대부분 은 텍스트 기반 이라는 것을 의미합니다 . 소수의 응용 프로그램 (비트 토렌트가 하나의 예)을 제외하고 이진 프로토콜은 죽는 경향이 있습니다.
인터넷 초창기, 기업들은 바이너리 프로토콜 (예 : 오늘날 MSN 웹 사이트가 아닌 MSN, HTTP를 대체해야했던 독점적 MicroSoft 네트워크가 아닌 MSN)을 설계하고 사용하는 경향이 있었지만 군대, 연구소 및 학자들은 텍스트 기반 프로토콜을 디자인하고 사용합니다. 그 이유 중 하나는 바이너리 프로토콜을 구축하고 디버깅하는 것이 어려웠으며 기업은 사람들이 지불 할 비용을 지불 할 수있는 반면 군대, 연구원 및 학자는 여가 시간에 무료로 지불했습니다 (인터넷을 개발 한 사람들은 대부분 인터넷 개발과 관련이없는 직업).
주말에 취미로 코드를 작성하고 자신이하는 일에 대한 대가를 치르지 않을 때는 더 간단한 솔루션 인 텍스트를 선택하는 경향이 있습니다. 따라서 텍스트 기반 프로토콜은 이진 프로토콜보다 많은 사람들이 사용했습니다.
그러나 그것은 전체 이야기가 아닙니다. 네트워크 구축이 어렵습니다. 정말 열심히. 우리는 오늘날 인터넷에 너무 익숙하여 엔지니어링의 기적이 무엇인지 완전히 알지 못합니다. 인터넷의 거의 모든 측면이 버그 수정에서 발전했습니다. 예를 들어, 라우팅 테이블에 테라 바이트의 RAM 대신 킬로바이트 (또는 요즘 메가 바이트)로 라우터를 구축 할 수 있으므로 MAC 주소 대신 IP 주소를 사용합니다. 점점 더 많은 문제를 해결하려고할수록 텍스트 기반 프로토콜을 선호하는 경향이 있습니다. 저수준 네트워크 프로토콜 개발에 충분한 경험이 있으면, 응용 프로그램 프로토콜을 개발할 시간이되었을 때 숙련 된 프로그래머와 엔지니어 대부분은 텍스트 프로토콜을 선호하는 경향이있었습니다.
개인적인 경험으로, 라우터를 만드는 회사에서 일했고, 텔레 메 트리 장비를 만드는 회사에서 일하기도했기 때문에 TCP / IP, ARP, IEC60870-5- 101 및 DNP3. 또한 HTTP, POP3 및 NMEA와 같은 텍스트 프로토콜로 작업했습니다. 또한 ASN.1과 같은 이진 데이터 형식과 JSON 및 XML과 같은 텍스트 데이터 형식으로 작업했습니다. 내가 선택한다면 거의 매번 텍스트를 선택할 것입니다. 바이너리를 선택하는 유일한 시간은 프로토콜이 실제로 저수준 (텍스트 기반 프로토콜을 맨 위에 놓을 수 있도록 구현하거나 오디오 파일과 같이 자연스럽게 바이너리 인 경우)입니다. .