All posts by jfieser

Mission from God

Yesterday, my oldest brother Steve and I were sent on a “Mission from God” reminiscent of the old Blues Brothers movie. The Catholic school we attended 30 years ago had some furniture from a donor in Kansas City and required our unique talents to deliver these items. The unique talents Steve brought included his willingness to fund the excursion, drive nearly 1,000 mi. and his ability to borrow a pickup from one friend and a 5th wheel stock trailer from another. Me? I was willing to take a day off work for a good cause and shove some furniture around with my brother.

Steve drove up to stay with my family in Columbia Wednesday and read to my kids at bedtime. Early Thursday we drove to KC and met Mary, another St. Teresa alumni and the cousin of the current principle, at a warehouse. She brought a teenage neighbor to help us load. Items donated included 7 heavy fire-proof cabinets, a refrigerator and 2 conference room tables, one of them >20 ft. long.

As with any adventure, some things don’t work out the way you planned. We didn’t expect the stock trailer to be as old as it was and had anticipated features like brakes or at least brake lights to be functional. We had also not expected it to be padded with straw and horse crap. The truck however, donated to our cause byGreg Hobbs, performed admirably and could easy out-pace my 73 Charger pulling a 28 foot trailer. It sustained some damage when some wimp in an H2 Hummer insisted that Steve move the truck around the tiny lot: the tailgate was down and was torn off by the trailer.

There was ample opportunity to talk to my brother and explore the myriad of similarities and differences that make us family. We both have kids in Catholic schools: that we have in common. It’s politically that we differ. He brought up the high cost of fuel and I mentioned ExxonMobile’s $10B profit last quarter. Steve mused, “That’s going to make it challenging to elect another Oil-Man President.” God, he makes me laugh.

We filled the trailer with chairs, tables and dry erase boards and he had me back to work in Columbia by 1:30 in the afternoon. He still had 300 miles to go, but as far as I was concerned it was: Mission Accomplished.

Checksum Mitigates Network Risks

Checksums are used to make ethernet communications robust. I’ll attempt to explain how that works and why leveraging checksums in a network qualification is efficient and effective.

Practically every packet of information passed in an ethernet network is carefully checked for accuracy and, if the test fails, the system automatically requests the packet be resent. Ethernet devices like the network interface cards (NIC) in computers follow strict guidelines and communication protocols before passing data from the network on to the computer.

While an ethernet device prepares a packet of data to be sent over the ethernet, it uses an algorithm to create a checksum from that data. The checksum cannot be used to re-create the data, but it is used to ensure that the data is identical to the original data that formed the packet.
sack0You might ask, “How can the checksum can be part of the data packet it is a checksum of?” The data is like the contents of a sack of lunch and the receipt is the checksum. The receiving network card is designed to separate the datagram from the header and checksum portions of the packet and perform the test: just like I have no problem separating the paper from my lunch.

Ethernet networks like the internet were designed to provide for this kind of inherent testing so the infrastructure would not need to be dis-assembled for testing. The components with the greatest risk of failure are not the wires and fibers but the interface cards and devices that they connect.

Inherent testing assures that tests include the network translation devices including the connection interface where the “rubber meets the road” so to speak. It is critical that the tests include these connections “in situ” since even a tiny piece of lint can scatter the light in fiberoptic connections or increase resistance in copper connections.

The checksum tests are embedded in the underlying protocols that define how data are sent over the network. They cannot be turned off by end users or adjusted to allow a percentage of error: any anomaly requires a resend of the entire packet. Persistant failures result in a complete loss of communication, not deilvery of inaccurate information.
sack1Let’s say that someone offers to drive to town and get a lunch for me. If my goal is to mitigate the risk that they deliver an inaccurate lunch, I can approach the problem from two angles:
I could check their car over and carefully survey the road surface for the route I expect they will travel.
Or, knowing that they might take either the Interstate or the county road, I could just wait until they return and check the receipt (i.e. checksum) against the contents of my lunch sack. If one BYTE is missing from my hamburger, the checksum test will fail and I’ll send them back for another entire packet, er I mean, sack lunch.

With the checksum approach there is an opportunity for a slow lunch delivery – especially if I keep sending them back until they no longer eat part of my lunch – but the risk I wanted to mitigate was the opportunity for an inaccurate lunch. Testing the wire and fiber components of the infrastructure don’t do anything to assure the integrity of the packets delivered: if they don’t precisely match the checksum they will never be delivered.

So, how can we quantitatively determine the state of our network infrastructure from the NIC of the server to the NIC of the client PC and include any other ethernet data acquisition devices without unplugging anything? We could add up the number of resend requests that are sent when data packets fail the checksum test. Switches and hubs have been designed to track such success parameters as that for many years. Investments made to report this data would surely provide a return by empowering the organization to track and trend the true health of the network.

Reports and summaries of packet failures are nice, but not necessary to leverage the power of the checksum in network qualification documents. All that is needed there is a savvy explanation of how all your network devices checksum essentially every ethernet* packet for quality and automatically requests the data be resent on error.

Hopefully this blog entry will assist you in that task.** You are welcome to use any part of it without reference but please leave me a comment if it has been helpful or entertaining. You are welcome to reference the work in it’s permanent archive: http://jimf.name/checksum-mitigates-network-risks/

* Note that the checksum cited here does not apply to non-ethernet protocols like RS-232 and RS-485 serial communications. Implementations of serial and other connections require some other means of qualifying accuracy.

** The author is not responsible or liable for misuse or interpretation of the information presented here: USE AT YOUR OWN RISK!

Keep IT Simple

Working in an IT dept. of a medium-sized business, we are often asked to “integrate” a couple of applications. The requestors may or may not have gone through the research necessary to the specify the integration they need. They may already have both applications, and they can specify the fields from one product that they simply want replicated to another, but upon furthur questioning, may still want either application to be used to enter these records and, of course, both applications should syncronize automatically. These “random integrations” can consume large amounts of time and may never fully satisfy the requester before one application needs an upgrade.

Unless the IT dept. has lots of time to spare, the only hope for success is to keep the project as simple as possible. Find out the ultimate goal of the requested integration. If management requires reports that include information from two distinct data sources; it may be possible to write a report that organizes information from both sources. That is a lot less work than to augment records from one source into another application. It’s also less likely to require extensive attention when either application is upgraded: it is simply a combined report. (Labor saving integrations will be discussed another day.)

For instance, let’s say you have one program that tracks employee’s time toward projects, and another accounting program that tracks income and expenses other than labor to these projects. The obvious report required would answer the question, “Which projects are making/losing money?” It may be a lot easier to combine data from both sources into a single report than to incorporate records from one database to another to effect the same report.

It may also provide more current data to leave the original databases alone. If users enter their time every day, a combined report would be updated daily. But if the accounting system gets an infusion of their time only at the end of a payroll period, then management would only see current data around payday.

Old data is of little use: even management cannot change the past. The more critical timing is, the less we want to rely on direct replication of records from one database to another. It’s also so much simpler: what will happen when a record that has already been replicated gets changed?

So there you have a case for keeping it simple.

Kids say the Darndest Things

Tonight, my 4 yr old girl was finally hopping into bed. As I tried to climb in next to her to read from the books she’d picked out she said,

No Daddy, you kneel (on the floor), I don’t want you to ‘toot’ in my bed.

 I told her I was going to publish that on the web, so here it is. I’m personally proud that we have taught our kids to use toot for flatulence, it would not have been as cute if she’d used any other term.

While I was on my knees, I took the opportunity to say a quick prayer with her for our family and pets: her value-add. I managed to pray with the 6 yr old boy as well, after reading a cowboy story from a 1950’s Reader.

While I didn’t exactly pray with the 10 yr old, we did study for his science test on atmospheric gases. I digressed as usual on the balance of gases and the carbon cycle. We talked about how both fires and animals like ourselves use oxygen to “burn” carbon giving off heat energy (I am warm, fires are hot) and we produce carbon dioxide as a waste of that chemical reaction. Plants like trees absorb that carbon dioxide and use the power of the sun to create leaves, stems and wood to fuel another fire. A by-product of that photosynthesis is also the same oxygen, stripped of it’s carbon and ready for a fire, or to be somebody’s breath of fresh air.

I watched as the wheels of science clicked in his head. Then I mentioned that I believe it was the atomic choreographer I call God who developed this dance between Carbon and Oxygen that maintains the balance of the bio-sphere and fuels, well, life as we know it.

It was a successful night of evangelization in my own home. I only missed a final moment with my bride before she went to sleep. That’s an action item for another day.