【问题标题】:NS3: how to setup RcvBufSize for each TCP session?NS3:如何为每个 TCP 会话设置 RcvBufSize?
【发布时间】:2016-05-22 16:00:48
【问题描述】:

我必须运行两个具有不同 RcvBufSize 的 TCP 会话。

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

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

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

我也尝试将Ptr<Socket> 向下转换为Ptr<TcpSocket>,但SetRcvBufSize() 是私有函数...

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

【问题讨论】:

  • 我也尝试将 Ptr 向下转换为 Ptr,但是 SetRcvBufSize() 是私有函数...

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


【解决方案1】:

我使用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的每一个属性。

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多