Chapter 2: Application Layer Our goals 学习网络应用的原理几个流行的应用层协 及实现方面的知识 议 几个重要的概念: 今HTTP 客户-服务器模式 FTP SMTP/POP3/IMAP 对等模式 . DNS 传输层服务 口开发网络应用程序 进程与传输层接口 ☆ socket apt Application Lo
2: Application Layer 2 Chapter 2: Application Layer Our goals: 学习网络应用的原理 及实现方面的知识 几个重要的概念: ❖ 客户-服务器模式 ❖ 对等模式 ❖ 传输层服务 ❖ 进程与传输层接口 几个流行的应用层协 议: ❖ HTTP ❖ FTP ❖ SMTP / POP3 / IMAP ❖ DNS 开发网络应用程序: ❖ socket API
Chapter 2: outline 2. I principles of network 2.6 P2P applications applications 2.7 socket programming 2.2 weB and Http with UDP and TCP 2.3 File Transfer and FTP 2.4 electronic mail ☆SMTP,POP3,|MAP 2.5 DNS Application Layer 2-3
Application Layer 2-3 Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 File Transfer and FTP 2.4 electronic mail ❖ SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP
创建一个网络应用 口创建一个网络应用的核心, 是编写一个分布式程序,使 其可以: 运行在不同的端系统上,并 能通过网络相互通信 例如,web服务器软件与浏览 器软件 应用程序只运行在终端上: 应用程序员不需要为网络核 network 心设备编写程序 dato SICa 口只在端系统上开发应用,有 利于应用的快速研发和部署 2: Application Lo
2: Application Layer 4 创建一个网络应用 创建一个网络应用的核心, 是编写一个分布式程序,使 其可以: ❖ 运行在不同的端系统上,并 能通过网络相互通信 ❖ 例如,web服务器软件与浏览 器软件 应用程序只运行在终端上: ❖ 应用程序员不需要为网络核 心设备编写程序 只在端系统上开发应用,有 利于应用的快速研发和部署 application transport network data link physical application transport network data link physical application transport network data link physical
211网络应用架构 口网络应用架构规定了在各个端系统上组织应用 程序的方法: 客户-服务器架构( Client- server) 冷对等架构(Peer-to-peer,P2P) Application Lo
2: Application Layer 5 2.1.1 网络应用架构 网络应用架构规定了在各个端系统上组织应用 程序的方法: ❖ 客户-服务器架构(Client-server) ❖ 对等架构(Peer-to-peer ,P2P)
客户-服务器架构 服务器( server): 有一台总是在线的主机,上面 运行着服务器程序( server) 冷服务器主机( server machine) 具有永久的、众所周知的地址 ☆使用主机集群或数据中心提高 处理能力 client/server 客户( client): 运行在用户终端(客户机)上 的程序( client),需要时与服 务器程序通信,请求服务 令客户机使用动态地址,通常不 会总是在线 客户只与服务器通信,客户之间不通信 2: Application Lo 6
2: Application Layer 6 客户-服务器架构 服务器(server): ❖ 有一台总是在线的主机,上面 运行着服务器程序(server) ❖ 服务器主机(server machine) 具有永久的、众所周知的地址 ❖ 使用主机集群或数据中心提高 处理能力 客户(client): ❖ 运行在用户终端(客户机)上 的程序(client),需要时与服 务器程序通信,请求服务 ❖ 客户机使用动态地址,通常不 会总是在线 client/server 客户只与服务器通信,客户之间不通信
P2P架构 口没有总是运行的服务器 口任意一对端系统(称对 等方)可以直接通信peer-peer 口每个对等方可以请求服 务,也可以提供服务 口典型的P2P应用: BT文件传输 冷 Skype(混合架构) ☆ PPLive 2: Application Lo
2: Application Layer 7 P2P架构 没有总是运行的服务器 任意一对端系统(称对 等方)可以直接通信 每个对等方可以请求服 务,也可以提供服务 典型的P2P应用: ❖ BT文件传输 ❖ Skype(混合架构) ❖ PPLive peer-peer
两种架构的比较 客户-服务器架构: P2P架构: 口资源集中: 口资源分散: 令资源(服务)只在某些固 令任何终端都可以提供资源 定的终端上提供 (服务) 优点 口优点 冷资源发现简单 令易于扩容、均衡网络流量 缺点 缺点: 令集中式计算带来的问题, 资源发现困难,ISP压力 如服务端扩容压力、网络 大、社会问题(版权、安 流量不均衡、响应延迟长 全性等) 2: Application Lo
两种架构的比较 资源集中: ❖ 资源(服务)只在某些固 定的终端上提供 优点: ❖ 资源发现简单 缺点: ❖ 集中式计算带来的问题, 如服务端扩容压力、网络 流量不均衡、响应延迟长 资源分散: ❖ 任何终端都可以提供资源 (服务) 优点: ❖ 易于扩容、均衡网络流量 缺点: ❖ 资源发现困难,ISP压力 大、社会问题(版权、安 全性等) 2: Application Layer 8 客户-服务器架构: P2P架构:
21.2进程通信 进程:主机上运行的程序 口在分布式应用中,不同终端上的进程需要通信 口在给定的一次通信过程中 客户:发起通信的进程 服务器:等待联系的进程 口进程通信的方法: 同一个主机内:进程间通信机制(OS提供) 在不同主机上:通过交换报文进行通信 Application Lo
2.1.2 进程通信 进程: 主机上运行的程序 在分布式应用中,不同终端上的进程需要通信 在给定的一次通信过程中: ❖ 客户:发起通信的进程 ❖ 服务器:等待联系的进程 进程通信的方法: ❖同一个主机内:进程间通信机制(OS提供) ❖在不同主机上:通过交换报文进行通信 2: Application Layer 9
进程与网络的接口-套接字 口进程通过套接字( socket)发送和接收报文 口套接字类似于应用程序和网络之间的一扇门: 发送进程将报文推到门外 令门外的运输设施(因特网)将报文送到接收进程的门口 冷接收进程打开门即可收到报文 口套接字是应用层和传输层的接口,也是应用程序和网络之 间的APT application socket application controlled by process pr rocess app developer t network network controlled Internet link by os physical Application Lay
Application Layer 2- 10 进程与网络的接口--套接字 进程通过套接字(socket)发送和接收报文 套接字类似于应用程序和网络之间的一扇门: ❖ 发送进程将报文推到门外 ❖ 门外的运输设施(因特网)将报文送到接收进程的门口 ❖ 接收进程打开门即可收到报文 套接字是应用层和传输层的接口,也是应用程序和网络之 间的API Internet controlled by OS controlled by app developer transport application physical link network process transport application physical link network process socket
进程编址 口为了接收报文,每个进程口进程标识包括: 必须有标识 主机地址 与该进程关联的端口号 TQ:可以用进程所在主机的 地址来标识进程吗? 口端口号的例子 口A:不能,因为同一个主机 令 Http server:80 上可能运行着许多进程 Mail server: 25 口端口号被用来区分同一个 主机上的不同进程。 2: Application Lo
2: Application Layer 11 进程编址 为了接收报文,每个进程 必须有标识 Q: 可以用进程所在主机的 地址来标识进程吗? A: 不能,因为同一个主机 上可能运行着许多进程。 端口号被用来区分同一个 主机上的不同进程。 进程标识包括: ❖ 主机地址 ❖ 与该进程关联的端口号 端口号的例子: ❖ HTTP server: 80 ❖ Mail server: 25