This wiki has been migrated to https://gitlab.com/wireshark/wireshark/-/wikis/home and is now deprecated. Please use that site instead.
Differences between revisions 1 and 17 (spanning 16 versions)
Revision 1 as of 2004-09-14 10:52:37
Size: 1778
Editor: UlfLamping
Comment: add first content
Revision 17 as of 2006-08-24 17:53:27
Size: 4726
Editor: GuyHarris
Comment: Fix netmask capture filter example, add "not host" capture filter example.
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
= Internet Protocol (IP) = = Internet Protocol version 4 (IP) =
Line 4: Line 4:
The Internet Protocol provides the network layer (layer 3) functionality in the TCP/IP protocol suite. The Internet Protocol provides the network layer (layer 3) transport functionality in the InternetProtocolFamily.

This page describes IP version 4, which is widely used. There's also an ["IPv6"] protocol page available.

The IP protocol is used to transfer packets from one ["IP-address"] to another. The user of this layer will give a packet and a remote IP address, and IP is responsible to transfer the packet to that host.

IP will (hopefully) guide the packet the right way to the remote host. The data transfer is independant of the underlying network hardware (e.g. ["ATM"], ["Ethernet"], or even a SerialLine). If the underlying hardware is not able to transfer the maximum length required (especially on SerialLine's or ["ATM"]), IP will split the data into several smaller IP fragments and reassemble it into a complete one at the receiving host.

When IP wants to send a packet on a LAN, it must first translate the ["IP-address"] given into the underlying hardware address (e.g. an ["Ethernet"] address). IP uses ["ARP"] for this translation, which is done dynamically. On a point-to-point line, this is obviously not necessary, as there's only one host to which a given machine can send a packet.

IP doesn't provide any mechanism to detect PacketLoss, DuplicatePackets and alike.

IP uses ["ICMP"] to transfer control messages to a remote host such as "Please don't send me more IP packets, I'm full". The famous ping tool also use ["ICMP"].

The typical protocols on top of IP are ["TCP"] and ["UDP"].

Version 4 of the IP protocol is widely used all over the world. As the available ["IP-address"] range is becoming short, version 6 with a much wider address range is becoming more and more popular these days.
Line 8: Line 24:
XXX - add a brief description of IP history The [http://www.ietf.org/rfc/rfc791.txt RFC791] "INTERNET PROTOCOL" was released in September 1981.
Line 12: Line 28:
 * ["Ethernet"]: IP can use ["Ethernet"] and many other protocols. The well known Ethernet type for IP is 0x800.  * ["Ethernet"]: IP can use ["Ethernet"] and many other protocols. The assigned Ethernet type for IP is 0x800.
Line 17: Line 33:
XXX - Add example traffic here (as plain text or Ethereal screenshot). XXX - Add example traffic here (as plain text or Wireshark screenshot).
Line 19: Line 35:
== Ethereal == == Wireshark ==
Line 21: Line 37:
IP dissector is fully functional. Also add info of additional Ethereal features where appropriate, like special statistics of this protocol. IP dissector is fully functional. Wireshark provides some advanced features such as IP defragmentation.
Line 29: Line 45:
XXX - Add a simple example capture file. Keep it short, it's also a good idea to gzip it to make it even smaller, as Ethereal can open gzipped files automatically. XXX - Add a simple example capture file. Keep it short, it's also a good idea to gzip it to make it even smaller, as Wireshark can open gzipped files automatically.
Line 32: Line 48:
A complete list of IP display filter fields can be found in the [http://www.ethereal.com/docs/dfref/i/ip.html display filter reference] A complete list of IP display filter fields can be found in the [http://www.wireshark.org/docs/dfref/i/ip.html display filter reference]
Line 34: Line 50:
 Show only the IP based traffic (beware: you won't see any ARP packets, if you use this filter!): {{{  Show only IP-based traffic (beware: you won't see any ARP packets if you use this filter!): {{{
Line 37: Line 53:
 Show only the IP based traffic to or from host 192.168.0.10: {{{  Show only the IP-based traffic to or from host 192.168.0.10: {{{
Line 40: Line 56:
 Show only the IP based traffic '''not''' to or from host 192.168.0.10 (beware: this is not identical to ip.addr!=192.168.0.10): {{{  Show only the IP-based traffic to or from the subnet 192.168.43.0/24 (The /24 is CIDR notation for a network address with a mask of 24 one bits, that is, a subnet mask of 255.255.255.0): {{{
 ip.addr==192.168.43.0/24 }}}

 Show only the IP-based traffic '''not''' to or from host 192.168.0.10 (beware: this is not identical to ip.addr!=192.168.0.10): {{{
Line 45: Line 64:
 Show only the IP based traffic to or from host 192.168.0.10: {{{  Capture IP-based traffic only: {{{
 ip }}}

 Capture
only the IP-based traffic to or from host 192.168.0.10: {{{
Line 47: Line 69:

 Capture only the IP-based traffic to or from the subnet 192.168.43.0/24 (The /24 is CIDR notation for a network address with a mask of 24 one bits, that is, a subnet mask of 255.255.255.0): {{{
 ip net 192.168.43.0/24 }}}

 Capture only the IP-based traffic '''not''' to or from host 192.168.0.10: {{{
 not host 192.168.0.10 }}}
Line 50: Line 78:
 * add link to IP specification and where to find additional info on the web about IP  * [http://www.ietf.org/rfc/rfc791.txt RFC791] ''INTERNET PROTOCOL''
 * [http://www.ietf.org/rfc/rfc894.txt RFC894] ''Transmission of IP Datagrams over Ethernet Networks''
 * [http://www.ietf.org/rfc/rfc950.txt RFC950] ''Internet Standard Subnetting Procedure''
 * [http://www.ietf.org/rfc/rfc1112.txt RFC1112] ''Host Extensions for IP Multicasting''
 * [http://www.ietf.org/rfc/rfc1812.txt RFC1812] ''Requirements for IP Version 4 Routers''

 === Differentiated Services (replaces Type of Service) ===
 * [http://www.ietf.org/rfc/rfc2474.txt RFC2474] ''Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers''
 * [http://www.ietf.org/rfc/rfc2475.txt RFC2475] ''An Architecture for Differentiated Services''

Internet Protocol version 4 (IP)

The Internet Protocol provides the network layer (layer 3) transport functionality in the InternetProtocolFamily.

This page describes IP version 4, which is widely used. There's also an ["IPv6"] protocol page available.

The IP protocol is used to transfer packets from one ["IP-address"] to another. The user of this layer will give a packet and a remote IP address, and IP is responsible to transfer the packet to that host.

IP will (hopefully) guide the packet the right way to the remote host. The data transfer is independant of the underlying network hardware (e.g. ["ATM"], ["Ethernet"], or even a SerialLine). If the underlying hardware is not able to transfer the maximum length required (especially on SerialLine's or ["ATM"]), IP will split the data into several smaller IP fragments and reassemble it into a complete one at the receiving host.

When IP wants to send a packet on a LAN, it must first translate the ["IP-address"] given into the underlying hardware address (e.g. an ["Ethernet"] address). IP uses ["ARP"] for this translation, which is done dynamically. On a point-to-point line, this is obviously not necessary, as there's only one host to which a given machine can send a packet.

IP doesn't provide any mechanism to detect PacketLoss, DuplicatePackets and alike.

IP uses ["ICMP"] to transfer control messages to a remote host such as "Please don't send me more IP packets, I'm full". The famous ping tool also use ["ICMP"].

The typical protocols on top of IP are ["TCP"] and ["UDP"].

Version 4 of the IP protocol is widely used all over the world. As the available ["IP-address"] range is becoming short, version 6 with a much wider address range is becoming more and more popular these days.

History

The [http://www.ietf.org/rfc/rfc791.txt RFC791] "INTERNET PROTOCOL" was released in September 1981.

Protocol dependencies

  • ["Ethernet"]: IP can use ["Ethernet"] and many other protocols. The assigned Ethernet type for IP is 0x800.
  • ["ICMP"]: IP uses ["ICMP"] for control messages between hosts.

Example traffic

XXX - Add example traffic here (as plain text or Wireshark screenshot).

Wireshark

IP dissector is fully functional. Wireshark provides some advanced features such as IP defragmentation.

Preference Settings

(XXX add links to preference settings affecting how IP is dissected).

Example capture file

XXX - Add a simple example capture file. Keep it short, it's also a good idea to gzip it to make it even smaller, as Wireshark can open gzipped files automatically.

Display Filter

A complete list of IP display filter fields can be found in the [http://www.wireshark.org/docs/dfref/i/ip.html display filter reference]

  • Show only IP-based traffic (beware: you won't see any ARP packets if you use this filter!):

     ip 

    Show only the IP-based traffic to or from host 192.168.0.10:

     ip.addr==192.168.0.10 

    Show only the IP-based traffic to or from the subnet 192.168.43.0/24 (The /24 is CIDR notation for a network address with a mask of 24 one bits, that is, a subnet mask of 255.255.255.0):

     ip.addr==192.168.43.0/24 

    Show only the IP-based traffic not to or from host 192.168.0.10 (beware: this is not identical to ip.addr!=192.168.0.10):

     !(ip.addr==192.168.0.10) 

Capture Filter

  • Capture IP-based traffic only:

     ip 

    Capture only the IP-based traffic to or from host 192.168.0.10:

     host 192.168.0.10 

    Capture only the IP-based traffic to or from the subnet 192.168.43.0/24 (The /24 is CIDR notation for a network address with a mask of 24 one bits, that is, a subnet mask of 255.255.255.0):

     ip net 192.168.43.0/24 

    Capture only the IP-based traffic not to or from host 192.168.0.10:

     not host 192.168.0.10 

Discussion

Internet_Protocol (last edited 2018-10-09 12:21:34 by AlexHammer)