the present invention provides systems and methods to achieve ultra - high throughput in multi - hop vanets with directional radio links with immediate neighboring vehicles , or “ neighbors .” fig1 shows the architecture of the system according to an exemplary embodiment of the present invention . a vehicle 101 has multiple antennas 105 . each antenna 105 is directional and as such focuses its energy only on a limited region 106 . the antennas 105 can form ‘ directional links ’ 107 with antennas of neighbors 102 . directional links 107 operate without interfering with other directional links and as such eliminate the need for a contention resolution protocol . the system involves leveraging this contention - free architecture to provide a simple protocol for vehicular communication . owing to multiple antennas , multiple simultaneous links 107 can be established with neighboring vehicles 102 . the presence of surrounding vehicles is managed through a location / position awareness registry 120 within the vehicle . the creation of this location registry is described in more detail below . data can be disseminated in a multi - hop fashion . in this context , each vehicle acts as a switching element in a grid of switches 180 . the function of the switched - network manager 130 is to receive incoming data from a subset of its radios and transmit it to another subset of the radios within each vehicle . in the process of switching , the data could be relayed , replicated or even coded at the switching element ( within the vehicle ). extending the idea , coding can be carried out across a group of vehicles and is referred to as group coding 140 . sessions and paths can be realized in this network through appropriate switching schemes at different vehicles . the sessions and the paths themselves depend upon the requirements of the application . the provision of a plurality of antennas 105 that are unidirectional serves to minimize interference , unlike omni - directional antennas . “ mac - free ” access ensures there is no random contention among nodes to access wireless medium ( nodes have “ dedicated ” links ). high & amp ; sustainable multi - hop throughput includes bandwidths of , for instance , 50 - 500 mbps . a single hop is typically about 30 m so that it likely reaches only immediate neighbors (“ neighbors ”). further , the low - complexity network ensures fast , switched connections among vehicles , enabling a quasi - stationary switched - network among neighboring vehicles . fig2 shows a vehicle equipped with several directional antennas , according to an exemplary embodiment of the present invention . the antennas are named according to the position on the vehicle . the antennas at the front can be numbered as f 1 , f 2 etc . the antennas at the back of the vehicle are numbered as b 1 , b 2 etc . the antennas on the left and the right side can be numbered as l 1 , l 2 , l 3 and r 1 , r 2 , r 3 etc respectively . hereinafter , the term ‘ radio ’ refers to the entire communicating device while the term antenna refers to the portion of the radio that transmits electromagnetic energy . according to an embodiment of the present invention , each vehicle has n antennas that can provide directional links . each radio has the capability to detect and form a directional link with another radio in the range . each directional link is one - way ; a bi - directional ( full duplex ) link needs two directional ( one - way ) links . each directional link will not have radio interference with another directional link . each radio knows the status of directional link status , i . e . whether a directional link exists with another radio ; and if a link exists , the radio knows the meta - data of the link ( corresponding antenna id , neighbor vehicle id , initial location , and other info , etc .) existing directional links between two radios will break due to fading in wireless propagation or vehicle distance change ; and the two radios will be aware of the directional link break . for each radio in a vehicle , a table is maintained that lists the other radios that it can communicate with . the table has the id of the neighboring vehicle , and other link attributes such as name of the radio ( fx , by . . . ), the power level , supported rates etc each vehicle maintains such a table for all its radios . this information provides the possible choices for link establishment . link attributes may include power level , supported transfer rates , estimated link duration , and other factors that may depend on the physical layer . the information is updated in a timely manner that might be dependent on vehicle speeds . readings that are not updated are deemed stale and purged after an appropriate time . fig3 is a flowchart showing the process for updating the detected links table , according to an exemplary embodiment of the present invention . once the radio information matrix is initialized ( 310 ), for instance upon starting the vehicle , radio contact is detected ( 320 ) from surrounding vehicles ( neighbors ). each neighboring radio vehicle id and link attributes are updated ( 330 ) in the neighbor matrix . stale readings are eliminated ( 340 ) and the process is repeated until terminated , for instance , if the vehicle is turned off . ( 350 ). based on the link detection information discussed previously , connections are formed based on various factors and maintained in a table , see table 2 below . the decision whether or not to form a link could be based on several factors . for example forming links based on instantaneous best quality would support better transmission reliability . if the link stability is important , then links can be chosen based on the duration for which it is possible to maintain such a link . there is one such table per vehicle . the table maintains the information about each radio and the id of the vehicle it is connected to . it also contains the antenna id for the radio on the neighboring vehicle and its location . other information pertaining to the link such as the mac address and the ip address could also be stored . such information is on a need basis and meant to ensure compatibility with other systems . the present invention does not per se require ip addresses to be assigned to each vehicle in the traditional sense . fig4 shows a possible temporary snapshot of vehicle connectivity over multiple hops , according to an exemplary embodiment of the present invention . each vehicle 401 only keeps track of the directional links 406 it forms with its neighboring vehicles as shown in fig1 . further , it is possible to have multiple links 406 / 407 between two vehicles . as the vehicles move the , distances will change and accordingly links will be broken and re - formed . one of the key objectives to achieve from this system architecture is to rapidly disseminate information in a multi - hop network neighborhood as quickly and reliably as possible . this leads to the concept of broadcasting information to a neighborhood . neighborhood essentially consists of a multiple hop network and the objective is to disseminate information rapidly . one of the key components required to enable neighborhood broadcasting is intra - vehicle switching . neighborhood broadcasting and intra - vehicle switching ( nbivs ) is a message dissemination technology for the proposing vehicle - to - vehicle ( v2v ) network environment where each vehicle has multiple directional radios that are linked with the neighboring vehicles . the concept of nbivs is to provide a means of disseminating information to all neighborhood vehicles and picking up information as desired . it supports broadcasting , multicasting , and unicasting communications so that any v2v application type associated with these communications can be supported . information ( e . g ., safety warning message , emergency message ) is diffused to all vehicles in the network and picked up by vehicles interested in the information . information being transferred within the network consists of both information regarding applications ( such as safety warning , emergency , etc ) and information regarding recipients . since setting up communicating paths or groups in vanets comes at a significant cost , and on path breakage due to mobility , a recomputation is triggered that results in temporary packet drops , the simplest method is to send the information to each vehicle in the network and vehicles pick - up the information that they desire . such an approach has the potential to significantly outperform conventional unicasting and multicasting in terms of throughput , reliability and recomputation . according to one exemplary embodiment , a neighborhood broadcast is achieved without a mesh . a mesh refers to a subset of the links of the network . the subset could form a spanning tree , a path or some other structure . the purpose of a mesh is to avoid redundant transmissions however formation of the mesh poses additional overhead . to address this trade - off , neighborhood broadcasting with a mesh is described in a second embodiment . further , formation of a mesh might require network wide information , whereas certain objectives can be obtained simply by obtaining two - hop neighbor information , i . e ., the information from neighbor &# 39 ; s neighbor . this is described in the third embodiment . the above broadcasting embodiments are realized through appropriate intra - vehicular switching . switching denotes the transfer of packets from one radio or radio subset to other radios / radio subsets within a vehicle . each of the three embodiments will be presented in detail and corresponding switching schemes will be described . fig5 a and 5b describes the operation of the first exemplary embodiment . referring to fig5 a , each vehicle 501 has multiple directional radios . for the purposes of the present example , we assume that each vehicle has 6 directional radios , however the present invention does cover any legitimate number of radios . each directional radio can be represented as a radio link 505 to a neighbor . if two vehicles 501 were linked through their directional radios 505 , then they consider these directional radios as active links . referring to fig5 b , in the perspective of a vehicle 501 , a packet arrives through one of active links 505 ( i . e ., incoming link b 1 ) on the vehicle and then leaves through some or all of active links ( i . e ., outgoing links r 1 , r 2 , l 1 , f 1 ) depending on which forwarding method is used . in the present embodiment , a packet leaves through all active links : as many copies as the number of all active links ( including the incoming link ) are created . referring back to fig5 a , each vehicle 501 passes each packet , once , to each of its immediately - linked neighbors . this includes the neighbor where the packet came from , as an acknowledgement or “ ack ”. however , if two neighbors mutually send each other the same packet , an ack may not be needed . each vehicle 501 drops duplicate packets ; this process will be further described below . also , a dissemination scope is enforced , for instance , delivery is stopped when the packet reaches its maximum hop count ( hc ). before switching the packet to the active links , the vehicle must check the packet for a duplicate . in order to eliminate duplicate packets , specific attributes for the packet are defined and specified on a packet header and a table called “ switched packet list ” ( spl ) is generated . a packet header consists of three fields ; src_id , seq_num , recipient_info . src_id is filled by the source of a packet ( e . g ., vehicle id ) and seq_num represents the sequence number of a packet . this sequence number is specific to the source of packets : the source of packets increments the sequence number for every outgoing packet . recipient_info contains several details such as the scope of a packet , actual recipient ( s ), application - specific attribute , time - related attribute and more for future . based on this field , vehicles pick up packets for their own applications . note that as long as a packet is within its scope , the packet should be relayed . further , only the source of a packet generates the header for the packet , and the packet header is never changed or updated in transit . every vehicle maintains a switched packet list ( spl ), shown in the below table . a spl consists of src_id , seq_num , and act_status , and packet cache . the combination of the first two fields makes each packet unique so that duplicates can be determined based on such a combination . ack_status is used for packet acknowledgement and packet_cache , which keeps actual packets received , is used for retransmission for unacknowledged packets . packet acknowledgement is enforced to all three proposed embodiments . in the basic operation of packet acknowledgement , a packet sent out through the link that the packet came through ( i . e ., incoming link ) is used as an ack for that packet to the neighboring vehicle connected to that link . the baseline system always uses ack . however , an option is to use ack per link decision , i . e ., if a link is stable , then no ack is used ; but if a link is not stable , then ack is used . ack may be piggybacked on another data packet in the reverse direction . the present invention includes the ability to have more than one packet simultaneously traveling in different directions . further , there is no timer associated with ack if two nodes linked together are locally synchronized . for example , in t 1 - slot , a sends a packet to b ( a , b are neighbors connected by a link ). in t 2 - slot ( next slot ), a expects to see an ack from b for the transmitted packet . if t 2 - slot doesn &# 39 ; t have the ack , then a re - sends the packet to b in t 3 - slot . so , no timer is required . this local synchronization is only between the two neighbors on either end of a link . links themselves are not synchronized , i . e . there may be no global synchronization . fig6 shows the packet flow diagram for a source at the switching layer , according an exemplary embodiment of the present invention . a packet is passed ( 610 ) from a upper layer ( e . g ., application layer ) to below switching layer . a packet header is added ( 620 ). the information about this packet is added ( 630 ) in spl . copies of the packet are switched ( 640 ) to all active links , and then sent out through all active links . finally the source waits for ack ( 650 ), or ack piggybagged in a data packet , for each active link . if a slot time for ack expires ( 660 ) on a link that has been waiting for ack , a copy of the packet is retransmitted ( 670 ) through that link , and waits ( 680 ) for ack again . fig7 shows the packet ( i . e ., in - transit packet ) flow diagram for intermediate as well as source vehicles at the switching layer , according to an exemplary embodiment of the present invention . a vehicle receives ( 710 ) a packet from one of its neighboring vehicles . the switched - network manager checks the packet header to find out if it is the source of the packet ( 720 ). if yes , it then checks the spl ( 730 ) to see whether the packet is acknowledged for the incoming link . if the packet were already acknowledged , the packet is discarded ( 735 ) and the vehicle stays to the idle state ( 790 ). if this vehicle is not the source of the packet , the switched - network manager checks the recipient information in the packet header to see if the scope of the packet is still valid ( 740 ). if the packet is outside of the scope , the packet will be discarded ( 735 ) and the vehicle will stay to the idle state ( 790 ). otherwise , it checks the spl to see if the packet is a duplicate ( 750 ). if the packet is new , the spl of the vehicle is updated ( 760 ) with the entry for the packet . if the packet is a duplicate packet , the vehicle will proceed from step 730 as previously described . once the spl is updated , the vehicle checks the destination information in the packet header to see whether it should pick up the packet or not : the packet is destined to this vehicle ( 770 ). if the vehicle is one of recipients ( or a single recipient ) for the packet , it will accept and pass the packet to the upper layer ( 775 ), and then move to 780 . otherwise , it directly moves to 780 , regardless of the outcome of 770 , the vehicle will execute ( 780 ). a copy of the packet is switched to each active link and then sent to the neighbor through the link ( 780 ). finally the vehicle waits for ack ( 785 ). the next embodiment is nbivs using a mesh . a mesh ( or tree ) provides connectivity among vehicles in the network so that , if messages flow through the mesh spanning all vehicles , the messages would be delivered to all the vehicles . having a mesh eliminates redundant packet transmissions . in this embodiment , a mesh is needed and maintained for disseminating messages . unlike the first embodiment , this requires a switching table , the generation of which is further described below . fig8 a and 8b show the establishment of a broadcast mesh for vehicles in the neighborhood . each vehicle 801 passes each packet , once , to each next - hop neighbor on the “ downward ” path in the mesh , i . e ., along the packet &# 39 ; s forwarding direction . this includes forwarding to the neighbor where the packet came from , as ack . the mesh ensures no duplicated packet , while similar to the above embodiment ; a dissemination scope is enforced ( e . g ., stop at maximum hop count ). fig8 b shows switching inside the vehicle 801 . an incoming packet is switched to the outgoing links listed in the switching table . the switching table is generated based on a spanning tree for all vehicles in the network . every vehicle maintains its switching table . before switching the packet to the outgoing links , the vehicle must check the packet for a duplicate as in the first method . this embodiment uses the same format of a packet header as well as the spl used in the previous embodiment . additionally , the same ack scheme may be used , i . e . a packet sent out through the link on which the packet came through ( i . e ., incoming link ) is used as an ack for that packet to the neighboring vehicle connected to that link . the baseline system always uses ack or alternatively , uses ack per link decision , i . e ., if a link is stable , then no ack is used ; but if a link is not stable , then ack is used . ack may be piggybacked on another data packet in the reverse direction . l matrix represents a map for link connectivity among all vehicles in a network . if the number of vehicles in the network is n , the l matrix would be n × n : for each node u , the corresponding uth row denotes the link status with other nodes ; i . e ., l uv = 1 if a link exists between nodes u and v ; l uv = 0 otherwise . as convention , l uu = 0 . this implies that nodes exchange link status information within the neighborhood so that all nodes can update the matrix l . if the link status changes fast , the link status exchange rate should be high ; otherwise , the rate is low . the l matrix shows the status of direct connectivity for all possible pairs of vehicles in the network : if a pair of vehicles is directly connected , the value of the status for the link between two vehicles would be “ 1 ”. unless , 0 is specified for that link . every vehicle should have the same l matrix to generate a spanning tree ( i . e ., connects all vehicles through either a single hop or multiple hops ) that is consistent to all vehicles in the network . a status change due to mobility or link failure must be promptly reflected to the l matrix of all vehicles . this is performed in an event - driven fashion if and when the link status changes and does not need any prior setup . for such an urgent update , one can apply the first method ( no mesh neighborhood broadcast ) to disseminate information about a link change to all vehicles in the network . the switching table is derived from a spanning tree , which in turn is formed by the l matrix as follows . to link all nodes in a network , denote a node and a link as n i and l ik respectively . link l ij is a link from node n i to n k . anl is an all node list , where anl for a network with n nodes is a set of { n 1 , n 2 , n 3 , . . . n n }. lnl = linked node list , or a list of linked nodes . oll = outgoing link list , showing links through which packets are forwarded . thus , oll ( n i ) is the outgoing link list for n i as a source ; for instance oll ( n i )={ l 11 , l 24 , l 15 , l 23 ,}. based on oll ( n i ), each node obtains the incoming and outgoing interfaces for packets from n i . the procedure is as follows : starting from the first row of the l matrix ( i . e ., link status list for node n 1 ); n 1 would be the root of the spanning tree obtained through this iteration . include entries ( i . e ., links ) with “ 1 ” ( say l 1j = 1 ) into oll and include the corresponding neighboring nodes into lnl — can be denoted as func ( n 1 ). if lnl doesn &# 39 ; t include all nodes in the network ( i . e ., lnl != anl ), then go to the row corresponding to the first node ( say n j ) listed in lnl , and do func ( nj ) but do not include nodes and links already listed in lnl and oll . if lnl != anl is still true , go to the row corresponding to the next node ( say n k ) listed in lnl and repeat func ( nk ). finally , repeat until lnl == anl . at this end , a spanning tree for n 1 as a root is formed . obtain the incoming and outgoing interfaces for packets from n 1 , and repeat for the rests of rows ( from 2nd to nth row ). at the end , n spanning trees and n switching entries ( for each node as a source ) are obtained . via this procedure , every node has the same set of n spanning trees , ensuring the shortest hop count . refer to fig9 a for an example of a spanning tree in which the root is vehicle 1 . since vehicle 1 is represented as the first row in the l matrix , our routine starts from the first row . first lnl includes vehicles 1 , 2 and 3 . vehicle 1 connects both vehicle 2 and 3 through l 12 and l 13 respectively : oll ( n 1 ) includes l 12 and l 13 . having done that with the first row , one moves to the next row which pointer can be found in lnl , i . e . the entry next to the one just used for pointing to the previous row . in this case , the second row , pointed by vehicle 2 ( n 2 ) is the next row . at the second row , nothing needs to be done since all the vehicles to which vehicle 2 connects have been already included in lnl through the previous iteration . the next row is n 3 . this time vehicle 4 and 5 ( n 4 and n 5 ) are included in lnl , and l 34 and l 35 are included in oll ( n 1 ). accordingly at the forth row , n 7 and l 47 is included in lnl and oll ( n 1 ) respectively . at the next row which is pointed by n 5 , the vehicle 6 and 8 ( n 6 and n 8 ) and the links l 56 and l 58 are included in lnl and oll ( n 1 ) respectively . at this point , all the vehicles in the network are included in lnl and they can be connected through the links only listed in oll ( n 1 ). so the iteration for vehicle 1 stops here . those links listed in oll ( n 1 ) form a spanning tree whose root is vehicle 1 . fig9 b shows another example for generating a spanning tree . this time the root of a spanning tree is vehicle 7 ( n 7 ) so the iteration starts from the seventh row . the same steps can be followed as described for fig9 a . fig1 shows an example for updating switching entries for switching table , according to an exemplary embodiment of the present invention . the switching table consists of three fields : source , incoming , and outgoing . source is the source of a packet , incoming is an expected incoming interface for a packet , and outgoing is a list of outgoing interfaces for a packet . switching table is updated based on olls . from oll ( ni ) which is a spanning tree for ni as the root , entries for source , incoming , and outgoing are obtained . take vehicle 3 as an example on the upper left . oll ( n 1 ) for the vehicle contains { l 12 l 13 l 34 l 35 l 47 l 56 l 58 }. first the root , n 1 , becomes the entry for source . next pick all the links associated with vehicle 3 . those are l 13 l 34 l 35 . now divide those links in terms of a origin of link . if a link starts from vehicle 3 , that link should be an entry for outgoing , unless , the link becomes the entry for incoming . l 34 and l 35 are the entries for outgoing and l 13 is the entry for incoming . note that l 34 , l 35 and l 13 are corresponding to radio interfaces r 1 , f 1 , and b 1 respectively for vehicle 3 . fig1 shows the flow diagram for the second embodiment . the flow is almost identical to the previous embodiment ( fig7 ) with the exception of step 1180 , where in the present case , the packet is switched to incoming and outgoing interfaces listed in the switching table . the third embodiment , described in fig1 , shows the two - hop neighborhood method . in this embodiment , when a vehicle 1201 receives a packet , it forwards the packet to only selective immediate neighbors . this is similar to the second method , but the way of generating switching table is different from the second method . instead of using information about the whole network connectivity that is required for the second method , a vehicle uses information about its immediate neighbors and their immediate neighbors ( i . e ., two - hop neighbors information ). the header , switched packet list ( spl ), and acknowledgement method are the same as the previous two embodiments . this embodiment selects outgoing links from active links using two - hop neighboring information . a vehicle obtains information about two - hop neighbors by collecting information about immediate neighbors from all of its immediate neighbors . when a vehicle contacts an immediate neighboring vehicle first time through a link , they exchange information such as vehicle id and neighboring information through the link . a vehicle can find the ids of immediate neighboring vehicles associated with its active links . since a link connects only two immediate neighboring vehicles , they can indicate the link by each other &# 39 ; s id . in other words , when a vehicle has connected to an immediate neighboring vehicle , it can determine , among its active links , which link connects to that immediate neighboring vehicle . when a vehicle receives a packet from a link , it can find the sender of the packet ( i . e ., an immediate neighboring vehicle which replayed the packet ) based on information associated with the link . once it finds the sender of the packet , it finds the immediate neighboring list of the sender from its two - hop neighboring information . also it gets its own immediate neighboring list . now it compares its own immediate neighboring list with the sender &# 39 ; s immediate neighboring list . in the comparison , it selects its immediate neighboring vehicles that are not listed in the list of the sender &# 39 ; s immediate neighboring list . the links associated with those selected immediate neighboring vehicles become the outgoing links for that packet . accordingly , the number of redundant transmissions which generate duplicate packets is dramatically reduced : when a vehicle receives a packet , it knows which of its immediate neighbors has already received the packet so that it can avoid forwarding the packet to those immediate neighbors with the copy of the packet . fig1 shows the neighboring information table ( nit ) 1320 and switching table 1340 used in this exemplary embodiment . every vehicle maintains these two tables . nit 1320 maintains immediate neighbors in row 1323 and their immediate neighbors in row 1325 for active links in row 1321 . switching table 1340 contains two fields ; incoming link and outgoing link . incoming link is a radio interface associated with a link through which a packet is received , and outgoing link is a list of outgoing radio interfaces through which an incoming packet is switched to and sent out . the nit table 1320 is generated by vehicle f based on the network topology 1310 . the vehicle f has 5 active links ; f 1 , l 1 , r 1 , r 2 , and b 1 . they are associated with the immediate neighboring vehicles g , b , k , j , and e respectively ( the neighboring vehicles listed in row 1323 of the nit 1320 ). the vehicle g , one of the immediate neighbors of vehicle has 5 immediate neighboring vehicles , h , c , b , k , and f ( refer to the second column of row 1323 in the neighbor information table ). according to this information , the second row 1323 of the switching table 1340 for vehicle f can be filled : this is a case when vehicle f receives a packet from its immediate neighbor g . the radio interface f 1 which is being associated with the immediate neighbor g becomes the entry for incoming link . the outgoing radio interfaces are determined based on a comparison between vehicle f &# 39 ; s and g &# 39 ; s immediate neighbors . vehicles belonging to vehicle f &# 39 ; s immediate neighbors but not belonging to vehicle g &# 39 ; s immediate neighbors are selected , which are vehicle j and e , and radio interfaces associated with those selected vehicles become the entries for the outgoing link , which are r 2 and b 1 . by repeating these procedures for the rests of the active links for vehicle f , the switching table 1340 for vehicle f should be completed . fig1 shows an example of packet dissemination in this method . vehicle e is the source of the packet and link connectivity among vehicles in the network is represented by arrows 1405 . as shown in the bottom half , many links are not used for the packet dissemination but the packet is delivered to all vehicles in the network . note that a link with x mark is not used for the packet dissemination . network coding is used to increase the usefulness of the available capacity in the network . the idea is to mix information at intermediate vehicles rather than simple relaying and replicating . the key notion was proposed in the following paper , which is hereby fully incorporated herein in its entirety . r . ahlswede , n . cai , s .- y . r . li , and r . w . yeung , “ network information flow ”, ( ieee transactions on information theory , it - 46 , pp . 1204 - 1216 , 2000 ). the present invention leverages the concept of network coding to enhance multi - hop throughput amongst a group of vehicles . the operations such as addition , multiplications etc are performed in the galois field ( gf ). e . g ., 1 + 1 = 0 in gf ( 2 ) the original information is split into n blocks ( b 1 , b 2 . . . b n ) of k bytes each : a linear combination is taken using coefficients chosen randomly . the resultant size of x is the same as each of the original n blocks . the coefficients used to calculate the coded block are appended with the block for later decoding . at intermediate vehicles , received blocks are coded in a similar fashion and sent . for a stream of data at the source encoding is done continuously . to differentiate between different original coded blocks , a level number is assigned . for e . g ., the first n blocks coded are assigned level 1 , the second n blocks are assigned level 2 and so on so forth . the level number can be rolled over at an appropriate value . level numbers are also included in the coded block from a source . intermediate vehicles , code across different packets received in the same level number . at the receiver , all the packets of a particular level number are used for decoding . the values of n and k ideally depend on several system variables such as packet size , the network topology ( broadcast capacity ), number of links etc . depending on the roadway environment the parameters can be adjusted to provide an appropriate compromise between robustness , delay and throughput . the encoding and decoding can be done in a completely distributed fashion without the knowledge of the network topology . the process is independent of the presence of loops in the network and the direction of data transmission and the vehicle traffic . at the receiver , the vehicle waits for n blocks to obtain a matrix from the embedded coefficients . each row of the matrix a , corresponds to coefficients from one block . the original blocks are recovered through an inversion operation using gaussian elimination [ b 1 , . . . bn ]= a − 1 x t a progressive decoding methodology is possible without having to wait for all the required blocks using gauss - jordan elimination . the encoding and decoding can be done in a completely distributed fashion without the knowledge of the network topology . the process is independent of the presence of loops in the network and the direction of data transmission and the vehicle traffic . the invention has been described herein with reference to a particular exemplary embodiment . certain alterations and modifications may be apparent to those skilled in the art , without departing from the scope of the invention . the exemplary embodiments are meant to be illustrative , not limiting of the scope of the invention , which is defined by the appended claims .