1. 网络应用的体系结构
- 包括三种:客户机/服务器结构(CS)、点对点结构(P2P)、混合结构。
- CS结构:
服务器:7*24小时服务、永久访问的地址/域名、大量服务器可扩展。
客户机:与服务器进行通信、使用服务器提供的服务;间歇性接入网络;可以使用动态IP;不与其他客户机直接通信。 - P2P结构:
任意节点之间可以直接通信、没有永远在线的服务器、节点间歇接入网络、节点IP可变。
优点:高度可伸缩可扩展。缺点:难于管理。 - 混合结构:
传输文件使用p2p,文件搜索采用CS结构。
2. 网络应用的进程通信
- 进程:主机上运行的程序。
- 同一主机进程通信:操作系统提供不同进程之间的通信机制。
- 不同主机进程通信:消息交换/报文交换
客户机进程:发起通信的进程。
服务器继承:等待通信请求的进程。 - 进程之间通信利用Socket发送消息与接收消息。—协议选择,参数设置。
- 进程寻址:IP地址+端口号–host+port
1.不同主机上的进程间进行通信,每个进程必须拥有标识符。
2.不同主机---->如何寻址主机?IP地址。但是仅有IP并不足以定位进程,因为同一主机上可能存在多个进程同时通信。
3.主机上为每一个需要通信的进程分配不同的标识符:端口号。 - 应用层协议:
1.网络应用需要遵循应用层协议。(不止要遵循应用层协议。)
2.公开协议(RFC、允许互操作。----HTTP,SMTP)
3.私有协议(P2P文件共享)
4.应用层协议规定的内容:消息的类型(请求/响应);消息的语法格式(字段);字段的语义;规则(何时收发,如何收发)。
3. 网络应用的服务需求
- 网络应用的要求:数据丢失/可靠性;时间/延迟;带宽。
- Internet提供的传输服务TCP与UDP区别(重点,面试常考)
TCP:全双工的;面向连接,在传输之前客服端与服务器之间需要建立连接;可靠传输(不可靠的可以转为可靠的);流量控制;拥塞控制;不提供时延保证;不提供最小带宽保证。
UDP:无连接;不可靠;不提供。(提供传输层基本的服务,给应用层更大的发挥空间。eg网络电话)
4. 特定网络应用及协议:
- 4.1Web+HTTP协议
- Web应用:网页、网页与网页间互相连接。网页包含多个对象(HTML、图片,视频)。
对象寻址:URL:统一资源定位器。------Scheme://host:port/path主机+地址 - HTTP协议:HyperText Transfer Protocol(超文本传输协议);CS结构;使用TCP传输层协议;无状态(不维护过去请求的信息。)
- HTTP协议的两种类型:非持久性(单个TCP连接只传输一个对象,在1个URL响应TCP连接后关闭)、持久性连接(发送响应后,服务器保持TCP连接的打开,单个TCP连接传输多个对象)。
- HTTP协议的连接非持久性连接:响应时间=2*RTT+文件发送时间 发起、建立TCP连接+发送HTTP请求、响应+发送文件
持久性连接:无流水–有流水机制:2RTT+1RTT- HTTP消息格式
请求消息:request line(GET/POST/HEAD commands)+header lines。
请求上传输入的方法:POST(最后的entity body消息体输入如填写的表格)、URL中的GET方法(request的URL字段).
响应消息:status line+header lines+data - Cookie技术
为什么需要cookie:http无状态服务器不记录过去客户端的状态。
Cookie:为了辨别用户身份,进行session跟踪而存储在用户本地终端上的加密数据。
Cookie组件:HTTP响应消息的cookie headlines、HTTP请求消息的cookie headlines、保存在客户端的cookie文件,由浏览器管理、web服务器的后台数据库。 - Web缓存/代理服务器技术
条件性GET方法 - 4.2Email+HTTP协议
SMTP协议:TCP–可靠传输–异步应用
消息格式:RFC 82
邮件访问协议:从服务器获取邮件。POP、IMAP、HTTP - 4.3DNS应用:Internet主机/路由器识别问题。–域名与IP的解析系统
(1)分布式层次数据库
(2)迭代查询/递归查询
(3)缓存IP映射
(4)DNS记录:RR
(5)协议:查询回复 - 4.4P2P:文件分发
检索:层次式覆盖网络
5. Socket网络编程(传输层)
(1)socket API
标识通信端点(对外):IP+端口号
操作系统管理套接字(对内):Socket Descriptor
(2)socket API 函数