== IPv4 == __Figure 1 - IP Packet Structure (source : wikipedia)__ [[BR]] [[Image(ip_pkt.bmp, 1300px)]] [[BR]][[BR]] * '''Version''' == 0x4 * '''Header Length''' == 0x5 (five 32-bit words) * '''Differentiated Services''' == 0x00 (not used) * '''Total Length''' == datagram size e.g. header + data (bytes). Note, header = 20 bytes. * '''Identification''' == 0x0000 (not used) * '''Flags''' == b000 (not used). Note, three-bit field. * '''Fragment Offset''' == b0 & 0x000 (not used). Note, 13-bit long. * '''Time to Live''' == 0x01 * '''Protocol''' == 0x06 (TCP), 0x11 (UDP). More information at http://en.wikipedia.org/wiki/List_of_IP_protocol_numbers. * '''Header Checksum''' == computed as : all 16-bit words are summed together using one's complement (with the checksum field set to zero). The sum is then one's complemented and this final value is inserted as the checksum field. [wiki:Software/Firmware/Framework/R3_arch/ip/example Example]. * '''Source Address''' == Source IP * '''Destination Address''' == Destination IP * CRKit IP == 192.168.0.1 (hardwired until we have DHCP running). * Host IP == 192.168.0.0 (default, but programmable from Packet Processor RMAP). * Further IPv4 information at http://en.wikipedia.org/wiki/IPv4#Data. [wiki:Software/Firmware/Framework/R3_arch Return ..]