应用层协议原理

应用软件通常在网络边缘的端系统中运行,而不是在网络核心的交换机和路由器上运行,这种模式促进了大量应用的开发和部署。网络核心的交换机和路由器只专注于数据包(分组)的转发。

网络应用程序体系结构

网络应用程序所使用的两种体系结构包括:客户机/服务器(C/S)体系结构或对等(P2P)体系结构。

进程通信

运行在多个端系统上应用程序之间的互相通信,对于操作系统来说,实际上是进程之间的通信。进程可以被认为是程序的一次执行。同一台主机上的进程间通信的可以使用操作系统的进程间通信机制例如共享内存、信号量等。但运行在不同端系统(可能具有不同的操作系统)上的进程间的通信,需要交换消息(message )来实现相互通信。

进程在通信时,必须给接收方指定接收地址,这个地址包括两个部分:对方主机的IP地址和应用程序的标识—端口号。

可供应用程序使用的传输服务

当开发一个应用时,在选择可用的传输层协议时需要从四个方面对应用程序所需的传输服务进行考虑:是否要求可靠数据传输、吞吐量、时效性和安全性。

因特网提供的运输服务

因特网(更一般地说是TCP/IP网络)为应用提供了两个传输层协议:UDP和TCP(对应于
socket编程的SOCK_STREAM和SOCK_DGRAM)。
* TCP服务
-TCP服务模型是面向连接的可靠数据传输服务。
- 可靠数据传愉服务:进行通信的进程依靠TCP协议,无差错、按适当顺序交付发送的数据。其主要原理是报文段丢失了会进行重传。
- TCP协议还具有拥塞控制机制,这种服务能为因特网带来整体好处。

*UDP服务
UDP是一种不提供可靠传输服务的轻量级传输层协议。UDP是无连接的,因此在两个进程通信前没有握手过程。 UDP没有拥塞控制机制。

应用层协议

应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。特别是定义了:
交换的消息类型,如请求消息和响应消息。
各种消息类型的语法,如消息中的各个字段及其详细描述。
字段的语义,即包含在字段中的信息的含义。
进程何时、如何发送消息及对消息进行响应的规则。
有些应用层协议是由RFC文档定义的,因此它们位于公共领域,例如HTTP。
有些应用层协议是公司或者个人私有的,位于私人领域,例如QQ。

注意:Web、文件传输、电子邮件、DNS目录服务和P2P。重点需要了解Web和DNS。

猜你喜欢

转载自blog.csdn.net/qq3399013670/article/details/81478235