自定义 TCP 协议
Posted 百果科技研发团队
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义 TCP 协议相关的知识,希望对你有一定的参考价值。
自定义 TCP 协议
2019/01/18
01
TCP回顾
TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。从这句话中我们可以看出有以下一些重要信息。
面向连接:通过 ip,端口等进行握手验证连接等。
可靠:数据一定可以传输到对端。
基于字节流:本文讨论的重点,怎么发,怎么收等。
下图 TCP 报文格式,数据就是指我们真正传输的东西.。
02
网络字节序
网络上传输的数据都是字节流,对于一个多字节数值,在进行网络传输的时候,先传递哪个字节?也就是说,当接收端收到第一个字节的时候,它将这个字节作为高位字节还是低位字节处理,是一个比较有意义的问题。
大端:
小端:
标准化结构即是网络字节序(在网络传输过程中的结构,一般而言指的是大端字节序)
03
什么是协议
我们都知道网络传输中数据包的格式一定都是 010101 的二进制格式。
协议指的就是客户端与服务端事先商量好的,每一个二进制数据包中每一段字节分别代表什么含义的规则。
04
为什么要自定义协议
1、互联网上充斥着各种各样的网络服务,在对外提供网络服务时,服务端和客户端需要遵循同一套数据通讯协议,才能正常的进行通讯;就好像你跟台湾人沟通用闽南语,跟广东人沟通就用粤语一样。
2、实现自己的应用功能时,已知的知名协议(http,smtp,ftp等)在安全性、可扩展性等方面不能满足需求,从而需要设计并实现自己的应用层协议。
05
协议的设计
如下图的一个简单的登录协议:
在这个数据包中,第一个字节为 1 表示这是一个登录指令,接下来是用户名和密码,这两个值以