我通过c需要写了一个简单的tcp socket的服务端和客户端,一开始我设置客户端发送固定的数据包大小200,但是实际上真正的数据就几个字节,我通过tcpdump抓包发现发送的数据包有两千多字节的,里面实际包含我多次发送的数据内容,后面我设置客户端发送数据的大小就是数据的大小,然后抓包发现数据包的大小就是真实数据的大小,没有出现之前的多个包一起发的情况,send函数的作用不就是把数据拷贝到缓冲区然后返回,真正发送数据是由tcp协议来决定的,为啥两次的结果不一样呢?
由传输路径中的各个节点(电脑、交换机、路由器)的接口MTU值,以及当前线路的拥堵情况来决定。