TCP/IP model: Difference between revisions

Content deleted Content added
m Transport layer: redlinks and caps
m Application layer: already linked and/or expanded
Line 92:
 
===Application layer===
The [[application layer]] contains the higher-level protocols used by most applications for network communication. Examples of application layer protocols include the [[File Transfer Protocol]] (FTP) and the [[Simple Mail Transfer Protocol]] (SMTP).<ref>[http://www.kohala.com/start/tcpipiv1.html ''TCP/IP Illustrated: the protocols''], ISBN 0-201-63346-9, W. Richard Stevens, February 1994</ref> Data coded according to application layer protocols are then [[encapsulation (networking)|encapsulated]] into one or (occasionally) more transport layer protocols (such as the [[Transmission Control Protocol]] (TCP) or [[User Datagram Protocol]] (UDP)), which in turn use [[lower layer protocol]]s to effect actual data transfer.
 
Since the IP stack defines no layers between the application and transport layers, the application layer must include any protocols that act like the OSI's presentation and session layer protocols. This is usually done through [[Library (computer science)|libraries]].
 
Application layer protocols generally treat the transport layer (and lower) protocols as [[black box]]es which provide a stable network connection across which to communicate, although the applications are usually aware of key qualities of the transport layer connection such as the [[Transport layer|end point]] [[IP Address|IP addresses]] and [[port number]]snumbers. As noted above, layers are not necessarily clearly defined in the Internet protocol suite. Application layer protocols are most often associated with [[client–server]] applications, and the commoner [[server (computing)|servers]] have specific [[TCP and UDP port|ports]] assigned to them by the [[Internet Assigned Numbers Authority|IANA]]: [[HyperText Transfer Protocol|HTTP]] has port 80; [[Telnet]] has port 23; etc. [[client (computing)|Clients]], on the other hand, tend to use [[ephemeral port]]s, i.e. port numbers assigned at random from a range set aside for the purpose.
 
Transport and lower level layers are largely unconcerned with the specifics of application layer protocols. [[Router (computing)|Router]]sRouters and [[network switch|switches]] do not typically "look inside" the encapsulated traffic to see what kind of application protocol it represents, rather they just provide a conduit for it. However, some [[Firewall (computing)|firewall]] and [[bandwidth throttling]] applications do try to determine what's inside, as with the [[Resource Reservation Protocol]] (RSVP). It's also sometimes necessary for [[Network Address Translation]] (NAT) facilities to take account of the needs of particular application layer protocols. (NAT allows hosts on private networks to communicate with the outside world via a single visible IP address using [[port forwarding]], and is an almost ubiquitous feature of modern domestic [[broadband router]]s).
 
==Hardware and software implementation==