#readwise
# Internet Protocol - Wikipedia

## Metadata
- Author: [[wikipedia.org]]
- Full Title: Internet Protocol - Wikipedia
- URL: https://en.wikipedia.org/wiki/Internet_Protocol
## Summary
Internet Protocol (IP) is a key communication protocol that helps data travel across different networks. It defines how data is packaged and addressed for delivery. The most common version, IPv4, is widely used today, while its newer version, IPv6, is being adopted to improve the Internet. IP is part of the larger Internet protocol suite known as TCP/IP.
## Highlights
The Internet Protocol (IP) is the [network layer](https://en.wikipedia.org/wiki/Network_layer) [communications protocol](https://en.wikipedia.org/wiki/Communications_protocol) in the [[Internet Protocol Suite - Wikipedia|Internet protocol suite]] for relaying [datagrams](https://en.wikipedia.org/wiki/Datagram) across network boundaries. Its [routing](https://en.wikipedia.org/wiki/Routing) function enables [internetworking](https://en.wikipedia.org/wiki/Internetworking), and essentially establishes the [Internet](https://en.wikipedia.org/wiki/Internet). ([View Highlight](https://read.readwise.io/read/01jhpzkm7r0b99mvqdxba45j70)) ^ndme9u
---
IP has the task of delivering [packets](https://en.wikipedia.org/wiki/Packet_(information_technology)) from the source [host](https://en.wikipedia.org/wiki/Host_(network)) to the destination host solely based on the [IP addresses](https://en.wikipedia.org/wiki/IP_address) in the packet [headers](https://en.wikipedia.org/wiki/Header_(computing)). For this purpose, IP defines packet structures that [encapsulate](https://en.wikipedia.org/wiki/Encapsulation_(networking)) the data to be delivered. ([View Highlight](https://read.readwise.io/read/01jhpzmvq532q6xqkqza0cb648)) ^tir7z3
---
There are four principal addressing methods in the Internet Protocol: unicast, broadcast, multicast, and anycast. ^tu2aln
[Unicast](https://en.wikipedia.org/wiki/Unicast) delivers a message to a single specific node using a one-to-one association between a sender and destination: each destination address uniquely identifies a single receiver endpoint. ^ykk7ng
[Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) delivers a message to all nodes in the network using a one-to-all association; a single [datagram](https://en.wikipedia.org/wiki/Datagram) (or [packet](https://en.wikipedia.org/wiki/Packet_(information_technology))) from one sender is routed to all of the possibly multiple endpoints associated with the [broadcast address](https://en.wikipedia.org/wiki/Broadcast_address). The network automatically replicates datagrams as needed to reach all the recipients within the scope of the broadcast, which is generally an entire network [subnet](https://en.wikipedia.org/wiki/Subnetwork). ^ccpiv2
[Multicast](https://en.wikipedia.org/wiki/Multicast) delivers a message to a group of nodes that have expressed interest in receiving the message using a one-to-many-of-many or many-to-many-of-many association; datagrams are routed simultaneously in a single transmission to many recipients. Multicast differs from broadcast in that the destination address designates a subset, not necessarily all, of the accessible nodes. ^7vnt98
[Anycast](https://en.wikipedia.org/wiki/Anycast) delivers a message to any one out of a group of nodes, typically the one nearest to the source using a one-to-one-of-many association where datagrams are routed to any single member of a group of potential receivers that are all identified by the same destination address. The routing algorithm selects the single receiver from the group based on which is the nearest according to some distance or cost measure. ^x1lm6o
([View Highlight](https://read.readwise.io/read/01jhpzp1kp8nhbdxas30rxj3ym))
---
As a consequence of this design, the Internet Protocol only provides [best-effort delivery](https://en.wikipedia.org/wiki/Best-effort_delivery) and its service is characterized as [unreliable](https://en.wikipedia.org/wiki/Reliability_(computer_networking)). In network architectural parlance, it is a [connectionless protocol](https://en.wikipedia.org/wiki/Connectionless_protocol), in contrast to [connection-oriented communication](https://en.wikipedia.org/wiki/Connection-oriented_communication). Various fault conditions may occur, such as [data corruption](https://en.wikipedia.org/wiki/Data_corruption), [packet loss](https://en.wikipedia.org/wiki/Packet_loss) and duplication. Because routing is dynamic, meaning every packet is treated independently, and because the network maintains no state based on the path of prior packets, different packets may be routed to the same destination via different paths, resulting in [out-of-order delivery](https://en.wikipedia.org/wiki/Out-of-order_delivery) to the receiver.
All fault conditions in the network must be detected and compensated by the participating end nodes. The [upper layer protocols](https://en.wikipedia.org/wiki/Upper_layer_protocol) of the Internet protocol suite are responsible for resolving reliability issues. For example, a host may [buffer](https://en.wikipedia.org/wiki/Data_buffer) network data to ensure correct ordering before the data is delivered to an application. ([View Highlight](https://read.readwise.io/read/01jkje93v5jqdps1sqtwcj9cyb)) ^1danhv
---
The dynamic nature of the Internet and the diversity of its components provide no guarantee that any particular path is actually capable of, or suitable for, performing the data transmission requested. One of the technical constraints is the size of data packets possible on a given link. Facilities exist to examine the [[Maximum Transmission Unit - Wikipedia|maximum transmission unit]] (MTU) size of the local link and [Path MTU Discovery](https://en.wikipedia.org/wiki/Path_MTU_Discovery) can be used for the entire intended path to the destination. ^lp40qt
The IPv4 internetworking layer automatically [fragments](https://en.wikipedia.org/wiki/IP_fragmentation) a datagram into smaller units for transmission when the link MTU is exceeded. IP provides re-ordering of fragments received out of order. An IPv6 network does not perform fragmentation in network elements, but requires end hosts and higher-layer protocols to avoid exceeding the path MTU. ^ewdazi
The [Transmission Control Protocol](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) (TCP) is an example of a protocol that adjusts its segment size to be smaller than the MTU. The [User Datagram Protocol](https://en.wikipedia.org/wiki/User_Datagram_Protocol) (UDP) and ICMP disregard MTU size, thereby forcing IP to fragment oversized datagrams. ([View Highlight](https://read.readwise.io/read/01jhpzspea1fw3htatt8fjctnc)) ^9p1ooi
---