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

时间:2016-05-22 16:00:49

标签: c++ tcp buffer ns-3 setsockopt

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

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

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

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

我还尝试将Ptr<Socket>转发给Ptr<TcpSocket>,但SetRcvBufSize()是私人功能......

无论如何都有解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

我使用SndBufSize调用在我的应用中更改了SetAttribute。我有一个带有套接字指针成员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的每个属性。