TCP是面向字节流的那么业务怎么划分消息边界

TCP特点:

1.面向连接

2.丢失重传

3.面向流,无边界

可靠的 TCP 是传输流的,它本身并不含有消息边界。因此从字节流中区分独立的消息帧成了应用协议设计的一个基本任务。

例子:

第一次发送:abcdefg 第二次发送:123456 接收方接收数据时,可能会出现以下情况:

第一次接收:abcdefg123456 也可能出现:第一次接收:abc 第二次接收:efg12 第三次接收:3456

方法:

1.固定长度:发送固定长度的信息,适用于消息长度固定的场合。

2.长度前缀:将消息长度和消息一起发送。

3.特殊描述符:使用特殊标记分割,这种方法适合信息本身不包含特殊标记的场合。如每发送一行信息,就可以用回车换行作为分隔符。

comments powered by Disqus