900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > TCP中的流式传输

TCP中的流式传输

时间:2022-05-09 20:18:01

相关推荐

TCP中的流式传输

流式协议

tcp是一种流式协议

发送端应用层调用send函数完成数据发送以后,数据并没有真正从网络上发送出去,只是从应用程序拷贝到了操作系统内核协议栈。真正发送的时刻和数据大小,取决于发送窗口、拥塞窗口以及当前发送缓冲区大小等。eg:当我们发送A和B字符串,这两个字符串可以在同一个分组中被发送出去,也可以分为多个分组发送出去。接收端会根据序号进行拼接。如果发送过程中有TCP分组丢失,后续的分组陆续到达,则TCP协议栈会缓存后续的分组,直到前面丢失的分组到达。

网络字节序

大端字节序:高位在低地址,符合我们日常书写

eg:0x0201

注:如果是传输ASCII码,因为ASCII码是8位的字节组成的,因此不会涉及到大端序和小端序,直接对字节流做解码即可。

报文粘包问题

原因

解析报文时候,如果确定报文的边界很重要,不然会导致解析失败

做法

报文长度

发送端预先把报文长度发给接收端

特殊字符

利用特殊的字符作为边界

例子:http报文格式,通过设置回车符、换行符作为HTTP报文协议的边界

思考:用特殊字符作为结尾,进行报文解析的时候,需要对换行符和换行回车符都做处理?

因为Unix下文件的结尾只有\n,但windows下文件的结尾是\r\n,服务端收到报文,不知道是来自哪种系统的,因此都要做处理。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。