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

目录

    • 应用层协议原理
        • 1. 网络应用程序体系架构(Network Application Architectures)
        • 2. 进程通信(Processes Communicating)
        • 3. 应用层协议(Application-Layer Protocols)
    • WEB和HTTP
        • 1. HTTP概述(Overview of HTTP)
        • 2. HTTP报文格式(HTTP Message Format)
        • 3. HTTP报文交换(HTTP Exchange Messages)

应用层协议原理

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

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

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

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和电子邮件。
    《计算机网络:自顶向下方法》学习笔记(二):应用层_第2张图片
  • 对等体系结构(P2P)
    在P2P架构中,主机之间可以直接通信,很少或不依赖于服务器,这些主机被称为对等方(peer)。P2P架构中的服务器和客户的关系是动态变化的,发起服务请求的对等方被称为客户,而其他提供服务的对等方被称为服务器。在P2P应用层网络中,每个对等方都对网络产生工作负载,但同时增加服务容量。常见使用P2P架构的应用有文件共享(例如BitTorrent)、协助下载(例如迅雷)、因特网电话(例如Skype)。

2. 进程通信(Processes Communicating)

主机间进行通信的主体是进程(process) 而非应用程序。在主机内部,进程有管道、消息队列及信号量等通信方式,而主机之间的进程采用跨越计算机网络的 报文(message) 相互通信。相应,发起通信的进程被标记为客户进程,在会话开始时等待联系的进程被称为服务器进程。类似于主机的IP地址,每个进程持有一个端口号(port number) 以相互区分。
《计算机网络:自顶向下方法》学习笔记(二):应用层_第3张图片
套接字(socket): socket在计算机网络中主要包括两个概念,一个是端的概念,即套接字socket=(IP地址:端口号),数据在传输过程中不仅需要IP地址找到目的主机,而且需要端口号找到目的进程,因为真正使用数据的是进程;一个是层的概念,即应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的API接口函数供应用层调用以实现进程在网络中通信。

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


3. 应用层协议(Application-Layer Protocols)

An application-layer protocol defines how an application’s processes, running on different end systems, pass messages to each other. In particular, an application-layer protocol defines:

  • The types of messages exchanged, for example, request messages and response messages
  • The syntax of the various message types, such as the fields in the
    message and how the fields are delineated
  • The semantics of the fields, that is, the meaning of the information
    in the fields
  • Rules for determining when and how a process sends messages and
    responds to messages

WEB和HTTP

1. HTTP概述(Overview of HTTP)

万维网(World Wide Web, WWW)简称Web是存储在Internet计算机中、数量巨大的文档的集合。每个文档都是客户机需求的“资源”,并且由一个全域“统一资源定位符”(Uniform Resource Locator,URL)标识。Web使用了客户-服务器(C/S)应用体系架构,客户通过点击URL发出HTTP请求报文获取资源,服务器返回HTTP响应报文将资源传送给客户机。
《计算机网络:自顶向下方法》学习笔记(二):应用层_第4张图片
超文本传输协议(Hyper Text Transfer Protocol, HTTP)是Web的应用层协议,它在客户端程序和服务器程序上得到实现。HTTP是Web网络的核心,因为它定义报文结构以及报文交换的方法。

2. HTTP报文格式(HTTP Message Format)

3. HTTP报文交换(HTTP Exchange Messages)

你可能感兴趣的:(计算机网络(理论))