Book Image

iOS and OS X Network Programming Cookbook

By : Jon Hoffman
Book Image

iOS and OS X Network Programming Cookbook

By: Jon Hoffman

Overview of this book

Table of Contents (15 chapters)
iOS and OS X Network Programming Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Decoding IP headers


In the Decoding Ethernet headers recipe, we created the got_packet() callback function that libpcap called for each packet that was captured. In this function, we showed you how to pull the Ethernet header information from the packet and created a switch statement that called different functions based on the protocol type. In that switch statement, we made a reference to a decodeIp() function that is used to decode the IP headers. In this recipe, we will create this decodeIp() function.

The IP header is a part of the second layer (Internet layer) of our header stack. Its structure is shown in the following diagram:

The components are explained as follows:

  • Version: This is the version of the IP packet. It can either be 4 (IPv4) or 6 (IPv6). For our examples, we will only look at IPv4.

  • Header Length: This indicates the number of the 32-bit words in the TCP header. The minimum value is 5.

  • Type of Service: This is now known as DSCP (Differentiated Services Code Point); it may...