TCP网络编程从socket到消息包,发送接收都是bit,传输中两端怎么知道哪些bit组成一个协议?

MILKLA

“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”

socket又称为套接字,用以TCP建立连接并进行通信时来表示的IP地址加端口号的结构作为连接的端点。

如题,传输中的两端如何知道哪些bit组成的同一个协议?

哟哟认为有两种方法可以实现,一是通过告知对端每条信息的长度,二是采用特定的分隔符将数据进行分割。

下面哟哟简单介绍一下两种方式的实现:

1、固定信息的长度

当数据被分片后,发送端在每次发送数据信息时会在首部里添加一个字段,用以表示后面内容的长度是多少,在接收端再根据长度进行组合即可;

2、特定的分隔符

通过在数据发送完毕后加入特定的分隔符,表示该数据信息已发送完毕。接收端会通过分隔符来确认数据是否发送完毕,但需要注意的是每条消息中不能包含此分隔符;


哟哟吼说科技

socket 就是把数据,前面写上目的地,端口号。就像一封信写上接收地址。然后,数据会被分成标准的长度的数据包,这是tcp/ip协议层,数据包内封装到达的目的地。物理层传输是先传播一些同步码,比如101010101010111111111111,连续传输数次同步码。接收端收到同步码后,发送响应握手信号,开始接收。接收后,根据ip地址,确定接收计算机,把数据包合并成一个大的数据,成功后,接收机会返回应答信号。发送端接到应答信号确认成功。接收机根据端口号分配给计算机指定程序。


分享到:


相關文章: