TCP双方的缓存是由啥规定大小的?谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP双方的缓存是由啥规定大小的?谢谢相关的知识,希望对你有一定的参考价值。

你说的是这个吧?
if (0 > setsockopt(*pSocket, SOL_SOCKET, SO_RCVBUF, &buf_size,
sizeof(buf_size)))

创建socket后设置缓存
不晓得你意思说的是设置大小,还是实际物理内存分配大小
参考技术A CPU吧

TCP滑动窗口协议

一、什么是窗口

 窗口就是规定数据传输大小和接收大小的一个容器,比如:

数据:010100011000111  数据在传输的时候有一个固定的大小

0101 (四位)==叫做数据帧,每一次能够从网络里传输的大小,这个是由系统MTC来规定的

eg:现在一次性传了100个数据,但是每次传输的大小只能是四位,每传一次都要等待一次响应,这样会造成网络的拥堵从而造成网络延迟。

如图:每次都需要响应

技术图片

 

 

 

现在规定一个窗口有3个数据帧,0000 0000 0000 第一个数据帧传完不需要响应就可以继续传下一个数据帧,直到这个窗口为止。

滑动窗口:

规定一个窗口有5个数据帧 0000,其中 序号为0的数据帧发送成功,窗口即往右移动一位,也可以同时发送5个数据帧。

另外窗口的大小也不是一定是固定的,会根据网络带宽进行加宽和缩小。

重发:其中数据帧有一个固定时间,数据包发送后就开始等待,如果等待时间超过这个固定时间还没有接收到响应,该数据帧就会重新发送一次。

 

技术图片

 

 

 注:如果序号为2的数据包传输失败,窗口虽然右移了,但是56789数据包是不会进行发送的,直到数据包2传输成功

技术图片

 

以上是关于TCP双方的缓存是由啥规定大小的?谢谢的主要内容,如果未能解决你的问题,请参考以下文章

TCP滑动窗口协议

网络

tcp135端口状态为listening是啥意思

TCP网络协议的三次握手及代码释义

Java中ServletRequest接口与HttpServletRequest接口有啥区别?

TCP/IP简介