TCP/IP
ye2moe
与其感慨其路难行,不如现在出发.
展开
-
TCP原理 I/O 缓存
TCP 套接字中的 I/O 缓存由于TCP套接字中数据收发无边界。 假设服务器端调用write函数一次传输100字节数据,客户端可能分两次调用read函数每次读取100字节的数据。 那么第一次读取完50字节的数据后,剩下的50字节的数据在何处呢?难道在网络中徘徊并等待接收?实际上write函数调用后并非立即传输数据,read函数调用后也并非马上接收数据。更准确地说,write函数调用瞬间,将数据转原创 2017-12-09 23:22:20 · 626 阅读 · 1 评论 -
Nagle算法
Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率。 TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置MSS参数,因此,TCP/I原创 2017-12-10 14:10:57 · 428 阅读 · 0 评论 -
TCP原理 粘包分包现象
参考: 云栖社区:就是要你懂 TCP– 最经典的TCP性能问题 粘包现象产生的原因由于TCP协议本身的机制(三次握手)客户端与服务器会维持一个连接(Channel),数据在连接不断开的情况下,可以持续不断地将多个数据包发往服务器,但是如果发送的网络数据包太小,那么他本身会启用Nagle算法(可配置是否启用)对较小的数据包进行合并(基于此,TCP的网络延迟要UDP的高些)然后再发送(超时或者包大原创 2017-12-10 13:59:46 · 1074 阅读 · 0 评论 -
TCP原理 滑动窗口
滑动窗口机制滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的,并且滑动窗口分为接收窗口和发送窗口。 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;原创 2017-12-10 00:21:41 · 3444 阅读 · 0 评论