QoS Challenges for Real Time Traffic

Video in TIB AV-Portal: QoS Challenges for Real Time Traffic

Formal Metadata

QoS Challenges for Real Time Traffic
Deployable QoS Using the NEAT System
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Quality of Service markings can benefit real time traffic. A survey weconducted on a mobile cellular testbed (Monroe) has revealed howdifferentiated services traffic is treated in practical networks, and showsmany networks do not respect diffserv markings resulting unpredictable real-time performance. This motivates a change to the network programming API for real-time trafficto provide dynamic transport selection and fallback, enabling successful useof network QoS. The API is presented in the context of theNEAT[1](https://neat-project.org) open source project.
Real number Right angle Musical ensemble
Email Real number Line (geometry) Projective plane Length IP Computer configuration Software Internetworking Internet forum Information Communications protocol Design of experiments
NP-hard Dataflow Streaming media Client (computing) Quality of service Computer programming Wave packet Web 2.0 Workload Programmer (hardware) Different (Kate Ryan album) Internetworking Network socket Queue (abstract data type) Energy level Cuboid Endliche Modelltheorie Communications protocol Default (computer science) Default (computer science) Keyboard shortcut Menu (computing) Cartesian coordinate system Connected space Process (computing) In-System-Programmierung Computer configuration Software Quicksort Quaternion group Routing
Group action Code Mountain pass Multiplication sign Sheaf (mathematics) Set (mathematics) Bit rate Quality of service Tracing (software) Software bug Measurement Different (Kate Ryan album) Core dump Cuboid Social class Service (economics) Email Mapping Point (geometry) Electronic mailing list Drop (liquid) Bit Ɯberlastkontrolle Perturbation theory Measurement Connected space Type theory Message passing Ring (mathematics) Website Software testing Quicksort Point (geometry) Dataflow Slide rule Server (computing) Implementation Service (economics) Differentiated services Drop (liquid) Plastikkarte Differenz <Mathematik> Field (computer science) Number Local Group Differenz <Mathematik> Internetworking Operator (mathematics) Touch typing Queue (abstract data type) Selectivity (electronic) Software testing Default (computer science) Data type Default (computer science) Characteristic polynomial Poisson-Klammer Archaeological field survey Graph (mathematics) Operator (mathematics) Code Differentiated services Field (computer science) Graphical user interface Software Interpreter (computing) Formal verification Wireless LAN Routing Communications protocol
Point (geometry) Default (computer science) Graph (mathematics) Code Plotter Multiplication sign Differentiated services Bit Differentiated services Quality of service Rule of inference Field (computer science) Number Mathematics Mathematics Software Internetworking Configuration space Figurate number Window Social class
Demon Axiom of choice Socket-Schnittstelle Statistics Server (computing) Module (mathematics) Primitive (album) Public key certificate Field (computer science) Selectivity (electronic) Information security Physical system Shift operator Algorithm Information Interface (computing) Projective plane Differentiated services Bit Cartesian coordinate system Dynamic Host Configuration Protocol Connected space Hexagon Error message Software Network socket Right angle Musical ensemble Communications protocol Physical system
Satellite Dataflow Context awareness Server (computing) Link (knot theory) INTEGRAL Patch (Unix) Robot Streaming media Client (computing) Open set Quality of service Event horizon Different (Kate Ryan album) Queue (abstract data type) Energy level Category of being Error message Computer architecture Multiplication Interface (computing) Software developer Bit Cartesian coordinate system Category of being Software Data center Convex hull Hill differential equation Right angle Communications protocol
Enterprise architecture INTEGRAL Stress (mechanics) Open set Streaming media Quality of service Cartesian coordinate system Binary file Event horizon Data management Loop (music) Software Internetworking Queue (abstract data type) Musical ensemble Wireless LAN Social class
all right
there we go [Music] DJ here's going started tell us all those never over cure this light doesn't
mean anything but I think it's one of the funniest things in the world if you
do need to make many copies of an IP packet you have to press much harder otherwise it won't work I'm Tom Jones I'm a researcher at the I'm a researcher at the University of Aberdeen I work on Internet transports the neat project that I work on is trying to build a new API for accessing the network with this API we're trying to abstract away transport to make it nicer for
programmers so all of you guys so you can build applications without worrying too much about network details themselves I'm going to talk about QoS and deployability yeah so this is it everything in a picture for now yeah it's on both of my talks today and so before we could talk about us we need to talk about packets the simple model is exposed by the socket API and a lot of programming API is is that we have our client we connect through to another side and then we send data and then we get a stream of packets that goes all the way through and it all works and it's all great and there's no issues with this in reality though we're connected via Reuter and on this reel there's probably not this route is connected to Rousseau at your ISP the traffic in your ISP is trunk through MPLS it goes all the way through and eventually it will propagate out to a routes or the other side each of these rooters is a middle box for all of these readers we send traffic to them they receive and buffer the traffic and as they take in traffic and as they buffer it they have to make many copies as they make copies they make many modifications they might take shortcuts to accelerate this process so they can have them more stuff all of these middle boxes on the internet can cause trouble and we try to deploy something new and the use of qsr on the Internet is is somehow quite a new idea right now the way packets are treated without any sort of QoS considerations it's called the that is the default forwarding behavior it's hard to talk about the default where there's no QoS for the qf+ there we think of default forwarding as everybody is the same the same way we want to be treated on the Metro everybody gets on the train everybody gets off the train there's no priority for any special people there's no separate classifications there's no difference between the packets we sent in reality we have packets that we do want to be treated differently much of the web workloads we do might be best effort because we don't particularly care about it being treated better or worse but when we start going to do real-time voice where we have hard latency requirements for the data we want it to have preferential treatment in the Q's and Reuters so that if there is a large queue we can get through a slightly faster but maybe there's a trade-off for this where I try where our packets get dropped more frequently and there's also the behavior where maybe we want a lower level of classification for traffic maybe we want to use the network when it's not being used as much as possible
but as soon as active participant comes online we want this traffic to go away so now in the ITF we're trying to deploy scavenger traffic which can take advantage of the network as this Idol okay so the new picture we have our flow
of packets and we tag them differently they get passed through to Reuters as they go through Reuters they get put into different queues different hues by the middle box means that the traffic is treated in a slightly different way and we get our nice EF marked traffic all the way through a nice and quickly and everything else gets queued reasonably so for this there are lots of different per hot behaviors we can talk about and QoS is implemented optionally for each hop on the network so we have the default as I said we have expedited forwarding which we would use for latency voice and we have 12 classes of assured forward in traffic and these are set up in different priorities based on how you want things forward and how you wanted to be treated in the network themselves but all of these are implemented just depending on the hop itself for the internet we implement differential services with what used to be the type of service fields in the IP header it's now been broken out and split down into a diff surf code point and the EC n bits so we now have a 6-bit code for representing QoS we have a two-bit code that the network can use the signal congestion to a receiver which is great you should look at but well I've scope but because we're reusing an old field we get strange behaviors in the network and we can't whenever we do anything in the ITF which involves changing the wire protocol or the interpretation of bits people suddenly ask is this going to work is it going to be deployable is it going to be blocked ecn two years to get deployed at all on the internet because there were a lot of middle boxes that bleach the bits or drop traffic with them set with accurate ecn insane fallback was fixed and if this happens again for dscp then qsr is going to be a long way from be deployed so i am an academic so we did some tests and we were to figure out how code points are being recommended for use now by the ITF are being treated on the internet we want to see if there's any pass/fail if there's any number you can send a DSP that'll stop packets getting through and we want to verify that the treatment for each of these groups we have is fair for the groups we can't tell if they're being treated correctly but we can tell if they're fair between the different groups themselves we expect four different treatments for our packets they passed through fine which is great if all of dscp marks always gets to the other end then we have something useful we can use if it get drops it's the opposite we can never use this more likely we're going to see bleaching of bits either the whole field set down to zero or certain sections from the old TOS field set down to zero and remarking and remarking internet is actually a great thing it means the operators are actively processing the traffic based on what you're buying from them this is what we thought we'd look for to generate a set of points we looked at drafts in the ITF right now so there's an 802 11 draft which is trying to fix mapping from dscp to 802 11 access classes this one is quite an easy one but we're just trying to make sure they all all of the bits learn the right way if you want to go today and use DSP fork us you will get benefit from this straight away your Linux wireless really does this it's great your freebsd wireless or does this it's great anything else I don't know give me the code MPLS is the core protocol in the internet and it's used for lots of interconnects I don't like 802 11 where they're really nice and they don't touch our packets MPLS reads the IP header generates a label takes it through the network and then resets the IP header based on the label that gets through the other end so MPLS networks change lots of IP headers as they pass traffic really troubling and then the last one which would be common for everyone here and will be WebRTC the there is a draft right now for QoS saying about mark you see it offers 12 points I think so you can set one of the three types and then four priorities for each of them there's implementation in Chrome there's nothing in Firefox if you want this implemented in Firefox there is a bug tracker list and I had confirmed this week if people bother them they will do this so if you want to bother these people it's great but so I went to read all of these I generated this list of 21 points if you can't really quickly you'll see there's more than 21 things here and I fill these out in two classes so on the Left we have our best effort default class we have EF next fast latency stuff and in brackets we have LBE and this is an effort we're trying to do right now so we can have scavenger background traffic we're not sure from the measurements we've done if this is going to be feasible but if it is it's really cool I have graphs so what we've done to generate these is we've done a we've done a sort of trace route trace route style ring search through the internet for a selection of hosts we've done measurements right now I know from the course or from digitalocean servers to top 100 websites we have a testbed called Munro which has lots of 3G
connected nodes in Spain France UK in Norway we're not sure on the measurements from those but they look quite promising yeah so this tool it sets TTL low but the first thing it does is it tries to reach ability it reaches we do a TTL low and we send packets marked as a certain dscp when the TTL hits zero reuters will start forwarding packets under generate an ICMP time exceeded message the time exceeded message contains the original IP header this is so end hosts can reconstruct flows and we use this to detect where code points are changing in the network and what they are so with this tool we can't actually see the far end we can see one hop away but we can make quite a lot of conclusions from us I just have two slides on this and I have 300 of these graphs over sent this week but if
you want to see them I can show you but they're all look very similar yeah so
the one we expect this is a graph for B traffic so this is a dscp of 0 set the the plot is showing the percentage of marks at the last hop and at the top we have an average number of hops before first change and then average number of hops per path so the paths were like seven or eight hops and yeah so this is the behavior we expect to see we see a lot of RB traffic get through most of the remarking in the internet is bleaching down to zero anyway so this is a combined number we get three the more interesting one is to look at CS 1 which is the SCP 8 this is what is being suggested right now by the ietf to use for scavenger traffic so you can use this as background and we see 53% of it gets through but we see 45% of it is marked to be now for most QoS classes it's actually ok to remark because you reduce priorities so you're not asking for something implicit but with this be remarketing we're getting promoted now if you started doing a Windows Update and you only wanted it to have access to traffic when you're not trying to do useful stuff and it's getting remarked to to be in the network then you're going to see a lot more bandwidth use than you expected when your network might not be able to take advantage of this ok the interesting one all of the rest of the non code points look like this and so we see about 50% work see about 13% get marked a B and then we see some other bits this is actual remarking the other two are bleaching of bits based on the old IP TOS field we couldn't figure out why so many rooters in the internet were doing this until we went and looked at the Cisco config and the Cisco recommendation for switches and Ritter's hasn't changed in a long time and the default rule just says leave these three bits but wipe these 3 bits and this is where we get traffic like this and we can see this consistently for all the marks we feeding for network ok enough science how do I use this
from C you decide to use a DHCP I've done this in hex because I like hex pick out a nice en shift your DHCP mark up to bits so we hide the e CN field or with your EC n value and it costs that sock opt great nice and easy well the project I work on we've decided that the capi is old and crusty and we need to fix this so I have something much bigger and here we are here is yeah so here's the picture we sent to the EU [Music] yeah bureaucracy so this is what we sent it to you this stuff I don't tell them but we're not going to do it yeah no they'll never find out and so the new system offers a libuv based C API to the network so we've taken libuv and we've given it nicer networking primitives we've also given it loads of magic underneath we use traditional sockets but we can also have a we have a pluggable transport system so you can use any protocols currently we support you d PE tcp SCTP setp and userspace as like the forming protocols and we can do security transparently on top of all of these so if you don't like open SSL you don't have to use up an SSL you just give us a certificate and everything works it's great yeah this is a smaller picture but it's the same idea over on the left and right we have a Diagnostics and statistics interface and on the right we
have a policy interface the system has a daemon that runs in the background and it gathers up interface statistics interfaces as they come and go through to successful connections successful protocol probing and then we have a policy system that can use this gathered information to apply with heuristic based algorithms selection choices for what you want to do as an application you can say I want datagrams and we can figure out if you can do SCTP and if you can't do setp then you get something maybe is UDP or you can say I need reliable transport this is it and will do will do happy eyeballs choices between ipv4 ipv6 SCTP TCP we can do probing for security on the server so the applications to do it we can do all of this cool magic so that things are automatic and they fall back so the API is nice and
easy to use I don't care about this one okay so this is what an application looks like I've taken out all the error handling we we set up a context then we initialize it we have our contacts as I remain threading primitive we're dealing with this right now if you want to follow our github issues we create a flow the interface for a flow is the same for every transport we set up properties i left the old c bitmask we have but we now do properties via JSON you set up some callbacks and then we do an open and the open does everything for you you get your own connected event and you have a working flow when you have a working connection and if you've asked for something reliable then you have a working stream protocol but we might
have negotiated setp for you and you have multi streaming a lot of cool stuff yeah read and writes and so the difference between the client and the server is the knee open as me except exactly within we do virtually except for UDP so we have some stuff to make UDP look a bit more like a connected protocol and then it's obviously it works great so neat for QoS you can set the DHCP value directly because we didn't want to remove this for people who actually had an idea of what they were to do you can set it by a name or you can set it by abstract high-level primitive if an application asks for a high-level QoS and we can do lots of interesting things if we know your network is going to have issues with certain marks we can choose other marks if you have multiple interfaces and you choose a queue ask for low latency and you have a satellite link we do lot of satellite research if you have a satellite link and a Wi-Fi link then we can pick the Wi-Fi link for you while we set up the QoS and we have tons of Hoops and integration into Sdn infrastructure so if you choose a high level QoS in your data center and you have normal cheap links and you have expensive little latency links we can pick this for you and do automatic provisioning and all hoops and integrates in well together okay the all of our science is happening the public all of our papers are open access and available the EU deliverables you don't want to read them but you could specify the architecture are all available online all of our software development is happening in the open right now we have public github issue trackers build bots we will take patches from anyone we want people to be involved and play with this this is a
really nice way to access the network and it can do so much more [Applause] [Music] so all behaviors are recommendation Lots I've I set QoS and I'm at home and I have my home wireless River and I'm speaking to you and you have your home wireless River my pocket can get all the way across the internet the Q s had a Q s header intact our home roosters are going to use this for 802 11 access classes so we're gonna get our traffic and we're doing yeah for voice we're gonna get into the highest priority bin so we will get Q s data through between will do what they will well they might ignore it they might treat it differently they might have their own values for dealing with this there's a lot of active queue management that happens so it's probably going to be okay and I don't know it would be next to try the problem with this is you can't stress the network and then see what happens like us it's great for clothes networks but forget I'll note open Internet it's great at the end points so just that is a good enough reason to use it and if it gets through the networks right so if you have a run once we have an example application that does RTP streams with GStreamer and we call we tie run once into the UV event loop so that gets run once for every spin of the UV event loop if you have more suggestions I would love to hear them because it'd be great to be able to integrate more we have integration with Firefox right now but [Applause] yeah


  288 ms - page object


AV-Portal 3.19.2 (70adb5fbc8bbcafb435210ef7d62ffee973cf172)