NS3:如何为每个TCP会话设置RcvBufSize

NS3: how to setup RcvBufSize for each TCP session?

本文关键字:TCP 会话 设置 RcvBufSize NS3      更新时间:2023-10-16

我必须使用不同的RcvBufSize运行两个TCP会话。

我知道以下代码可以为所有TCP会话设置RcvBufSize。

Config::SetDefault("ns3::TcpSocket::RcvBufSize", UintegerValue (1500000));

实际上,我正在寻找像setsockopt()这样的功能来为每个TCP会话设置SO_RCVBUF。

我也试图将Ptr<Socket>降到Ptr<TcpSocket>,但SetRcvBufSize()是私人功能......

有没有办法解决这个问题?

我使用SetAttribute调用更改了应用程序中的SndBufSize。我有一个带有套接字指针成员的类ns3::Ptr<ns3::Socket> m_pSocket,要更改发送缓冲区大小,我这样做:

// create tcp socket
m_pSocket = ns3::Socket::CreateSocket( GetNode(), ns3::TcpSocketFactory::GetTypeId() );
m_pSocket->SetAttribute("SndBufSize", ns3::UintegerValue(4096000));

因此,在您的情况下,您必须致电:

yourSocket->SetAttribute("RcvBufSize", ns3::UintegerValue(1500000));

通过这种方式,您可以设置 ns3::TcpSocket 的每个属性。