Transport layer end-to-end rate control in ns-3 - ns-3

I am looking for an end-to-end rate control for an application that uses UDP. What can I use/implement for that?
I couldn't find any of the RTP and DCCP implemented.

You can use linux kernel implementation of DCCP through DCE.

Related

Listening for all incoming packets to a certain network interface using Boost/ASIO

I was looking all over the internet to find a way to capture incoming packets from a certain network interface, then I came across PCAP, TCPDUMP, I believe the most commonly used networking library out there is Boost/Asio, so I wanted to use this library in order to capture traffic, but apparently there is no example for using Raw sockets or other classes to listen for incoming packets to a certain NI, I would appreciate any help or examples on this.
We eventually found out the best option for sniffing incoming packets was Libtins.
libtins is a high-level, multiplatform C++ network packet sniffing and crafting library.
Its main purpose is to provide the C++ developer an easy, efficient,
platform and endianness-independent way to create tools which need to
send, receive and manipulate network packets.
It uses a BSD-2 license and it's hosted at github.

Light-weight implementation of the TCP/IP protocol suite in NS-3

I was looking for workable options available in NS-3 to use and modify light-weight implementation of the TCP/IP (LWIP) protocol suite. So far I have found network simulations cradle (https://www.nsnam.org/docs/models/html/tcp.html#network-simulation-cradle) installation as the only option but I can only see executable stacks for linux2.6.18 and linux2.6.26. There is no executable stack for lwip. I am also having a hard time finding any tutorial online on the usage of lwip in NS-3.
Is there any way to execute lwip stack in NS-3? If not, does anyone know of any other light-weight tcp variant (with limited functionality and small footprint) that can be simulated in NS-3?

Best protocol for UDP streaming

Currently, I'm using open source code from OBS multiplatform for my video streaming application. But OBS uses RTMP for streaming, which only works on TCP. I want to use UDP since this is a live streaming scenario where I don't desire latency.
What is the best way to move to UDP? I read that protocols like RTP support UDP. Is this the best option to use? How about writing a simple UDP socket code to send and receive video data? Please guide.
The reason for trying to move to UDP is to ensure minimum latency between client and server. I'm looking for a quickest way to move to a udp based streaming than the current RTMP which uses TCP. I'm not very experienced in networking related coding. Will a simple socket program suffice to stream a video data continuously or should I implement a protocol like RTP? Or any other alternative? Ultimately, streaming should be smooth with minimum latency.

How to test proprietary network protocol

I have a system I want to test, the system handles a proprietary network protocol (this need to be checked). The tested protocols are over TCP and UDP.
I'm looking for a software I could install on my OS-X/Linux/Windows computer connect it to the system I want to test and inject protocol messages and analyse feedback (software should have the ability to compare for each received message if it is the expected one etc.).
Prefer a software with a nice looking GUI and open-source so I could add features if needed (could be a paid software).
Where should I begin?
There is a probably a library/framework which implements the protocol. My approach would be to use it (or write it when it's missing) to write simply unit tests.
There are many unit testing frameworks with nice GUIs, headless modes and automated tools, so unless you can be more specific, it's hard to suggest something.
With the Argos protocol analyzer (http://xpro.co/index.php/products/argos), you can:
define your proprietary protocol in XML
monitor IP traffic, offload to TCP/UDP endpoints, load proprietary
format text/binary logfiles
visualize the analysis
send commands/messages from command forms, where you can include also
a COM/ActiveX control, which can generate and receive traffic and
implement the logic behind it
Argos runs on Windows and it is a paid software.
Using Load Multiplier (loadmultiplier.com), you can test proprietary protocols. Any text / binary call flows (with / without media) over any transport protocol like (udp / tcp / tls / dtls / sctp / websocket / secured websocket) can be simulated using multiplier.
Disclaimer: I work for load multiplier tool.

How to use twin oaks DDS for an iOS app to communicate a non-iOS device?

We are using Twin Oaks DDS for windows. Can anyone help me in understanding how to use twin oaks DDS for iOS app to communicate with a non-iOS device??
Thanks,
Ravi Kumar
In general there are no special requirements for using CoreDX DDS from Twin Oaks to communicate between an iOS device and a non-iOS device. CoreDX DDS (as with most other DDS implementations) provides for platform independence.
You will need to link in the CoreDX DDS library (specific for the target hardware) into your iOS app, and use the DDS programming API to create publishers and/or subscribers as desired - just like on any other run-time platform.
The default transport mechanism of CoreDX DDS [the Real-Time Publish Subscribe (RTPS) protocol -- a combination of UDP unicast and multicast] is designed to support typical LAN environments, and will work well over WiFi. If you intend to communicate over cellular networks, be aware that the carrier may be using NAT or Firewall configurations that conflict with the standard UDP transport. In this case, you may consider using the TCP based transport.