一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如某个网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是 ...
分类:
其他好文 时间:
2020-11-16 13:30:39
阅读次数:
6
1 TCP 粘包和拆包基本介绍 1) TCP 是面向连接的, 面向流的, 提供高可靠性服务。 收发两端(客户端和服务器端) 都要有一一成对的 socket,因此, 发送端为了将多个发给接收端的包, 更有效的发给对方, 使用了优化方法(Nagle 算法) , 将多次间隔较小且数据量小的数据, 合并成一 ...
分类:
Web程序 时间:
2020-05-04 00:28:47
阅读次数:
73
Nagle算法 Nagle算法是为了避免网络中存在太多的小包(协议头比例非常大)造成拥塞。Nagle算法就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。 算法如下:若发送应用进程要发送的数据逐个字节地送到TCP的发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来 ...
分类:
其他好文 时间:
2020-03-31 17:32:09
阅读次数:
73
以太网中存在一个对于帧的有效数据大小的限制,即 MTU,以太网的 MTU 为 1500 字节。一、断包就是说发送端一次发送的消息长度过大,如果超过了 MTU,那么 ip 会对其进行分片。在网络编程中,要避免出现 IP 分片。因为是 IP 层是没有超时重传机制的,如果 IP 层对一个数据包进行了分片,... ...
分类:
其他好文 时间:
2020-03-15 16:20:33
阅读次数:
78
TCP通信粘包问题分析和解决(全) 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据 ...
分类:
其他好文 时间:
2020-03-02 18:50:55
阅读次数:
99
TCP协议下的粘包问题 粘包问题出现在TCP协议下,在UDP协议下不会出现粘包的问题。 粘包问题出现的原因: 应用层被成为应用元,操作系统被被称为系统元 合包机制:在TCP协议下有一个合包机制,当应用层传输过来数据后,如果数据较小,并且连续多次传输,此时nagle算法会对把多个数据进行 打包,统一发 ...
分类:
其他好文 时间:
2020-02-29 01:00:55
阅读次数:
79
转自: https://www.cnblogs.com/caoyusongnet/p/9087633.html 一. 端口号 标准的端口号由 Internet 号码分配机构(IANA)分配。这组数字被划分为特定范围,包括熟知端口号(0 - 1023)、注册端口号(1024 - 49151)和动态/私 ...
分类:
其他好文 时间:
2020-01-11 17:01:46
阅读次数:
118
1、什么是 tcp 粘包? 发送方发送的多个数据包,到接收方缓冲区首尾相连,粘成一包,被接收。 2、原因 TCP 协议默认使用 Nagle 算法可能会把多个数据包一次发送到接收方。 应用程读取缓存中的数据包的速度小于接收数据包的速度,缓存中的多个数据包会被应用程序当成一个包一次读取。 3、处理方法 ...
分类:
其他好文 时间:
2019-12-24 11:48:39
阅读次数:
70
1、什么是 tcp 粘包? 发送方发送的多个数据包,到接收方缓冲区首尾相连,粘成一包,被接收。 2、原因 TCP 协议默认使用 Nagle 算法可能会把多个数据包一次发送到接收方。 应用程读取缓存中的数据包的速度小于接收数据包的速度,缓存中的多个数据包会被应用程序当成一个包一次读取。 3、处理方法 ...
分类:
其他好文 时间:
2019-11-25 11:18:18
阅读次数:
94
TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合 ...
分类:
其他好文 时间:
2019-08-11 17:03:57
阅读次数:
96