在学习了“窗口大小”概念后,我理解的是它在发送数据包之前保留数据包,直到最早的数据包得到确认。一旦窗口被填满,随后的数据包将会被丢弃。我还读到过TCP是一种流协议,数据包与网络层的IP协议相关联。
我之前的假设是,在代码内声明一个缓冲区,把数据填充进去,然后使用socket发送这个缓冲区。我声明了一个10000字节的缓冲区,并通过10 Gbps链路重复使用socket发送它。
以下是我的假设和问题,请核实并帮忙:
我之前的假设是,在代码内声明一个缓冲区,把数据填充进去,然后使用socket发送这个缓冲区。我声明了一个10000字节的缓冲区,并通过10 Gbps链路重复使用socket发送它。
以下是我的假设和问题,请核实并帮忙:
- 如果我想发送64、256、512等字节的数据包,就需要在代码中声明相应大小的缓冲区,并使用send()命令将其发送出去。每次执行send()命令都会发送一个相应大小的数据包。
- 那么,如果我想研究数据包大小变化对吞吐量的影响,我需要做什么呢?需要在代码中改变缓冲区的大小吗?
- 我们使用SO_SNDBUF和SO_RECVBUF设置的socket缓冲区是什么?谷歌说它是socket的缓冲区空间。它与TCP窗口大小是否相同或不同?哪个参数更适合改变或增加吞吐量?