Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Internet protocol suite
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Key architectural principles== {{see also|Communication protocol#Software layering}} [[File:IP stack connections.drawio.png|thumb|414x414px|Conceptual data flow in a simple network topology of two hosts (A and B) connected by a link between their respective routers. The application on each host executes read and write operations as if the processes were directly connected to each other by some kind of data pipe. After establishment of this pipe, most details of the communication are hidden from each process, as the underlying principles of communication are implemented in the lower protocol layers. In a common application analogy, Host A's web browser appears directly connected to Host B's web server via an [[HTTP#HTTP application session|Application Layer HTTP session]] identified by an address like a cookie. At the transport layer the communication appears as process-to-process communication,<ref name=":0" /> each process addressed by a port number, without knowledge of the application data structures and the connecting routers. Finally, at the internetworking layer using the Internet Protocol (IP), packets of bytes traverse individual network boundaries as each router forwards a packet towards its destination IP address.]] [[Image:UDP encapsulation.svg|thumb|350px|Encapsulation of application data descending through the layers described in RFC 1122]] The [[end-to-end principle]] has evolved over time. Its original expression put the maintenance of state and overall intelligence at the edges, and assumed the Internet that connected the edges retained no state and concentrated on speed and simplicity. Real-world needs for firewalls, network address translators, web content caches and the like have forced changes in this principle.<ref name="pTfJe">{{cite web|url=https://www.csd.uoc.gr/~hy558/papers/Rethinking_2001.pdf|title=Rethinking the design of the Internet: The end-to-end arguments vs. the brave new world|first1=Marjory S.|last1=Blumenthal|first2=David D.|last2=Clark|author-link2=David D. Clark|date=August 2001|access-date=October 8, 2022|archive-date=October 8, 2022|archive-url=https://web.archive.org/web/20221008213500/https://www.csd.uoc.gr/~hy558/papers/Rethinking_2001.pdf|url-status=live}}</ref> The [[robustness principle]] states: "In general, an implementation must be conservative in its sending behavior, and liberal in its receiving behavior. That is, it must be careful to send well-formed datagrams, but must accept any datagram that it can interpret (e.g., not object to technical errors where the meaning is still clear)."{{Ref RFC|791|rp=23}} "The second part of the principle is almost as important: software on other hosts may contain deficiencies that make it unwise to exploit legal but obscure protocol features."{{Ref RFC|1122|rp=13}} [[Encapsulation (networking)|Encapsulation]] is used to provide abstraction of protocols and services. Encapsulation is usually aligned with the division of the protocol suite into layers of general functionality. In general, an application (the highest level of the model) uses a set of protocols to send its data down the layers. The data is further encapsulated at each level. An early pair of architectural documents, {{IETF RFC|1122}} and {{IETF RFC|1123|plainlink=yes}}, titled ''Requirements for Internet Hosts'', emphasizes architectural principles over layering.{{Ref RFC|1958}} RFC 1122/23 are structured in sections referring to layers, but the documents refer to many other architectural principles, and do not emphasize layering. They loosely defines a four-layer model, with the layers having names, not numbers, as follows:{{ref RFC|1122}}{{ref RFC|1123}} * The [[application layer]] is the scope within which applications, or [[Process (computing)|processes]], create user data and communicate this data to other applications on another or the same host. The applications make use of the services provided by the underlying lower layers, especially the transport layer which provides [[Reliability (computer networking)|reliable or unreliable]] ''pipes'' to other processes. The communications partners are characterized by the application architecture, such as the [[client–server model]] and [[peer-to-peer]] networking. This is the layer in which all application protocols, such as SMTP, FTP, SSH, HTTP, operate. Processes are addressed via ports which essentially represent [[Service (systems architecture)|services]]. * The [[transport layer]] performs host-to-host communications on either the local network or remote networks separated by routers.<ref name="AoJD3">{{cite book |last=Hunt |first=Craig |date=2002 |title=TCP/IP Network Administration |edition=3rd |publisher=O'Reilly |pages=9–10 |isbn=9781449390785}}</ref> It provides a channel for the communication needs of applications. UDP is the basic transport layer protocol, providing an unreliable [[connectionless]] datagram service. The Transmission Control Protocol provides flow-control, connection establishment, and reliable transmission of data. * The [[internet layer]] exchanges datagrams across network boundaries. It provides a uniform networking interface that hides the actual topology (layout) of the underlying network connections. It is therefore also the layer that establishes internetworking. Indeed, it defines and establishes the Internet. This layer defines the addressing and routing structures used for the TCP/IP protocol suite. The primary protocol in this scope is the Internet Protocol, which defines [[IP address]]es.<ref>{{Cite journal |last=Guttman |first=E. |date=1999 |title=Service location protocol: automatic discovery of IP network services |url=http://dx.doi.org/10.1109/4236.780963 |journal=IEEE Internet Computing |volume=3 |issue=4 |pages=71–80 |doi=10.1109/4236.780963 |issn=1089-7801|url-access=subscription }}</ref>{{failed verification|date=April 2024}}<ref name=kz>{{Cite journal |last=Zheng |first=Kai |date=July 2017 |title=Enabling "Protocol Routing": Revisiting Transport Layer Protocol Design in Internet Communications |url=http://dx.doi.org/10.1109/mic.2017.4180845 |journal=IEEE Internet Computing |volume=21 |issue=6 |pages=52–57 |doi=10.1109/mic.2017.4180845 |issn=1089-7801|url-access=subscription }}</ref> Its function in routing is to transport datagrams to the next host, functioning as an IP router, that has the connectivity to a network closer to the final data destination.<ref name=kz/>{{failed verification|date=April 2024}} * The [[link layer]] defines the networking methods within the scope of the local network link on which hosts communicate without intervening routers. This layer includes the protocols used to describe the local network topology and the interfaces needed to effect the transmission of internet layer datagrams to next-neighbor hosts.<ref>{{Cite journal |last=Huang |first=Jing-lian |date=2009-04-07 |title=Cross layer link adaptation scheme in wireless local area network |url=http://dx.doi.org/10.3724/sp.j.1087.2009.00518 |journal=Journal of Computer Applications |volume=29 |issue=2 |pages=518–520 |doi=10.3724/sp.j.1087.2009.00518 |doi-broken-date=November 1, 2024 |issn=1001-9081|url-access=subscription }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)