Multipath TCP for FreeBSD

Video in TIB AV-Portal: Multipath TCP for FreeBSD

Formal Metadata

Multipath TCP for FreeBSD
An overview of the protocol, stack architecture & performance analysis
Title of Series
CC Attribution 3.0 Unported:
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

Content Metadata

Subject Area
Come with me on a journey to learn about the Multipath TCP (MPTCP) protocol and the first publicly released FreeBSD implementation. This talk will examine MPTCP's 'wire' characteristics, the architecture of the modified FreeBSD TCP stack, observations from the development process and results of both performance analysis and empirical research conducted using the stack. Multipath TCP (MPTCP) transparently retrofits multi-pathing capabilities to regular TCP and is a work in progress Internet Draft being developed within the IETF. The Cisco University Research Program funded the Centre for Advanced Internet Architectures to develop an interoperable implementation of MPTCP for FreeBSD as part of a research project to study mixing loss-based and delay-based congestion control in a multipath context. As a researcher on the funded project and lead author of the FreeBSD MPTCP implementation, I've data and insights to share with you about the process of going from stock FreeBSD and an IETF Draft to an interoperable MPTCP implementation that is being used in ongoing research programmes.
Point (geometry) Slide rule Implementation Freeware Link (knot theory) Divisor Patch (Unix) Sheaf (mathematics) Mereology Computer programming Goodness of fit Different (Kate Ryan album) Kernel (computing) Alphabet (computer science) Energy level Data structure Implementation Communications protocol Website Multiplication Installable File System Form (programming) Computer architecture Computer font Sine Patch (Unix) Moment (mathematics) Coma Berenices Bit Website Right angle
Presentation of a group Freeware State of matter Software developer Computer Quality of service Field (computer science) Architecture Degree (graph theory) Process (computing) Kernel (computing) Personal digital assistant Quicksort
Point (geometry) Functional (mathematics) Multiplication sign Mobile Web First-order logic RAID Regular graph Internetworking Military operation Cuboid Multiplication Computer font Standard deviation Multiplication Netbook Channel capacity Sine Server (computing) Weight Interface (computing) Computer network Cartesian coordinate system Connected space Single-precision floating-point format Particle system Kernel (computing) Interface (computing) Connectivity (graph theory) Video game Quicksort Spacetime Extension (kinesiology) Address space
Frequency Shift operator Observational study Internetworking Multiplication sign Interface (computing) Mobile Web Quicksort Event horizon Frame problem Connected space Wave packet
Standard deviation Email Scheduling (computing) Fibonacci number Sequence space Multiplication sign Decision theory 1 (number) Open set Mereology Special unitary group Database normalization Inference Mathematics Computer configuration Kernel (computing) Network socket Physical system Metropolitan area network Link (knot theory) Satellite Arm Channel capacity Closed set Moment (mathematics) Sampling (statistics) Amsterdam Ordnance Datum Parallel port Bit Überlastkontrolle Control flow Connected space Category of being Type theory Data management Computer configuration Interface (computing) Pattern language Quicksort Simulation Point (geometry) Frame problem Dataflow Statistics Implementation Game controller Momentum Link (knot theory) Line (geometry) Connectivity (graph theory) Control flow Überlastkontrolle Online help Graph coloring Lattice (order) Metadata Emulation Number Frequency Term (mathematics) Message passing Address space Condition number Execution unit Information management Standard deviation Sine Interface (computing) Projective plane Cartesian coordinate system Single-precision floating-point format Component-based software engineering Database normalization Maize Software Nonlinear system Personal digital assistant Logic Network socket Window
Point (geometry) Group action Random number generation Token ring Mountain pass Open set Mereology Sequence Order (biology) Mathematics Goodness of fit Regular graph Computer configuration Phase transition Sequence space Extension (kinesiology) Information security Arm Key (cryptography) Sine Interface (computing) Web page Moment (mathematics) Connected space CAN bus Number Message passing Computer configuration Personal digital assistant Phase transition Energy level Table (information)
Sine Mountain pass Multiplication sign Web page Disk read-and-write head Mereology Sequence Order (biology) Number Regular graph Computer configuration Phase transition Video game Sequence space Energy level Quicksort Cycle (graph theory) Summierbarkeit Installable File System Spacetime
Sequence space Mountain pass Execution unit 1 (number) Mereology Regular graph Number Sequence Heegaard splitting Regular graph Different (Kate Ryan album) Computer configuration String (computer science) Cuboid Energy level Sequence space Logic gate Maß <Mathematik> Physical system Standard deviation Arm Sine Bit Color management Sequence Band matrix Type theory Number Spring (hydrology) Order (biology) Energy level Quicksort Spacetime
Standard deviation Sequence space Multiplication sign 1 (number) Insertion loss Mereology Computer programming Single-precision floating-point format Logic Diagram Sequence space Endliche Modelltheorie Link (knot theory) Web page Bit Mereology Überlastkontrolle Control flow Sequence Connected space Band matrix Computer cluster Order (biology) Personal area network Right angle Energy level Quicksort Simulation Surjective function Spacetime Implementation Game controller Mapping Link (knot theory) Algorithm Channel capacity 3 (number) Überlastkontrolle Regular graph Sequence Latent heat Term (mathematics) Energy level Spacetime Selectivity (electronic) Summierbarkeit Computing platform Condition number Window Execution unit Dataflow Assembly language Sine Basis <Mathematik> Sphere Word Software
Standard deviation Implementation Server (computing) Freeware Algorithm Channel capacity Überlastkontrolle Value-added network Web 2.0 Frequency MKS system of units Implementation Mathematical optimization Condition number Window Area Link (knot theory) Web page Sound effect Mereology Control flow Personal digital assistant Uniform resource name Thermal radiation Vertical direction Simulation
Game controller Context awareness Mapping Multiplication sign Assembly language Disintegration Software bug Architecture Order (biology) Mathematics Different (Kate Ryan album) Network socket Energy level Data structure Communications protocol Module (mathematics) Socket-Schnittstelle Context awareness Boss Corporation Assembly language Mapping Block (periodic table) Content (media) Electronic mailing list Shared memory Code Stack (abstract data type) Flow separation Symbol table Kernel (computing) Integrated development environment Multi-agent system Network socket Buffer solution Order (biology) Right angle Energy level Queue (abstract data type) Quicksort Simulation Data structure Data buffer
Point (geometry) Trail Context awareness Mapping State of matter Disintegration Execution unit 3 (number) Online help Arm Architecture Order (biology) Single-precision floating-point format Energy level Arc (geometry) Metropolitan area network Context awareness Dialect Assembly language Information Sine Cellular automaton Interface (computing) Moment (mathematics) Code Control flow Port scanner Euler angles Cartesian coordinate system CAN bus Word Network socket Order (biology) Buffer solution Right angle Queue (abstract data type) Energy level Data structure Spacetime Data buffer
Point (geometry) Slide rule Scheduling (computing) Mapping State of matter Execution unit Source code Maxima and minima Function (mathematics) Mereology Architecture Causality Term (mathematics) Buffer solution Energy level Information Data structure Resource allocation Boss Corporation Trail Mapping Block (periodic table) Mathematical analysis Plastikkarte Entire function Particle system Personal digital assistant Network socket Function (mathematics) Quicksort Data buffer
Mapping Trail Mapping Sine Electronic mailing list Maxima and minima Electronic mailing list Sequence Number Architecture Buffer solution Network socket Function (mathematics) Right angle Information Data structure Data buffer
Execution unit Sine Source code Electronic mailing list Electronic mailing list Disk read-and-write head Cartesian coordinate system Variable (mathematics) Sequence Architecture Uniform resource name Order (biology) Data structure Game theory Endliche Modelltheorie Data structure
Greatest element Scheduling (computing) System call Mereology Order (biology) Computer configuration Process (computing) Email Arm Broadcast programming Moment (mathematics) Electronic mailing list Bit Maxima and minima Überlastkontrolle Control flow Sequence Process (computing) Uniform resource name Buffer solution Order (biology) Right angle Energy level Queue (abstract data type) Quicksort Block (periodic table) Data structure Spacetime Data buffer Point (geometry) Mapping Link (knot theory) Divisor Denial-of-service attack Electronic mailing list Number Sequence Architecture Causality Term (mathematics) Energy level Execution unit Scaling (geometry) Information Sine Cellular automaton Line (geometry) Cartesian coordinate system Symbol table CAN bus Number Window
Multiplication Mapping Trail Mapping Web page Moment (mathematics) Length Content (media) Infinity Drop (liquid) Bit Drop (liquid) Symbol table Area Chain Resource allocation Network socket Uniform resource name Quicksort Scheduling (computing) Data buffer
Point (geometry) Slide rule Scheduling (computing) Mapping Manufacturing execution system Multiplication sign Electronic mailing list Function (mathematics) Disk read-and-write head Special unitary group Food energy Perspective (visual) Area Number Frequency Goodness of fit Mathematics Cache (computing) Cuboid Extension (kinesiology) Game theory Amenable group Source code Parsing Mapping Sine Cellular automaton Moment (mathematics) Code Maxima and minima System call CAN bus Resource allocation Computer configuration Personal digital assistant Uniform resource name Royal Navy Buffer solution Right angle Scheduling (computing) Vacuum
Tuple Scheduling (computing) Existential quantification Context awareness Randomization Multiplication sign Decision theory Direction (geometry) Execution unit Range (statistics) Insertion loss Mereology Disk read-and-write head Formal language Insertion loss Different (Kate Ryan album) Kernel (computing) Military operation Aerodynamics Information Website Error message Scripting language Area Source code Parsing Software bug Algorithm Link (knot theory) Decision theory Web page Moment (mathematics) Gradient Electronic mailing list Bit Überlastkontrolle Category of being Process (computing) Computer configuration Angle Architecture Buffer solution Interrupt <Informatik> Right angle Quicksort Whiteboard Metric system Arithmetic progression Implementation Game controller Momentum Patch (Unix) Tape drive Überlastkontrolle Electronic mailing list Field (computer science) Emulation Number Cache (computing) Internetworking MiniDisc Conditional-access module Macro (computer science) Metropolitan area network Surjective function Condition number Sine Forcing (mathematics) Interface (computing) Projective plane Code Cartesian coordinate system System call Particle system Word Kernel (computing) Integrated development environment Personal digital assistant Network topology Revision control Game theory Scheduling (computing) Address space Extension (kinesiology)
Link (knot theory) Sine Kernel (computing) Military operation Revision control 3 (number) Information Website Address space Extension (kinesiology)
the community can come up against a rocket science at the moment and that's not some people still interested in participating all so this'll preface
this by saying that only got invited to speak on Thursday of last week and so on between traveling halfway across the world and organizing all that and getting here today on at the right up some slides so I can be a little bit high-level possibly what people make have expected come + and if next couple of days so if there's anything that you're interested in whatever that lead to good overview of what's happening and you come up and talk to me about details are in that at any point so basically the also can be kind divide into 2 parts the 1st alphabet itself but my guess is a couple different of multipath kind of solutions out there and ideas people have different ideas about how the mind works and what not from solid to be good idea of how this particular implementation works I'm an analogous to refine the high level of architecture of what we've done where a patch is at the moment and it's not is not completely 100 % quite yet you know just some of the experiences that we had in in following an Internet-Draft announces experimental artsy but some of the pitfalls and form was there so it was working on now so myself and what Stewart is kind of on but of a more experienced previously developed that I am the fact that is what uh on the structure also like get present today but I basically was asked me doing kind of the woodwork programming and Lawrence was kind of coming up with the history out doing the heavy thinking on the website there is a there's link section at the end digested the the notes afterward secure really want
to get out of so that we aren't they pretty much of an unknown quantity there everyone he answered is nothing particularly their nine-year-old probably thinking I have a fantastic rhizomatic but that's pretty much about it there but had done previous research works on mostly in kind of field of traffic classification on Machine Learning and quality of service and kind of automating not process 400 users but like I said I pretty much knew of previous state was almost a year so pretty much wrote sat down with the developers hand handbook and sort of decide to try and find out what this kernel the news that
people keep talking about and I guess so we'll be lucky but given the she never presentation we had because on my professor previously newbie will have to be nice to me In case
and a of basically the experiment experimental our c and this is a few details about it but I just the 2 main things that that are going to enforce people are allows a standard TCP connection on on a multihop to use multiple interfaces OK so you not down to a single interface when you start the connection on the Net can change dynamically over the over the life of the connection and and the other main thing of of course is that it's is backwards compatible with it is anticipated so with CCP application so basically on if you have an application that's using TCP already but it doesn't interchangeable he basically run as you would normally and and in the kernel underneath I'm beating the does all magic to make sure that on that connection can work over multiple interfaces OK so why why do we
need almost participate because 1 easy answer is that with a lot of other vices multi-homed now of course a lot of friends a multihop and our if you if you have a fancy netbook it may have suggested as well for Ltd and of course the that when you interconnects and lots of interfaces everywhere and then with the traditional the circadian up taking advantage of this and you've got this con kind of extra capacity that's not being used all time you setting up a connection or if he the interface disappears at some point during the connection and you know you have to tell the connection there and start a new 1 particularly if you mobile and moving between Wi-Fi access points all of the Wi-Fi and 3 G then you're TCP the traditional the space company hope of course like I said there's lots of conf solutions out there already a city suppose is something that you might use to to use multiple interfaces but of course on that kind of makes the difficulties on the internet so this particular particle was made you know well with the internet in mind so basically FIL function over the internet it kind of looks a lot like regular TCP boxes 1 miss about with it so it's it's sort of a on pragmatic solution that that allows applications to stay the way they are and 15 is not
having to change of the network and whether the internet this kind of like a really basic for example I guess of where it may come in useful I guess and you've got a mobile phone and you have a Wi-Fi and and a 3 G connection and set up a TCP connection to something in the Internet and of course if you Wi-Fi
and disappears go at arrange something like that of connections going to drop this gonna breaking union at establishing new connection so you've what you've got the persistence are basically in that scenario course with in TCP it automatically detect that you've got these different interfaces available when study connection so it's not necessarily using say 3 J at this period in time but you know in the event that your Wi-Fi connection drops if you knew that frames a whole train a whatever and it'll automatically sort of shift that the traffic on that connection across 2 of 3 so I guess
basically the benefits are and it adds redundancy and assistance of it'll keep your connection even if 1 of your interfaces fails will start using another connection of interface sorry and about this kind of idea of break before in in in in terms of you can have an impetus the connection and you interfaces can all drop away from underneath the on but keep them alive for some period of time just in case another interface does pop up on which point the signaling can can negotiate on transferring the connections that so that new interface another like I guess on benefit is reducing congestion in the network now this is mainly down to congestion control so on whether reduces Kate congestion and not come down to on what kind of condition control we use but if you are using kind of the pools congestion control it's recommended the spec it works in a sense of moving data away from congested links and all that kind of favor of links that are being and underutilized at that particular time the efficiency of course parallel pods you can use capacity that that wasn't there for bullets in a system but you could use with traditional the and practice it works with standard to applications you don't need a change anything you can just call socket as you would generally sorry this kind of what looks like from from I can't really basic standpoint so you got socket you got in BT corn sandwiched above where TCP would have been any of the sort closing here which basically acting like TCP from network so was you applications see what to seize the property in the TCP connection doesn't see any of that stuff that's going on from underneath of course as a whole bunch of signaling involves come to negotiate always some stuff and all this pattern really go into the details were suspect kind of really talks about why this was done by the the signaling is stunning TCP options so there is a and B TCP option and a whole bunch of some subtypes which is used to provide signaling OK and of course of the decisions about which sample the send data on arm and things like that that's basically decided upon by congestion control but is also other methods on so at the moment I'm working on a vehicle to infrastructure projects and part of that we're kind of interested in using MAC-layer kind of Wi-Fi statistics but the kind of help with these decisions so basically as a couple of broadly speaking as sort of a bunch of logical components that make up you know if it's if as it is the 1st part manager so that kind of relates to identifying the interface is that you've got available on your host on but also picking up messaging talk from the other and various and saying OK well that's got this interface available to the connection and so forth and so kept in the in the past manager which doesn't necessarily need to be in an opening and that's what kind of books on the side on we used to see the Elves a kind of hardwiring now on interface is at the moment but technically is kind of Don separately from from the main kind of inference is a implementation and you can't talk to it when you wonder what interfaces you've got more interfaces are available and you got Congestion Control and Packet scheduler which kind of economies are interrelated in that the congestion control really is keeping all the statistics about different top Florida's about the congestion window is all parties things like that and the packet scheduler which makes fun of the decisions about when when I when flow is able to send something will talk to the congestion control and say you know 1 what of they are 1 statistics at this point in time and based on that will say OK all use some for and for 12 to send this particular bit of data it'll
probably become clearer hopefully have as I go along but if it's confusing just the interrupt me so this is this is a signaling basically what they have to be options I you have an impetus the types which is in the which is and I can't remember the exact number but it's like an official type of TCP nonlinear ones of subtypes depending on what you want on this is basically all signaling so just knowing for establishing connections adding new addresses to an existing connection on because sort of metadata relating to sequence spaces on which of those 2 and a little bit and the stuff on 1 color but that's basically connections here down the primary channels and this and that OK so just an
example good example on how the messaging works on this is just a connection setup so basically send a standard TCP a three-way handshake for handshake because we need this extra little in but basically ideal you see the options in the TCP which is in the capable of the passive open IE if they recognize that option and possible and now will but in in the table now there's a bunch of keys and what not which associated with this dynamic market thought about but basically the options are and then you detect an option you go through the handshake at this point here basically identifies as a multipath connection and after which you can go through and use address and join all lots of stuff to bring up additional interfaces yeah on Wall is actually tokens and phase and and so this this case extension in this initial of exchange arm and then you have random numbers and hashes that you take on the song able to obs why this is a security issue has been resolved if assume there the to sniff out your initial set up than they can get all your OK not calculate earlier hatches you know right nužno of well yeah there's no appreciation yet it needs to be exchanged and extension clear if we yeah yeah OK so yeah and basically it if someone can get a case at the beginning and then they can insert itself into your until flora on got that everything that is changes that the 1st 1 yeah yeah that's danger and and I think that's on obviously something security group and the idea is to of looking at all you see the and yet but that's basically a big security problem at the moment we have a fixed amount where the an important part
of most participating is is I guess what sort of questions and what is
is the role of the the 1st half of this yeah you like in your life you was the yeah does take up space on it does squeezing doesn't squeeze out too many existing things on it's about 20 it's about 20 by so 12 bytes I think of my head so it's it's it's larger but it's not horrendously large it doesn't take entire options here but I think the biggest of of the of of the options is about 20 bytes and and yeah the options will at times squeeze on guess from msec and things like that cycle options like kind of prioritized if it is stated that on but for the most part times and things like that something it's not a person right so I
anticipate he got the idea of dancing sequence space sort the idea sequence numbering arms so basically seek sequence numbering lets you the top your data into different segments and they have attached the sequence from the system on which lets you know due acknowledgment and retransmits and all that stuff that makes the CPT the so the interesting thing with MBT appears that now your getting a whole bunch of segments the this spring amount across a bunch of different samplers and you need either gate that back at the other end somehow know some discussion about this again on covered by about no splitting up sequence space you the 1st Xbox here and then the next steps quite here and in the next blah bites on this side but at least be gaps in the sequence space and you know you can't do that because know boxes 1 like gaps in the sequence space so the eventually the solution was to add another layer of sequence numbering on top so to 64 bit on sequence number space and basically this helps with all the reordering that's probably in take place because if using different part different RTT different bandwidths something that probably possibly can be arriving out of order that need to be reassembled we're maintaining all of them sequence numbering of the TCP levels H sub flora has just a standard TCP sequence space it looks normal on but aggregated we need to add extra data on top of that on data sequence space so it
kind of looks like this on those of us that's regulated across the top there on not to much talk about but but if you've got to some players and so these are obviously randomly generated whatever it and the sequence space as a unit to each sampler when we start a sequence space which is kind of applied globally in use the sender and the receiver to order all the segments I that is actually applied across both of them so the so basically that's another TCP option of NPT options where advertisers you I got this this this segment here that's all the regular TCP stuff but at the Donnell level this is where this is where it lives in a byte string and for example this one's you from 4 thousand onwards and that one's 4 thousand 100 onwards and I guess this kind of
explains a little bit more so at at the receiving end basically it's that well like for thousands know thousand 99 is going to be a writing support a and the next 300 bytes in beyond self would be so the receiver knows that it's got those maps and and there is where to expect on the next sequence of bytes from and then uses that to reassemble at the receiver side the work you're yeah he the question of what from having different thing about it to be connection like yesterday in the other room way and for work a while yeah yeah so depending on how scenario with Chechen packaging main facts and something and say centered on the sulfur here and then so in a whole bunch of other data on a fast 1 and then anywhere like all other way while it was reassembles you know what waits for that to arrive at puts everything in order of depending on how long the retransmit timer is you do need an acknowledgment on London office this but you do need acknowledgements of the data levels well sorry it someplace acknowledging and doing it's anything but also the data level you might be yeah you can read consonant fast assuming that the transmit time kicks off or something like that but yet again when you doing a packet selection on selection you could say while you can use oddities and say well this one's take and segments of the capsules and everything here and also in this offset but but also in a more natural connection now the right in in in duplicating the DNA sequence based also on hit this also that some of these receive next next continuing on it's purely cumulative on the at the dialog but basically networks like basically works like a wooden TCP working at you know 1 sequence
based not quite sure smoking I made this diagram so it's a little bit so the confusing but basically I was trying to illustrate and probably doesn't actually work like this implementation but was found in those illustrate that develops and before you got a bunch of different so close to being the same symbol on and you may maintaining at the daughter level in maintaining a list of unacknowledged by here k is going to hand down you know a bunch of segments for each of these sub that's what was going to do is regular TCP things and then they backwards and forwards and say you know packets loss whatever it's only sphere words and say OK I neurotransmitter retransmit at all souvenir things in order of descending yeah assemblies occurred on it's going to sort of the set up again into the multipath layer we can now look at the daughter little sequence space and say OK do we need to re order it now and just a quick word on congestion control I think I alluded to in earlier on there's a couple of congestion control of multiple floating around a publisher for referencing but basically I the idea behind that was being fed TCP so the on the bottleneck link you've got a single regular TCP connection on and you got your 2 multipath floaters got to multipath so close going through the same bottleneck on the basis of union divide up so that the not kind of taking all these extra bandwidth away from standard TCP all models does a bunch of traffic engineering in terms of it'll it'll move with data on onto West congested paths and again that's not part of the specification strictly the RGC those that yeah yeah yeah this yeah congestion control is like the main challenge and that's hopefully what we will be looking at eventually when like platform stable enough all of year to you can use or reuse the upload you actually implement the part of the implemented that program not in the the right you you just for that Christians you to turn off the ball you know the this makes it more of the following the can't just yet I think some of you will remember this yet again I'm probably not doing just this song and told me more about implementation but here on conditioning falls of using words and that's what we want to our research Our approach is more about combining all spaces delay-based control you
or you can do for uh yesterday and the kind late radiation area so can it's some that and requires the or yet it we get served as background for
what what's going on with them In the case
of the income for of so is our implementation on basically you want to do something that we can experiment with that of the other people can experiment with on to that effect are we going to make it easy have lots of books in and let people play around switch conditioning falls to whatever they what a crazy thing that they think they wanted to have a lot to make it easy for that and to facilitate further research of course using internally as well spend because where BST kind of we prefer this the in our research web server obviously licenses always nice and on I guess 1 important thing to note is that it's not really an optimized fantastic go implementation it's not really a goal of valves of maybe that align is really also we can implement that we just nice to kind of a complicated and change a whole lot TCP some of them require a lot of nitpicking for anything like this before anything like this actually makes a period
it was just the world and right so this is a kind of a question that we're asking you give we want do it as a kind of a module with some books from more just as issue where health tied to do my coupled with with the with the occurred in the kernel I guess so that the the way of reducing the existing TCP by make creating a soccer and then calling sockets from within that socket which kind allows you to bypass some hundreds play around soccer bosses the whole bunch voluntary hold a bunch of data structures but there on the day structures on which related to dealing with always angry at the traffic that's coming in yeah and you met new methods of of walking through segments and reordering on the different layers and of course we got a bunch of different cell phone is dipping into the socket buffers now on so that coming in on different threads and and and there's this walking contention that's going to happen on and we want to come to minimize that to make sure that we're not kind of like walking the multipath control block members all the time so that you know
we're not playing but latent turns time so this is this is how we do eventually implement that on the share my fingers just was is way too much change that need to occur 1st to do it as a module on so basically it's that its tendrils all the way through TCP and possibly can often for the soccer buffers well we thought taking the existing transport control walking kind of refined that as a sub control block and added a multipath control what which 6 about very now and it takes care of the multipath concise of can't gotten rid of the idea of a separate reassembly and in in order kind of Signal list on the receive side so basically whether or not a segments in order or not on sort of assembled into this new list of of segments and gonna here that the data level recently is being deferred to the user context it's kind of what we want to do about has been possible at the moment because of some unresolved bugs are against that in an environment and of course on the same side we using a shared symbol so we need a new way of mapping chunks of that symbol for 2 different samplers all about the
size of the state and you because of what do was basically that means
uh so you'd you'd only somewhere at the sub-phone level and then we need to reassemble at the data level and so the moment that recently is occurring on whichever whichever sampler receives next in order data that a level it's basically walking through released at that point recently everything in calling but then it's the buffer so I don't whatever ideally we don't want reassemble at that point mark also laid out but the application user right yeah he uses the word you yet so the moment the reason was that happening caste-based based we don't want that to happen we prefer to defer that the way you did user of the with the the word in which all of this week so redundant give them we basically just need to coal Coal reason we covered on it's got all the information that needs in their we actually have the positive thing out not the state of all yeah after yeah yeah sorry the any concept in the context of the rights to use the phrase could yet it can space yes yes sorry this thing if we would have known all yeah yeah on yet so basically so it's not it's not walking up all these units of voice and and can be right here yeah so basically is gonna help looks but in the city of above all the supplies here this thing here is hard because basically if you have a single cell flora dialects just like regular old and yet so we've created in the surveillance just keeping track of any additional supplies and made obviously they use I'm from like lay down down to the interfaces just and that was
previously OK so this was kind of looking up just look couple slides again in terms of to map data between the soccer bosses and samplers and in a way that's not gonna and cause problems with them to do too much looking so basically that defined structure called DS map small used I guess it's more a play on the on the sender side in terms of you can schedule a segment the sentence OK well he's embossed this amount of of data that's consent the and basically there's the a supplicant take that as being it's a little soccer above 5 and not have to afterwards know what that entire structure of it's often interfere with any other suppliers in that given yeah I bet yes so that have happens on the on on the receiving ACK you get is the output at that point you calling the scheduler Mr. doing checking that the actual sort of off on behalf of the of the cell phone saying OK well I'll give you dispatch is he's way that he's your offset where he started his house state you've got and in some and take that and going as long as it's got validated it's not going attempt to call back into the packet scheduler and exhaust that once that's done then local banking half the that is 1 was this of the yeah it shouldn't really matter may transmit and and the procedural just disregard the 2 I I guess the smarts probably can be put into do that but we have yeah however you would that you the so you what would you like right my you the end of the of the of the yeah and it's got outstanding data let me recently yeah I William and case that that's employers it's just this and then because we are using this is the the retransmit tied time and at the data level you might get you might get acknowledgment that and say OK well whenever we transmit that that block analysis of well the only thing so all yeah yeah you don't just arriving at the lowest level yeah it's never gonna get there yeah so it's going so well I don't want to allocate anything to this now but is always kind of outstanding using kind of your DSN unit the itself In this talk I will has long yeah it yet it remains in that almost as long as the even if it's been active referenced by other solve Florida's still 1 of the things that you know that you but it'll it'll be removed and and might have some yellow you will kill up for you numerous some of the major source this has the yeah you call the use of yeah yeah so
on yeah it's it's it's not quite as compared on the safe side basically what it does is it takes the are the map that's advertised as part of the the multipath particle and it just creates map but on based on that so that it some someplace how much data it's in a it'll be expecting on and basically once it's filled up its map allocation and up upper layer and that's when the data I can in
sense our only I want you to use I would like to know
about if you that will sorry in terms of like this is also yeah so that the of that money in the these right here the yellow 1 the region of the world and as long as you know there as well if I assembly saying prickly it is in the the sov was stopped worrying about things once it knows continuous as far as it's concerned as far as the mappings that got is concerned I then basically all it does is that but also the list how it looks but basically that they just stays in a list on i just sits there until until time that that the correct order sequence number of receivers yeah sorry yes yes
on the so I'm going to be dating to about some of the shenanigans they're involved in in the same structures now so basically this example here we've got 1 sequence of segment that arrived in order and hasn't been delivered yet sources concerning evidence of of the but I'm about these 2 2 1 3 6 3
variables are and is missing so we had this idea of what we've got the reason we waste we've got stuff that's that's in order and go straight up to the application omega wait until we get segment segment served and then I will be in order and then the application can take all that stuff so I have taken that we now made a list of the with heads which what it does is that now we're not so much concerned and immediately whether or not we're seeing something in so we receive I'm saying someplace sequence model 1 that a game but 1 that's in order but we just an opinion on that list and just gonna sit there and then we get free 4 and then they get put into the list and then comes along says OK well we'll just insert in that whole but nothing's actually done there it's not going to talk about for it's not doing anything like that because now we're more worried about the status and so we've got say for example in some 1 we got you know sequence 24 26 on but the 2nd 1 and 3 so that's that's not in water at at the end of the tunnel and and we've got to use and for which kind of comes after that 1 was to get this into and we can do recently l
discussions here so is rolled out sequence farmers and can in that everything's in order the selfish and at this point so that the DS 1 which is arriving a it's also 1 the inserted on the on the bottom of the list here assuming that that's all in order now we know of that was our 1 that we are expecting to receive now so basically we're what all of the lists the same with from each the cell on many days and reorder everything and at the diner level and local so wake up FIL appended to the sort buffer causal link up and you of the process can come in can can lead to data out and then the schedule obviously available lack at that point because now we received of what we're expecting level on this is what we talked about with deferred recently signed moment is kind of happens soon that segment arrives on ideally we don't want to resample at that point i we just want to wake up wake up the application and then perform that recently In the last of the activation what happens is that the and that is so when the size is an interesting 1 because basically of this is a really have a received off our what we can say about this much space left arm this is probably not the final way that we can go about my we just advertise on the maximum window with what a scaling factor on and rely purely on congestion control for what the alright so basically this basically and options melodies option so the and and what looks like sorry I didn't the numbers are pretty diagram over and if you imagine you've got a option basically that option can looks like it is the act it's it's it's kind of an option space so you got a little bit of header information whatever yeah we can just like throw it on on any old yeah yeah yeah so basically any anything that's bound you can the concerning the option space it said that they live lack and what kind of doesn't need to be tied to a particular cell for anything like that on it'll come in little policy options they allocate this is acknowledging that I want you can send from they will buy the 50 years from now on of the world on 1 of the the our in terms of MSE but I now basically basically you mean this the signal when it gets down to the actual right right the well yeah yeah right so right all along here yeah yeah reason assessed on kind of a kind of throughout out assessors the 2nd yeah but really simple packet scheduler which uses RSS as kind of the the dividing line between given X number of segments still is so we can still not say tied to of the Ethernet and assess it it can work with anything in particular when you assess of this for a while I can explain all this already but we see that there's the reordering on and goes back up into the efficient when so what you we receiver the only you that set in from basically and so what do you do that I don't know going the for this 1 on other you did not I would say I don't have strict answer for that part of it but yeah I I I haven't done anything that allows that to happen in this book that you wrote you want to would not do what you know and some of you use it is it's renewable by your right hand holding the governor of New York OK now I don't know don't I think the symbol for those actually clearing until this is a data access yeah the top so we have anything yet yeah I'd I like to go on the that used the love yeah 1 of on much of this work through all that's the 1st the we the the only but treating the simplified I guess we must decide what that looks like but there is 1 so basically the reason why
we know this kind how we do it now so that the idea that so basically you call your packet scheduler or and going into the into the symbol france again well on this much data on the so far want this much sentence to and return that that and then the supplicant worry about exhausting it's not before bothers me again OK
but of course that applies infinity accounting because it seems like a maps not fully covering member of things like that multiples of flows the referencing the same bit of the sort of a symbol for some content to track now yes this is saying which kind becomes logically where things are happening in the In this session both but the actual which is kind of like well he's actually all that's sitting in an instant before at the moment on we don't drop things that again know kill off that's still being referenced by on different of so the
packages which are kind of alluded to
the number of patents on basically this is amenities the output of an energy in the cell phone that's good and that data on to the like in regular TCP if if this status and it'll calls into the sky output and that point is kind of where of the multipath 3rd kind of kind of sneak in and says OK well we're calling packet scheduler at this point are undertaking you a map this is what you think the actual box and buffer is come from now 1 it can return and all in which case the uplifting thing so there's nothing to like our head on 1 case it does return something then it sends from there and not aware of anything else that's going on in the standoff so
this kind of do it simplifies what's going on what's your maximum overseer of FIL a right that occurs but the must not learning about X so when I comes in on a particular cell flora on last question do we have any data left to stand yes do I have an existing map no I don't have a map if I have a map and just continue 1 normally if I don't have a map well I'm a colder scheduler that and schedules in return neither nothing something OK and then basically operates as generally would and send a signal a time is going what is it it's it's pretty of broad overview on and have a great deal of time to like FIL slides and and promotes of current cost of and there's lots golf that kind of it doesn't seem like it's not happening I guess from a from a high perspective but there's really a lot of like on disappears can be developed over a long period of time are you change 1 thing and the problems will just propagate everywhere else we ended up having to change you know basically anything that has to be on that we changed on to some extent on probably things that I can't remember at the moment and others in fossils falls in there as well also the money change
themselves something a paragraph from my head but the 1 of things of going around In soccer buffers and be atom academic and more direct but we also putting calls to to defer to do what deferred reassembly on so the Kurds in that but it's kind of not enabled at the moment because that's kind of where it's going to be called from ceiling there and all of properties of yeah yeah yeah yeah yeah I mean that a bunch macros to like disguises BCC and the actual formed from where they been checked which is in apparently all places it would also we now have a number by an NFS was doing some weird things the can yeah language 1 thing about manifest those that if you're trying to change TCP and a testbed is running over NFS who are there in in the city is and if it doesn't burden in a certain way that something wrong this OK um and in the India India told scripts and it said that a simple about our research projects we have really been answered the too much of this because is taking a little bit of time to the implementation working on but is not the kind of thing that we're looking at doing I guess this year myself I'll be looking at some of the existing infrastructure stuff so excellent the on a mobile data and the on board units that are running and participate all between offered for nonsafety applications and handle extremely years playing games and and things like you board part tree being uploaded in the background the real stuff that we really wanted defensive I haven't had to have a chance to get is a condition control is business all impossibile bile delays based congestion control of we really want use but we also want to take advantage of almost 160 and it seems like you know 1st Florida gestion control you depending on the part of the different particles metrics things like that changing on the fly on congestion control algorithms you want and and packet scheduling is obviously just a big area of of researchers what decisions to be made you know and and depending on what what what your application is going to be you want the united doing allocating segments to to solve for it in a different way always modulation and and and mostly because of I I myself came into a completely unaware of you know developing the kernel whistles things not not confirmed Lorentz earlier on that kind of comes back to bite you the bottom on but you know I'm doing things in an unwinding things is is a huge process on any kind of architectural decision you make early on that doesn't work out of will mean you're in the lab 7 days a week 20 hours a day 1 thing that much but close enough and there's a lot accounting with you off by 1 kind of errors that you come across yes and things and and things that meant that tell you that they do something but they don't really do that you discover that later and course that this whole aspect of implementing something from Internet that's kind of a work in progress and and and is very at lunch of tightly cover the right word but it is kind of in some parts related to the reference implementations of being that the people who wrote the Linux reference reference implementation work kind of had influence on the draft this kind of assumptions of things that kind dinner occur to them that that kind of made us scratching our heads a little bit on we interpret things slightly different the draft just suddenly change on without warning and things that we implemented implementable like no longer needed things like that and of course uh where continually patching so least a couple patches of a given annotation isn't really anything above kind of quality at the moment always sort of slowly every couple weeks putting in extra features making it more spectrum pliant on its interoperable for a fixed number of packets from I have both the big X it's like it of well the uh well that's what we've done is with the environment in the 1st control yeah yeah so you you would all of this was the 1st year we yeah yeah I mean it's funny like things are happening unexpected hedge like about well so knowing knowing if it's the old man made items field so we can cheat when we went interrupt we can say of of them but yeah it's but some that we work on and getting better arm and and and and an API and mention that but it does work in traditional since the applications but something's impetus be aware pencils and has definitely I want to take advantage of and of the extra bells and whistles 1 uh Acknowledgements well but funding the props of them forgive me in employment for ya and of course based can they looked like but they did eventually invite me to speak and then carefully it's been something that's educational for a long and like I said please come up and ask guests to the question of the hanging around not doing too much so we have to talk have anything to say and the
full of these links and because cover a lot of what I've kind of skipped over optically the how hard can it be paper which really talks about while of design decisions were made and the compromise that have to be made and things like that and that's about it and questions and would not have been the rest of the world situation we had to do with so yeah yeah I yeah the saying this was not the right on the so the tape very say got to interfaces in favor the it rest so of you In presence which is the worst individually different from and right somebody can force that occur in the world this so I have to say is that you see have is that the way that all of the forces in the way that you do only in and this this is a list of magnetic rock right that's used I have that is present to and you have to change the value that we have an additional or what do you think you would like to work with this the gradient and you have been around for a and use it and well this way and then all right when when you guys you want we use the avant-garde is struggling in that 1 and that these were and that the the the the the mountains and yet it's some random angle sensor stands on the wrong the so the that you know what I want direction of what the after a while the disabled the and nearby cities in something else I can do things like that of the role of right off yet you just write out the next 2 years are used by what are your yeah yeah basically living disabling now for what has in has a doesn't have to be for it was the we used you will have short answer on Camacho and informed about much because this is the performance loss right in the the the what is the good behavior of of of of yeah most the 1 in which of movement of it was 1 of the things I want you things to know that you have kind of part the segments down to the south in the 19th world yet to the simplest of all of our duties men with is this is really a loose a lot more luminous says it's it's like all have been sort of of this stuff in there I will give you half of what's in the bottle the 2 year and I I really want to do this in size of the thing a range of you so that you get during most parts of the some that we're all relevant to the work that was not who was in the case of new thing and you can was do this is you will over the of the
year mean quite quite far along so as


  624 ms - page object


AV-Portal 3.21.3 (19e43a18c8aa08bcbdf3e35b975c18acb737c630)