Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Internet protocol suite
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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}}</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}}</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}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Internet protocol suite
(section)
Add topic