目录
1 计算机网络体系结构概述---分层结构
2 OSI参考模型---开放系统互连
3 应用层
4 Web和HTTP
计算机网络是一个非常复杂的系统,涉及许多组成部分;
主机(hosts);路由器(routers);各种链路(links);应用(applications);协议(protocols);硬件、软件……
分层结构:每层完成一种(类)特定服务/功能;
每层依赖底层提供的服务,通过层内动作完成相应功能;
1.1 计算机网络的体系结构---抽象的
(1)网络体系结构是从功能上描述计算机网络结构;
(2)计算机网络体系结构简称网络体系结构(network architecture)是分层结构;
(3)每层遵循某个/些网络协议完成本层功能;
(4)计算机网络体系结构是计算机网络的各层及其协议的集合;
1.2 分层结构的优点
1、结构清晰,有利于识别复杂系统的部件及其关系;---分层的参考模型(reference model)
2、模块化的分层易于系统的更新、维护---任何一层服务实现的改变对于系统其它层都是透明的;
3、有利于标准化;
1.3 分层网络体系结构基本概念
开放系统互连(OSI)参考模型是由国际标准化组织(ISO)于1984年提出的分层网络体系结构模型;
目的是支持异构网络系统的互联互通;异构网络系统互连的国际标准;
2.1 OSI参考模型解释的通信过程
2.2 OSI参考模型数据封装与通信过程
数据封装的原因---增加控制信息,构造协议数据单元(PDU);
控制信息包括:地址(Address)---标识发送端/接收端;差错检测编码(Error-detecting code)---用于差错检测或纠正;协议控制(Protocal control)---实现协议的附加信息,如:优先级(priority)、服务质量(QoS)和安全控制等
2.3 物理层功能---实现每一个比特的传输在具体的物理介质上
1、接口特性:
机械特性(接口的几何形状);电气特性(多大电平,多高电压);功能特性(引脚数量/功能)、规程特性(过程顺序);
2、比特编码;3、数据率;4、比特同步--时间同步
5、传输模式:单工(Simplex);半双工(half-duplex);全双工(full-duplex)
2.4 数据链路层功能
1、负责结点-结点(node-to-node)数据传输;
2、组帧(Framing);
3、物理寻址(Phsical addressing)
在帧头中增加发送端和/或接收端的物理地址标识数据帧的发送端和/或接收端
4、流量控制(Flow control)---避免淹没接收端
5、差错控制(Error control)---检测并重传损坏或丢失帧,并避免重复帧
6、访问(接入控制)(Access control)---在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权
2.5 网络层功能---源主机到目的主机跨越多个网络,链路的数据分组的传输(交付)
1、源主机到目的主机数据分组(packet)的交付---可能跨越多个网络
2、逻辑寻址(Logical addressing)全局唯一逻辑地址,确保数据分组被送达目的主机,IP地址;
3、路由(Routing)---路由器(或网关)互连网络,并路由分组至最终目的主机;路径选择
4、分组转发
2.6 传输层功能---负责源-目的(端-端)(进程间)完整报文传输
1、分段与重组
2、SAP寻址,确保将完整报文提交给正确进程,如端口号
3、连接控制 ---逻辑连接;4、流量控制;5、差错控制
2.7 会话层功能---(最薄的一层)
1、对话控制(dialog controling)---建立、维护
2、同步(synchronization)---在数据流中插入“同步点”
2.8 表示层功能---处理两个系统间交换信息的语法与语义(sytax and semantics)问题
1、数据表示转化---转换为主机独立的编码
2、加密/解密;3、压缩/解压缩
2.9 应用层功能---支持用户通过用户代理(如浏览器)或网络接口使用网络(服务)
典型应用层服务:文件传输(FTP)、电子邮件(SMTP)、Web(HTTP)
2.10 TP/IP四层参考模型
2.11 五层参考模型---综合OSI和TCP/IP的优点---应用最多
五层模型的数据封装
3.1 网络应用的体系结构
1、客户机/服务器结构(Client-Server,C/S)---例子:Web
(1)服务器:24小时提供服务;永久性访问地址/域名;利用大量服务器实现可扩展性
(2)客户机:与服务器通信,使用服务器提供的服务;间歇性接入网络;可能使用动态IP地址;不会与其他客户机直接通信;
2、点对点结构(Peer-to-Peer,P2P)
(1)没有永远在线的服务器;(2)任意端系统/节点之间可以直接通讯;(3)节点间歇性接入网络;(4)节点可能改变IP地址;
优点:高度可伸缩;缺点:难于管理
3、混合结构(Hybrid)
(1)文件传输使用P2P结构;
(2)文件的搜索采用C/S结构---集中式;
a、每个节点向中央服务器登记自己的内容;
b、每个结点想中央服务器提交查询请求,查找感兴趣的内容;
3.2 网络应用进程通信
1、进程:主机上运行的程序
客户机进程:发起通信的进程;服务器进程:等待通信请求的进程;
2、套接字:Socket---进程间通信利用socket发送/接收消息实现
传输基础设施向进程提供API:传输协议的选择;参数的设置
3、寻址进程
不同主机上的进程间通信,每个进程必须拥有标识符;进程的标识符=IP地址+端口号
通过IP地址寻址主机,通过端口号/Port number,定位同一主机上的不同进程,为每一个需要通信的进程分配一个端口号,例如HTTP Server:80,Mail Server:25;
3.3 应用层协议---网络应用需遵循应用层协议
1、公开协议:由RFC(Request For Comments)定义;允许互操作;HTTP,SMTP……
2、私有协议:多数P2P文件共享应用
3、应用层协议的内容
(1)消息的类型(type):请求消息,响应消息;
(2)消息的语法(syntax)/格式:消息中有哪些字段(field),每个字段如何描述
(3)字段的语义(semantics):字段中信息的含义;
(4)规则(rules):进程何时发送/响应消息;进程如何发送/响应消息
3.4 网络应用的需求与传输层服务
1、网络应用对传输服务的需求
(1)数据丢失(data loss)/可靠性(reliability);
(2)时间(timing)/延迟(delay);
(3)带宽(bandwith);
2、Internet提供的传输服务
4.1 Web应用---world Wide Web
1、网页(Web Page)包含多个对象(objects)
(1)对象:HTML文件、JPEG图片、视频文件、动态脚本等;
(2)基本HTML文件:包含对其他对象引用的链接;
2、对象的寻址(addressing)
4.2 HTTP协议---HyperText Transfer Protocol(超文本传输协议)
1、C/S结构:
(1)客户---Browser:请求、接收、展示Web对象;
(2)服务器---Web Server:响应客户的请求,发送对象;
2、HTTP版本:1.0:RFC 1945;1.1:RFC 2068
3、使用TCP传输服务:
4、无状态(stateless)---服务器不维护任何有关客户端过去所发请求的信息
(有状态的协议更加复杂,需要维护状态(历史信息);如果客户或服务器失效,会产生状态的不一致,解决这种不一致代价高)
4.3 HTTP连接
1、非持久性连接(Nonpersistent HTTP)
每个TCP连接最多允许传输一个对象;HTTP1.0版本使用非持久性连接;
2、响应时间分析与建模
3、非持久性HTTP连接的问题
(1)每个对象需要2个RTT;(2)操作系统需要为每个TCP连接开销资源(overhead);
(3)打开多个并行的TCP连接以获取网页所需对象,意味着服务器端会有很大负担;
4、持久性连接(Psistent HTTP)
每个TCP连接允许传输多个对象;HTTP1.1版本默认使用持久性连接;
发送响应后,服务器保持TCP连接的打开,后续的HTTP消息可以通过这个连接发送;
(1)无流水(pipelining)的持久性连接
客户端只有收到前一个响应后才发送新的请求;每个被引用的对象耗时1个RTT;
(2)带有流水机制的持久性连接
HTTP1.1的默认选项;客户端只要遇到一个引用对象就尽快发出请求;理想情况下,收到所有的引用对象只需耗时约1个RTT
4.4 HTTP消息格式
4.4.1 HTTP协议有两类消息:请求消息(request);响应消息(response);
4.4.2 请求消息---ASCII:人直接可读
1、HTTP请求消息的通用格式:
2、上传输入的方法:
(1)POST方法:
网页经常需要填写表格(form);在请求消息的消息体(entity body)中上传客户端的输入
(2)URL方法:使用GET方法;输入信息通过request行的URL字段上传;
3、方法的类型
(1)HTTP/1.0---GET,POST,HEAD(请Server不要将所请求的对象放入响应消息中)
(2)HTTP/1.1---GET,POST,HEAD;PUT(将消息体中的文件上传到URL字段所制定的路径);
DELETE---删除URL字段所指定的的文件;
4.4.3 HTTP响应消息
1、HTTP响应状态代码---响应消息的第一行