• Home
  • Raw
  • Download

Lines Matching +full:network +full:- +full:based

1 # Network Emulation Framework
3 <?% config.freshness.reviewed = '2021-03-01' %?>
9 This documentation explain the implementation details of Network Emulation
19 Network Emulation Framework provides an ability to emulate network behavior
21 configure network behavior, the user can choose different options:
28 routes used to connect them. All network related entities are created and
37 network routes from senders to receivers. This task queue behaviour is
38 determined by `webrtc::TimeController`, which is based on either in real time or
41 The network operates on IP level and supports only UDP for now.
47 * `webrtc::NetworkBehaviorInterface` - defines how emulated network should
51 * `webrtc::EmulatedIpPacket` - represents a single packet that can be sent or
52 received via emulated network. It has source and destination address and
55 * `webrtc::EmulatedNetworkReceiverInterface` - generic packet receiver
58 * `webrtc::EmulatedEndpoint` - primary user facing abstraction of the
59 framework. It represents a network interface on client's machine. It has its
63 packets from the network and provides an API to send packets to the network
68 * `webrtc::EmulatedNetworkNode` - represents single network in the real world,
69 like a 3G network between peers, or Wi-Fi for one peer and LTE for another.
72 Multiple nodes can be joined into chain emulating a network path from one
82 * `webrtc::EmulatedRoute` - represents single route from one network interface
83 on one device to another network interface on another device.
93 * `webrtc::test::NetworkRouterNode` - an `EmulatedNetworkReceiverInterface`
94 that can route incoming packets to the next receiver based on internal IP
97 * `webrtc::test::LinkEmulation` - an `EmulatedNetworkReceiverInterface` that
98 can emulate network leg behavior via `webrtc::NetworkBehaviorInterface`
105 `rtc::NetworkManager` for WebRTC to use as network thread for
108 Implementation represent framework endpoints as `rtc::Network` to WebRTC.
114 When the user wants to setup emulated network, first of all, they should create
121 Here is a visual overview of the emulated network architecture:
125 When network is hooked into `PeerConnection` it is done through network thread
126 and `NetworkManager`. In the network thread the custom `rtc::SocketServer` is
130 inside socket have to be done on the `PeerConnection`'s network thread. When
131 packet is going from `PeerConnection` to the network it's already comming from
132 the network thread and when it's comming from the emulated network switch from
133 the Network Emulation Framework internal task queue and `PeerConnection`'s
134 network thread is done inside socket's `OnPacketReceived(...)` method.
136 ![Network Injection](network_injection_into_peer_connection.png "Network Injection")