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.
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.
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.
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).
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.
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.
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.
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!
Why 256? All they needed to do was divvy up the 128 bits differently. Make the entire top half the Global prefix, where you could have a hierarchical distribution, such as first byte being the RIR, second being the country, and from then on, drilling down to ISP, then customer, then maybe consumer. At the half way mark, have the subnets start and make them 32 bit, so that you'd have 4 billion routable address links, which should be fine. Finally, have 32-bits for the interface ID, which should be fine, since no subnet is going to have even close to that number due to the sheer #collisions it would involve. Yeah, autoconfiguration would be a lot more difficult, if not lost, but honestly, 2 devices having the same automatically generated number shouldn't be a problem if they live in completely different networks.
If 65k networks per organization turns out to be a large problem, we can move out of 2000::/3 and change the subnet size to something smaller than /64. Everyone has pretty much decided that having a deterministic non-stateful auto-assigned IP address is undesirable instead of the advantage it was thought to be, and if you give up on any one of those three properties, /96 is plenty.
I doubt it will be a problem in practice. Most organizations fit nicely in IPv4 10/8 with /24 subnets. I've worked for companies where 10/8 was a restraint, but those all had AS numbers and would have no problem acquiring a /32. 2^32 subnets ought to be enough for everyone...
Personally I believe IPv6 should have been designed for better support for /127 or /128 point-to-point-links to end hosts instead. Right now we are emulating broadcast domains over point-to-point ethernet using switches, and then with IPv6 trying to split those into multicast portions. Any switch powerful enough to do multicast (MLD) snooping is powerful enough to run proper routing anyway.
Having full routing to every host would enable many cool inventions, like keeping the same IP address on both wired and Wifi.
Finally! A year of moderation! Ready for 2019?