My opinion: A tier 1 provider does not care what traffic it carries. That is all a function of the application not the network. A tier 2 provider may do traffic shaping, etc. A tier 3 provider may decide to block traffic paterns. ------------------------------ More or less... The network was intended to move data from one machine to another... The less manipulation in the middle the better... No manipulation of the payload is the name of the game. That being said. It's entirely a function of the application to timeout and drop out of order packets, etc. ONS is designed around this principle. In streaming data... often it is better to get bad or missing data than to try and put out of order or bad data in the buffer... A good example is digital over-the-air tv... If you didn't build in enough error correction... then you'll have digital breakup, etc. It is impossible to recover any of that data. If reliable transport of data is required... That is a function of the application. ------------------------------ a tier 1 can never not have enough capacity.. always N+1.... 99.999% a tier 2 can afford 95.0% a tier 3 75% or better is a good target. wireless i call tier 4 - 50% is a good target... there are too many variables for ANY type of SOA. Just because you got the data... doesn't mean it wasn't re-requested 20 times. 256^6 AS : Network : Subnet : Machines We will never run out of IP space... IPv6 is too dificult to understand... ONS is a direct replacement for the ENTIRE network architecture. Sonet, etc... It's all replaced. So you all get it from an address AS : NETWORK : SUB-NET : MACHINE [MAC] 04.43.AA.AA.00.01 : 00.00.32.AA.00.F2 : 54.23.AA.43.AA.00 : 90.FA.A0.A9.F3.C2 The address includes everything about your network address... AS to MAC address... That is networking made simple... And the routing and AS to AS mechanism is that much simpler.... MPLS switching is a good way to think of it. I provide a path to your AS... at entry you provide a path to it's destination. Or onward to the next connected AS. SO something similiar to BGP is your inter-AS protocol for establishing what is where... It's entirely interface driven... I just provide the next interface... Each routing- switch is a node... So the list just tells it the node numbers to traverse... calculated at entry to your AS.... node : interface : subinterface . sub [AS] : 08fa.003a : 0002 : 0000.00 Of course a DNS naming convention is implementable... Who wants to think of every single device as a number w/o a name.... Node / interface address... You could prepend the AS at the begining.. but I would strip it from what people see ... Of course you could to MPLS type as to as routing... but that table could become huge.. and it's typically best for each provider to decide what to do with the traffic at entry to it's network... perhaps only for your own customers would you do MPLS / MPLS type peering. ------------------------------ It's like I'd peer a maximum of 4 x OC192 to another tier-1 and everything else for their network either gets dropped or they pay for additional bandwidth... I peer ONLY with tier-1 providers... a maximum of p GB/s... Everything else is paid traffic. I have confidence that my network is directly connected to 85% of the world... And that my datacenters and distribution network cary 85% of the traffic neccesary. ------------------------------ Every customer looks like a subnet... They can attach a virtually unlimited number of devices to their subnet... ------------------------------ That is to say that a sonet ring is made up of a series of devices... The entire network is ONS... Every single device on it. Hybrid-switching... It's still early in the design stages... Designed but not implemented. ------------------------------ Now which university wants to give me my degree??? How about that CCDP??? ------------------------------ What a packet / frame / whatever looks like: [AS Path] : [QOS identifier] : [Switching path] : [destination address] : [control bits (stack)] : [origin address] :[payload] : [padding] [AS]: prepended at network entry... validating this belongs on my network. important if your a transit point between two AS's. and your network doesn't appear in the origin or destination... could even contain the AS and other information about how it got there... netflow stuff... could just be an AS path... but it's best to let the next network decide what to do with it... It's just good to know this belongs on this network and this is why it's here... a. it originated here b. i accepted it from AS x as customer c. i accepted it from ASx a peer d. gateway of last resort e. other If it shows up on another AS... it will know that the data requires validation / handling ... so when i give it to AS p on interface g that machine will have to validate it belongs there and change the AS to indicate it belongs and calculate a path. Deffinetly an AS path to ensure that I don't just give it right back to the origin AS or anywhere else that has already had it because I think you have a better path to it. So it MUST retain the AS's that it has traveresed. Prevent routing loops. If I receive something from an AS that I'm not supposed to receive from... Either accept it due to policy override. Or drop it and create an alarm. Either way create an event. QOS: first .. drop it unless i have to have it in congestion. queue everything else.... typical QOS stuff. I don't even want to process it if I'm congested or overloaded unless it is X priority. switching path: node:int:sub//node:int:sub//node:int:sub//node:int:sub....[padding] .... end of path. each node strips it's address and moves it to the next interface. [QOS identifier] - 00.00 default. no priority. so a QOS enabled network would be able to buffer data and manipulate it... a tier 1 should have enough capacity to never need this. especially at 100+ gb/s ... a tier 3 or tier 4 network... this could be useful... at congestion... just drop the data unless it is FF.xx could be used like FECN / BECN... I'm congested at the end... quench everything that isn't important. store it if it's EE drop anything less... FF must reach it's destination. if something bad happens it looks up the origin address and returns some sort of message indicating it's node address ... [control bits] undefined... containing an application identifier, sequence number, data type, crc, crc version, etc. what we once called a socket number.... packet , etc... ff.00 even the application could be switched to a particular computing node... / interface special address... saying that a cluster is a subnet and some control device decides where what goes... A RFC would be neccesary for the worlds input in assuring a versitile protocol that will not ever need to be updated... Devices on the network would obviously all require address... AS : FF.FF.FF.FF.FF.FF this network only... and some sort of addressing... too be determined. You'd also want some sort of encryption alogrythm on control data to ensure no one has slipped you a roofy. I suppose just utilizing the switching path to get it where it needs to go... special addresses, etc... anything bound for all FF's has to be for me... better authenticate it. the application sees the control bits, origin, payload] anycasting still works... one network number is a special number... always anycast... you can have as many subnets under that as you like... so at entry the path to the closest / best node is chosen... if those nodes are doing anything that requires always getting the same node ... then they had better have some application level magic happening... static interface scratch files.... something like that.. 1kb of data FF.FFalways going to the control node... keeping track of what is where. so you received a request that you don't know what to do with.. better consult the control node. (c) 2007; Patent Pending Chile and other territories. I intend to license it like the drug companies... ------------------------------ Finished! Enough to get started with an implementation. A few important things... Max AS path... after x it's automatically dropped. Max Switching path... I only reserved so many bytes... Target size 32768 bytes with 16384 bytes data. fully adjustable based on experimentation. So this is saying that for whatever reason I have decided this must go to AS x... Now you decide what to do with. But don't EVER give it back to me.