Contiki 2.6: IPv6 For Everything, Everywhere
An anonymous reader writes "The Contiki project just released version 2.6 of its open source operating system for the Internet of Things, used to track city sound pollution, control street lights, read power meters, monitor radiation, among other things. The technology behind it? A really tiny IPv6 stack that fits in a few kilobytes of memory, allowing everything, everywhere to have an IPv6 address."
Is it bad that the first thing I thought of when I read the "your-footstool-is-broadcasting-an-IP-address dept" was that IPv6 doesn't support broadcast?
Yet Wikipedia admins still checkuserblock thinking it will stop sockpuppets.
besides "Contiki" sounds like a pet name for a gay lover
Sure, a decent enough platform I guess.
Now, to solve the routing problem! I want to send an email to one of my Contiki buddies down the street. How does the name get resolved and how does a resolved IPv6 address get turned into a route? How about a few miles away? To my buddies in Australia?
And how do we firm critical mass in the mesh, or provide a network effect to get everyone on board?
Finally, let's not forget about the electromagnetic sensitivity problem.
But these are all solvable. Let's go!
We'll let established security protocols solve the application layer problem.
Back in 2008, the same project was quoting "a code size of 11 kilobytes and a dynamic memory usage of less than 2 kilobytes" http://tech.slashdot.org/story/08/10/15/1839209/worlds-smallest-ipv6-stack-by-cisco-atmel-sics
Now we have "fits in a few kilobytes of memory" ...
So this seems to be a nice incremental improvement?
Any experts on embedded systems able to give insight into the importance of (lets say) 16kB in the old version versus (lets again say) 4-6kB including dynamic stack ??
Same as IPv4! It is called DNS. It is called "default route". IPv6 has RA so you don't have to set it up manually. It has IPv6 autoconf via same mechanism. What's the problem???
Assuming that either the RA support RDNSS, or there's a tiny DHCPv6 client onboard to get that information.
I see, this is about providing an embedded platform for things that want to get on some local Internet drop. It isn't really about creating an Internet from things.
Contiki was created by Adam Dunkels at SICS in 2003 and was quickly slashdotted. Its impact has been growing ever since.
Plus ça change, plus c'est la même chose.
Protoplasm. Quiet Protoplasm. I like quiet protoplasm.
And what, pray tell, is the "electromagnetic sensitivity problem"?
The Hollywood fantasy of everything everywhere being open to attacks over the internet was such an awesome idea.
I can't wait for "they hacked into the traffic lights" to become an actual statement rather than a punchline.
Ummmm... IPv4 has 32 bit addresses and IPv6 has 128 bit addresses. The size of the address space in IPv6 is beyond human comprehension. It's big. Very, very, very, (very, very) big. Even bigger than that.
The tech which we're really talking about here is 6LoWPAN, which is IPV6 for these low-power wireless sensor networks. It's a pretty simple software solution, but it's built on some cool stuff. I'm partial to TinyOS over Contiki, but I guess that's just my exposure to it (plus it uses the superb nesC language).
Yup. Stupid is as stupid does^H^H^H^Hsays.
Arithmetically, this would be possible - Contiki would need just one router, assign an address to everything in the world that needs one, and be off to the races. In practice, of course they'd have many routers, but how do they define their various scopes, like their organization, their sites and so on, so that everything in the 'internet of things' is actually within a/their network?
In IPv6, as we know, there are several scopes, such as local link, site, organization, admin and global. Does Contiki actually make use of all these? I'd actually be interested in a large organization that has such an hierarchical structure, so that the various scopes and networks and sub-networks are appropriately organized to optimize traffic within this internet of things.
Ultimately, this concept could be the killer app that accelarates IPv6 acceptance throughout the internet.
Precisely - just do a multicast transmission to address ff02::fb to get to all DNS servers on the local link, or to ff02::1:3 for all DHCP6 servers on the local link. In fact, that's how router advertizements would work.
Given the way IPv6 has demarcated the 'network' and the 'host' space (to use IPv4 terminology temporarily for explaining this) to 64 bits for each, there is now theoretically 18,446,744,073,709,551,616 addresses that can be there within a subnet link. Within the 'network' space, there has been some more demarcation, since 2001:: (and a bunch of more address ranges in the 2000::/3) are the only unicast addresses, and the last word in this 'network' space is the subnet address, there is room for approximately 50 billion network organizations worldwide.
This may be enough, as I've said previously on threads about IPv6, I'd have made the entire top half the global prefix, and then split the lower half b/w subnet and interface ID. I like the idea of fixed lengths though, so that unlike in IPv4, one no longer needs to support subnet masks, and the sheer size suggests that there wouldn't be any reasons for supernetting. People have argued for the need to allow autoconfiguration, and here, if one uses the link layer addresses of ethernet connections, one ostensibly has to allow 48 bits, and if one is using SCSI connections, one has to allow all 64 bits. I still think though that since no network is likely to have anything even close to a billion devices, allowing the last 2 words to be the interface ID (w/ some patched up autoconf) and the previous 2 to be subnet addresses (allowing for nested subnets) would have been more ideal.
Having said all that though, I doubt that any future protocols would have to break compatibility w/ IPv6 the way IPv6 had to break compatibility w/ IPv4. If we do get to 50 billion networks ever, then the next protocol (lets say IPv7) could be different, but it would still have 128 bits, and so the header information wouldn't change to the point of breaking compatibility. Only thing - they might do what I suggested above and redefine the entire top half to be the global prefix, and limit the interface ID to, say, the lower 3 words, leaving 1 word in the middle for the subnet addresses (depending on how most implementations go w/ the current IPv6). And while a lot of equipment would still need to be updated to support the newer protocol, it wouldn't need to be upgraded - unless some moronic manufacturer decides to cost reduce by replacing flash w/ mask ROM in which to contain the IPv6 stack.
Should have gone with at least four times as big.
But that's enough about your penis, just think yourself lucky that the enlarger worked at all.
And what, pray tell, is the "electromagnetic sensitivity problem"?
From what I can make of his post, he's saying that electromagnetism gets its feelings hurt easily. So watch your mouth.
WiFI interference. eg when your neighbour gets home late and heats up a microwave dinner which you're streaming a porn^H^H^H^Hblockbuster movie.
Rain is probably a bigger problem. Not sure about in the states but the topical storms we get over here in monsoon season ruin all signals.
since 2001:: (and a bunch of more address ranges in the 2000::/3)
The whole of 2000::/3 is assigned to the IPv6 internet (not all of it is in use yet though)
there is room for approximately 50 billion network organizations worldwide.
Umm, assuming each network gets a /48 (which is a conservative assumption many ISPs are only giving out a /64 by default and giving larger allocations on request) and a /3 is available for the "IPv6 internet" that leaves 45 bits to define the network. That means about 35 trillion networks can be addressed. To put that number into perspective it's thousands of networks for every person alive on earth today. Granted there will be some wastefulness in allocation (in particular ISPs that are big enough to be allocated a /32 but small enough that they won't ever allocate all 65536 /48s) but I still don't see IPv6 addresses running out any time soon.
And finally remember the current ways of dividing up the IPv6 address are mostly just conventions. There is nothing stopping you using smaller subnets right now if you want (provided you are prepared to give up stateless autoconfiguration), the internet won't know or care.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
Once IPv6 becomes common, administrators of Wikimedia sites and other sites based on user contributions will start blocking sockpuppets by their /64, /56, or even /48, depending on what home ISPs hand out at various service levels.
Rain is probably a bigger problem. Not sure about in the states but the topical storms we get over here in monsoon season ruin all signals.
It's not the rain that does that, you imbecile. Try the broadband electromagnetic discharge produced by arc-mode electric current. I.e. lightning. Compared to that a falling drop of water means nothing to your WiFi setup.
Miller Brewing and Coca-Cola just release their new 'Tra-can' system to allow the two mega-beverage giants to track who buys what where and how long it takes them to consume it. The system is similar to the ill-fated Snack-Trac system that Frito-Lay rolled out two years ago and resulted in half the world's IPV6 addresses being consumed. Miller and Coke promise to recycle the addresses noting 'we are good internet users and always conserve resources.'
In other news Wal-Mart is insisting on all products sold in the store to carry IPV6 addresses for their tracking system. This move has lead China to reserve a full third of all IPV6 addresses still available.
This just in. IPV8 will have 4 times the number of addresses of IPV6. "It will solve the address issue forever" say scientists.
Most current IPv6 networking gear, from what I understand, recognize boundaries @ the half-way mark. So if someone is using such a router, which is pre-configured to accept Global prefixes that ultimately go to that spot, there's no way they can use part of the interface ID for other purposes. It'd be similar to how in IPv4, there is older equipment that don't recognize CIDR. So if on a global basis, the demarcation boundaries do change, it would be a good idea to rev up the revision# in the IP header, even though the other fields may remain unchanged. So that equipment universally doesn't get confused b/w /64 links, and say /80 links.
I know that you were having a nice HHGG-inspired giggle, but unfortunately a lot of people think that the numbers concerned are a lot bigger than they effectively are.
A /64 is the smallest routable IPv6 block, so in effect there are only 2^64 distinct routable prefixes given by the top 64 bits --- the bottom 64 bits are effectively a sort of "property" field attached to the top 64 and don't increase the real routable address space.
Most people who aren't being restricted to a single routable 64-bit prefix are being given a /48, and (64 - 48) is only 16, so they're being allocated blocks of 2^16 routable addresses, which is not a lot at all --- the old "640k is enough for anybody" quip comes to mind. It's only a lot if you limit yourself to "IPv4 thinking" in which address space was considered a scarce resource. It's now less scarce in IPv6, but nobody could claim that 2^16 routable addresses is a large number.
Personally I think they should have defined IPv6 with 256-bit addresses. It's only double the overhead, but would have given everyone effectively infinite routable addresses to play with, rather than just 2^16. (The fact that big organizations get somewhat larger blocks than a /48 doesn't change this argument, they're still pretty limited.)
IPv6 doesn't really provide a lot of elbow room. Although it seems a large space because we're so used to being packed together like sardines in IPv4, all those other people's elbows out there are in plain sight on the horizon, and I don't think it'll be a long time before we start feeling uncomfortably hemmed in.
2^16 per person is just too small if you want to do interesting things with address space beyond the old IPv4 thinking.
Number of unique devices that can be addressed under IPv4:
2**32=4,294,967,296 = 4 billion devices
Number of unique SUBNETS that can be addressed under IPv6:
2**64=18,446,744,073,709,551,616 = 18 quintillion subnets (each subnet can support that same number of devices).
Number of atoms in this solar system (aside from in the sun): (http://www.madsci.org/posts/archives/may98/892502124.Ph.r.html)
1000000000000000000000000000000000000000000000000000000
Number of devices that can be addressed under IPv6:
340282366920938463463374607431768211456
So until we can make a computer out of 2,938,735,877,055,718 atoms and do this on average for our entire solar system (or leave the system), we should be set.
Sure. Let's do that. Let's make it even easier for malicious types to hack everything.
No. Just, no.
Are YOU using the TOOL, or is the TOOL using YOU? Think about it!