RandomC (in lib) and UniqueSendC (in chips/cc2420/unique) are both wired the MainC.SoftwareInit. On my system it seems that that UniqueSendC is initialized first and hence without a seeded random number generator. As a result, all nodes have the same initial DSN. This leads to funny effects when nodes start to transmit simultaneously, as 802.15.4 ACKs are bound to the DSN only.

Contacting tinyos-devel on this, Phil proposed the following fix: “The trivial change is to have init() post a task that initializes the sequence number”. Now, this is really a nice and simple fix (and I tried it: it works).


After some fixing (thanks to Joakim and Fredrik here at SICS) Cooja and MspSim now run TinyOS fine once again: Timers do not do funny stuff anymore and serial communication (via socket) now passes the CRC check of the TinyOS tool chain.

As usually at SigComm, all papers where really good. It was hard to pick my three favorite ones, here are the ones I have chosen today (Tomorrow this might look different):

  1. Efficient Error Estimating Coding: Feasibility and Applications (BEST PAPER): “Without actually correcting the errors in the packet, EEC enables the receiver to estimate the fraction of corrupted bits in the packet, which is perhaps the most important meta-information of a partial
    packet.” The paper shows how this information can be used for video streaming etc. where it is not so important that all bits are received correctly. Hence, EEC is somewhere between ECC (error correction codes) and CRCs on the other hand.
  2. SourceSync: A Distributed Wireless Architecture for Exploiting Sender Diversity: “SourceSync enables concurrent senders to synchronize their transmissions to symbol boundaries, and cooperate to forward packets at higher data rates than they could have achieved by transmitting separately. The paper shows that SourceSync improves the performance of opportunistic routing protocols.” Ok, this is cool: in classic opportunistic networks we exploited receiver diversity, now we do the same with the senders. I am wondering if this would also work for Wireless Sensor Networks. However, the tight synchronization requirements (down to the symbol level) seem to make it at least challenging.
  3. Understanding Block-level Address Usage in the Visible Internet: “We have little information about the edge of the network. Decentralized management, firewalls, and sensitivity to probing prevent easy answers and make measurement difficult. Building on frequent ICMP probing of 1% of the Internet address space, we develop clustering and analysis methods to estimate how Internet addresses are used.” This paper gives interesting insight in the edge, i.e., end hosts, of the Internet. I like this paper for a special reason: all measurements they do is to ping 1% of the Internet addresses. From this simple information they then smartly draw their conclusions. 

Listening to the SigComm talks, I realized that there are two playgrounds where people can apply tons of clean slate research to today’s networks and (still) do everything new and shinny : Data centers and Wireless Sensor Networks…

1. Breathe to Stay Cool: Adjusting Cell Sizes to Reduce Energy Consumption: Adapt cell coverage (and even big others bigger and turn off some) according to network load to make cellular networks more energy efficient. Interesting, this seems to align well with work going on at Ericsson and probably others.

2. Reducing energy consumption in IPTV networks by selective pre-joining of channels: How to safe energy in IPTV networks, but results are not really promising. But a very nice talk, as always from Jon Crowcroft.

3. Energy Proportionality of an Enterprise Network: Build power models for your network infrastructure and use SNMP to measure the current configurations and operation modes (traffic rates etc.) to estimate the overall power consumption. Use this information to optimize your network.

1. Greening Backbone Networks: Reducing Energy Consumption by Shutting Off Cables in Bundled Links: Energy consumption off routers seems to depend on whether the link is on or off and not depend on the actual load. Hence, you should turn off links to safe energy and to keep the others well loaded.

2. How Internet Concepts and Technologies Can Help Green and Smarten the Electrical Grid: How Grids can be be made green by learning from the Internet. Very interesting talk. Current problems in the grid: storage, over provisioning, loss in distribution (lines, transformation). However, the grid of tomorrow looks different, it will change: people start producing energy, too (wind, solar) and hence to not only consume (bidirectional energy flow), store energy, and collect energy information on energy usage at high detail (smart meters). This causes funny problems: with solar cells and wind mills in each garden we have millions of not really predictable sources. This results in a complex distribution / backhaul of two way flows: energy sinks now become a source, too. Furthermore, wind and sun are strong were people and industry are typically not located: in the desert, at the sea.
The talk suggest to use Internet techniques such as Peer-To-Peer etc. to solve grid problems and identifies interesting similarities between power grids and the Internet. For example, they have similar problems / challenges: heterogeneous, critical to society, ossified. Furthermore, they share some similarities: Simple API (simple plug vs. simple protocol known as IP) … but also have nice difference as electrons do not have headers and are not routed in a “packet” based fashion.  Also, storage of energy if much more difficult than storage of data. For more, please read the paper, this talk is too interesting to type and listen.

3.How Green is IP-Telephony? Compare P2P relaying to a centralized relaying. But the interesting question was left open (future work) compare to classic PSTN network.

4. Shipping to Streaming: Is this shift green? Interesting talk, but not really surprising: When you do your data center right, streaming is more energy efficient.

1. Running Servers around Zero Degrees: Can this work? Or more general: at what temperature should computers be run so that energy cost of cooling etc. and the cost of failure are fair.
Nice words from the talk: What is computer science? CS looks at the question at what can be automated. Or more precisely asking what can be automated efficiently. Maybe we should now ask, what can be automated sustainable…

2. NapSAC: Design and Implementation of a Power-Proportional Web Cluster. Paper shows power proportional web cluster. Basically, it adds atom based machines to the web server front ends for low loads. Each CPU class and machine type has a different operating range where it handles a good number of request at low joules per response. Combine Atom and server class machines to serve Wikipedia loads etc. by doing some cool software load balancing.

3. SpinThrift: Saving Energy in Viral Workloads: SpinThrift: in social/viral  networks people often look at a fraction (for example seconds 45 to 55) of a video that friends/others consider funny. This paper helps to make this more scalable

The talks for “energy aware routing” and the one on compression were cancelled. Talk 3 of this session was scheduled in session 3.