NS3:如何为每个 TCP 会话设置 RcvBufSize?
NS3: how to setup RcvBufSize for each TCP session?
我必须 运行 两个具有不同 RcvBufSize 的 TCP 会话。
我知道以下代码可以为所有 TCP 会话设置 RcvBufSize。
Config::SetDefault("ns3::TcpSocket::RcvBufSize", UintegerValue (1500000));
实际上,我正在寻找类似 setsockopt()
的函数来为每个 TCP 会话设置 SO_RCVBUF。
我也试过将Ptr<Socket>
向下转换为Ptr<TcpSocket>
,但是SetRcvBufSize()
是私有函数...
有什么办法可以解决这个问题吗?
我在应用程序中使用 SetAttribute
调用更改了 SndBufSize
。我有一个 class 和套接字指针成员 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的每个属性。
我必须 运行 两个具有不同 RcvBufSize 的 TCP 会话。
我知道以下代码可以为所有 TCP 会话设置 RcvBufSize。
Config::SetDefault("ns3::TcpSocket::RcvBufSize", UintegerValue (1500000));
实际上,我正在寻找类似 setsockopt()
的函数来为每个 TCP 会话设置 SO_RCVBUF。
我也试过将Ptr<Socket>
向下转换为Ptr<TcpSocket>
,但是SetRcvBufSize()
是私有函数...
有什么办法可以解决这个问题吗?
我在应用程序中使用 SetAttribute
调用更改了 SndBufSize
。我有一个 class 和套接字指针成员 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的每个属性。