《计算机网络:自顶向下方法》学习笔记(二):应用层

应用层协议原理

开发网络应用的关键是写出能够 运作在不同端系统 和通过网络 彼此通信 的程序。

为什么只在端系统开发程序呢?因为路由器及交换机等网络核心设备并没有应用层,只负责传输数据,我们没必要也不能基于它们开发程序。

在这里插入图片描述

1 网络应用程序体系架构(Network Application Architectures)

应用程序体系架构(application architectures)不同于网络体系结构(network architecture)。网络体系结构是固定的5层或7层,并为应用程序提供特定的服务集合,比如物理层仅负责传输数据比特流;而应用程序体系结构则规定了在端系统应用层上如何组织应用程序,当前主流的应用程序体系结构为:客户-服务器体系结构(client-server architecture)对等体系结构(peer-to-peer architecture)

  • 客户-服务器体系架构(C/S)
    在C/S架构中,有一个总是打开的主机,即服务器(server),它接受来自其他主机的服务请求,相应的发起服务请求的主机被称为客户(clients)。客户需要服务时总是需要访问服务器,意味着客户互相不直接通信,而且服务器拥有一个固定而周知的IP地址以供访问。常见使用C/S架构的应用有Web、FTP、Telnet和电子邮件。
    在这里插入图片描述
  • 对等体系结构(P2P)
    在P2P架构中,主机之间可以直接通信,很少或不依赖于服务器,这些主机被称为对等方(peer)。P2P架构中的服务器和客户的关系是动态变化的,发起服务请求的对等方被称为客户,而其他提供服务的对等方被称为服务器。在P2P应用层网络中,每个对等方都对网络产生工作负载,但同时增加服务容量。常见使用P2P架构的应用有文件共享(例如BitTorrent)、协助下载(例如迅雷)、因特网电话(例如Skype)。

2 进程通信(Processes Communicating)

主机间进行通信的主体是进程(process) 而非应用程序。在主机内部,进程有管道、消息队列及信号量等通信方式,而主机之间的进程采用跨越计算机网络的 报文(message) 相互通信。相应,发起通信的进程被标记为客户进程,在会话开始时等待联系的进程被称为服务器进程。类似于主机的IP地址,每个进程持有一个端口号(port number) 以相互区分。

In the context of a communication session between a pair of processes, the process that initiates the communication (that is, initially contacts the other process at the beginning of the session) is labeled as the client. The process that waits to be contacted to begin the session is the server.


在这里插入图片描述
套接字(socket): socket在计算机网络中主要包括两个概念,一个是端的概念,即套接字socket=(IP地址:端口号),数据在传输过程中不仅需要IP地址找到目的主机,而且需要端口号找到目的进程,因为真正使用数据的是进程;一个是层的概念,即应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的API接口函数供应用层调用以实现进程在网络中通信。

为什么应用层和传输层之间不直接传输数据,而要单独设置套接字(socket)层作为媒介?
套接字(socket)主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。应用层通过传输层进行数据通信时,多个应用程序进程可能需要通过同一个TCP/IP协议端口传输数据,使用套接字就可以根据参数找到目的主机和进程及使用的协议,并数据传输的并发控制交给套接字函数实现。


发布了21 篇原创文章 · 获赞 8 · 访问量 1495

猜你喜欢

转载自blog.csdn.net/K_Xin/article/details/105362266
今日推荐