闻过则喜
凡水肿等证,乃肺脾肾三脏相干之病。
主要是确定滑动窗口的大小,通过发送方与接收方动态协商来确认 每个程序在启动的时候都会去申请系统资源,发送和接收方缓冲区就是申请来的资源. 每次进行ACK应答的时候,ACK应答中将剩余空间的大小放在16位窗口大小,表示具体可以接收多少数据,通过接收方反制发送方对窗口大小的限制,发送方不能为了提高效率而无限的扩展窗口的
虽然TCP有了滑动窗口这个大杀器,能够高效可靠的发送大量的数据。但是如果在刚开始阶段就发送大量的数据,仍然可能引发问题。 因为网络上有很多的计算机,可能当前的网络状态就已经比较拥堵。在不清楚当前网络状态下,贸然发送大量的数据,是很有可能引起雪上加霜的。 TCP引入 慢启动 机制,先发少量的数据,探探路,摸清当前的网络拥
如果接收数据的主机立刻返回ACK应答,这时候返回的窗口可能比较小 假设接收端缓冲区为1M。一次收到了500K的数据;如果立刻应答,返回的窗口就是500K;但实际上可能处理端处理的速度很快,10ms之内就把500K数据从缓冲区消费掉了; 在这种情况下,接收端处理还远没有达到自己的极限,即使窗口再放大一些,也能处
粘包问题 在面向字节流中会出现的一个问题就是粘包问题 具体的现象 当发送方将数据发送给接受方的时候,发送的数据是以二进制(Java中的byte数组)进行传输的.接收方接受到之后,会存储到接收方的缓冲区中,发送方将多条数据发送给接收方,这多条数据一起存储到缓冲区中,此时如果我们不采取任何方式,多条数据存储到一块,这种不能
操作系统是会感知到的,可以做相应的处理 操作系统会回收进程的资源,其中释放包括文件描述符表,就想当于调用了对应socket的close之后触发FIN操作,进而开始进入四次挥手,和普通的四次挥手没有区别.通过开始菜单或执行关机命令,系统会强制结所有进程,回收资源,与程序崩溃执行的流程类似 系统不会做出任何反应 接
Websocket 是一种基于 TCP 协议的全双工通信协议,它使得客户端和服务器之间可以进行实时的双向通信。相对于传统的 HTTP 协议只能通过客户端发送请求,然后等待服务端的响应,WebSocket 可以让客户端和服务器在任何时候都可以相互发送消息,这种实时通信的方式非常适合需要实时更新数据的应用场景,比如聊天室、