导图社区 计算机网络基础_计算机网络应用
计算机网络基础(自顶向下) HIT 哈工大课程笔记,介绍详细,可以让你更快速更方便去了解学习。有需要的赶紧收藏吧!
编辑于2024-03-31 23:21:06计算机网络应用
难点以及重点
1. 什么是套接字socket
2. 非持久性连接的问题
3. SMTP与HTTP对比
PPT209
4. POP3无状态?
5. IMAP与POP3
6. 不可伸缩
7. DNS负载均衡?
网络应用及协议
Web应用
概述
WEB的构成
网页互相链接
形成庞大的信息和内容网络甚至服务网络
网页
多个对象
HTML文件、JPEG图片、视频文件、动态脚本等
基本HTML文件
包含对其他对象引用的链接
对象的寻址
URL:统一资源定位器
基本格式
Scheme://host:port/path Scheme:协议名称 默认http(缺省值) host:主机域名或IP地址 port:端口号 path:路径
WEB上所有的资源都有了唯一的标识符
HTTP协议
万维网遵循协议(HyperText Transfer Protocol)
C/S结构

客户—Browser
请求、接收、展示WEB对象
服务器—Web Server
响应客户的请求,发送对象
版本
1.0 RFC 1945
非持久连接
方法的类型
GET: POST: HEAD:请Server不要将所请求的对象放入响应消息中
1.1 RFC 2068
默认持久性连接
方法的类型
GET: POST: HEAD:请Server不要将所请求的对象放入响应消息中 PUT:将消息体中的文件上传到URL字段所指定的路径 DELETE:删除URL字段所指定的文件
TCP传输服务
具体步骤
服务器在80端口(HTTP Server)等待客户的请求 浏览器发起到服务器的TCP连接(创建套接字Socket) 服务器接受来自浏览器的TCP连接 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息 关闭TCP连接
无状态
为什么不使用有状态的协议

服务器不维护任何有关客户端过去所发请求的消息
HTTP连接类型
非持久性连接
特点
每个TCP连接最多允许传输一个对象
步骤
客户端与服务器建立连接: a.客户端向服务器上的服务器进程发起TCP连接请求 b.HTTP服务器在端口80等待TCP连接请求,接受连接并通知客户端。 客户端与服务器交换信息: 客户端将HTTP请求消息通过TCP连接的套接字发出,消息中所含的URL中的路径表明客户端所需要对象 HTTP服务器收到请求消息,解析,封装包含所需要对象(一个对象)的响应信息,通过socket发送给客户端 客户端与服务器断开连接: HTTP 服务器关闭连接 HTTP客户端收到响应消息,解析html文件,显示html文件,发现有10个指向jpeg对象的超连接 为每个jpeg对象重复步骤1-5(第一次TCP连接只发送了文本)
响应时间分析与建模
 total=2RTT+文件发送时间
RTT
从客户端发送一个很小的数据包到服务器并返回所经历的时间(往返)
响应时间
各1个RTT
发送、建立TCP连接
客户端发送请求以及接收响应消息
文件发送时间
响应消息中所含的文件/对象传输时间
非持久性连接
特点
每个TCP连接允许传输多个对象
发送响应后,服务器保持TCP连接的打开
发送/建立TCP连接只消耗1个RTT (后续的HTTP消息发送/接收可以通过这个连接)
分类
无流水
客户端只有收到前一个响应后才发送新的请求
每个被引用的对象耗时1个RTT
带有流水机制
HTTP 1.1 的默认选项
客户端只要遇到一个引用对象就尽快发出请求
理想情况下,收到所有的引用对象只需耗时约1个RTT
3个RTT(TCP建立+文本+引用对象)+文件发送时间
HTTP消息格式
请求消息
 
request line
请求方法+URL+HTTP版本
heaner lines(可扩展)
host:服务器域名
user-agent 浏览器
CR LF
Carrige return 回车 line feed 换行 indicate end of message
Entity Body
实体主体:存放携带的数据
响应消息

status line
HTTP版本+状态代码+状态短语
状态代码: 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version Not Supported
heaner lines(可扩展)
Date:web服务器生成响应消息的事件
Last—Modified:网页上次修改时间
CR LF
Carrige return 回车 line feed 换行 indicate end of message
requested HTML file
上传输入的方法
POST方法(信息量大)
网页经常需要填写表格
在请求消息的消息体(entity body)中上传客户端的输入
GET方法(信息量少)
输入信息通过request行的URL字段上传
Cookie技术
架设在HTTP协议上
定义 RFC6265
某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
组件
HTTP响应消息的cookie头部行 HTTP请求消息的cookie头部行 保存在客户端主机上的cookie文件,由浏览器管理 Web服务器端的后台数据库
HTTP 请求/响应消息
浏览器管理的cookies文件
WEB服务器端的数据库文件
原理
PPT注释
Web缓存/代理服务器技术
功能
在不访问服务器的前提下满足客户端的HTTP请求
原因
缩短客户请求的响应时间(分流)
减少机构/组织的流量(PPT中缓存示例)
在大范围内实现有效的内容分发
组织形式
 用户设定浏览器通过缓存进行Web访问 浏览器向缓存/代理服务器发送所有的HTTP请求 如果所请求对象在缓存中,缓存返回对象 否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象 一般由ISP(Internet服务提供商)架设
proxy server既充当客户端,也充当服务器
条件性GET方法
目的
用于同步缓存服务器与远端服务器的WEB对象版本
Email应用
 一个网络应用可以综合使用多个协议
构成组件
邮件客户端
读、写Email消息 与服务器交互,收、发Email消息 PC客户端:Outlook, Foxmail, Thunderbird Web客户端
邮件服务器
邮箱:存储发给该用户的Email(对接收方而言) 消息队列(message queue):存储等待发送的Email(对发送方而言)
SMTP协议
邮件服务器之间传递消息所使用的协议
客户端
发送消息的服务器
服务器
接受消息的服务器
SMTP协议:RFC2821
邮件服务器之间传递消息所使用的协议
端口
25
传输协议TCP(可靠传输)
握手
消息的传输(持久性连接)
关闭
命令/响应交互模式
命令:ASCII文本
响应:状态代码和语句
SMTP交互示例

220
代表成功建立连接
250
信息正确的确认代码
RCPT TO
接收者名称
DATA
正式开始发送数据的命令
MAIL FROM
发送方名称
SMTA服务器确定消息的结束
CRLF.CRLF
消息格式
RFC 822 文本消息格式标准 
头部行
TO
from
Subject(标题)
消息体
消息本身(只能是ASCII字符)
MIME
多媒体邮件扩展RFC 2045, 2056 通过在邮件头部增加额外的行以声明MIME的内容类型
目的
为了发送多媒体文件
格式

仍需將多媒體文件進行ASCII编码
邮件访问协议
从服务器获取邮件
POP
认证/授权(客户端<->服务器)和下载
认证过程
客户端命令
服务器响应
事务阶段
List:列出消息数量 Retr:用编号获取消息(把消息从服务器下载到客户端上) Dele: 删除消息 Quit
模式
下载并删除
下载并保持
无状态
IMAP
HTTP
基于WEB的EMAIL应用
163,QQmail等
DNS应用
分布式层次式数据库
层次结构
根服务器
顶级域名服务器
机构服务器
本地域名解析服务器
当主机进行DNS查询时,查询被发送到本地域名服务器 本地域名服务器作为代理,将查询转发给(层级式)域名解析服务系统
一般会缓存顶级域名服务器的映射
因此根域名服务器不经常被访问
应用
 根服务器->顶级域名服务器->机构/企业的域名服务器
DNS查询示例
迭代查询

被查询服务器返回域名解析服务器的名字(踢皮球)
递归查询

域名解析的任务交给所联系的服务器(完成后续查询工作后返回结果)
DNS记录(资源记录)
DNS在分布式层次式数据库里数据记录的格式  ttl:关于时间有效性的一个字段
记录缓存和更新
域名解析服务器获得域名-IP映射,即缓存这一映射
Type
A
Name:主机域名;Value:IP地址
NS
Name:域名;Value:该域权威域名解析服务器的主机域名(非IP)
CNAME
Name:某一真实域名的别名;Value:真实域名
MX
Value是与name相对应的邮件服务器
DNS协议
查询与回复
消息格式相同
消息头部
补充扩展
Identification
flags
思考
DNS服务
域名向IP地址的翻译 主机别名 邮件服务器别名 负载均衡:Web服务器
使用UDP还是TCP?
为什么DNS不是集中式?
不可伸缩
P2P应用
特点
没有服务器 任意端系统之间直接通信 节点阶段性接入Internet 节点可能更换IP地址
文件分发

C/S结构
 服务器发送文件的同时客户机开始接收文件,所以两个时间不用相加,而是二者最大值
服务器需对每个请求的节点副本
客服机i需要时间下载
P2P结构

服务器必须发送一个副本
互联网上的任一节点只要持有该文件的任何部分(chunk)就可以互相之间分享文件
客服机i需要时间下载
子主题
协议:BitTorrent
索引技术
集中式索引

流程
内容和文件传输是分布式的,但是内容定位是高度集中式的
节点加入,通知中央服务器其IP地址和内容
节点向中央服务器查询某文件
客户端—客户端进行文件的传输
问题
单点失效问题
性能瓶颈
洪泛式查询
特点
完全分布式架构
每个节点仅对它共享的文件进行索引
如何查询文件
覆盖网络

流程

查询消息通过已有的TCP连接发送
节点转发查询信息
查询命中,则利用反向路径返回查询节点
问题
消息在网络中泛滥。大量消耗网络带宽,导致网络拥塞
层次式覆盖网络

介于集中式和洪泛式查询之间
组成
超级节点
负责跟踪子节点的内容
普通节点
被分配一个超级节点
节点和超级节点的连接(集中式) 超级节点和超级节点的连接(洪泛式)
案列
skype

Socket编程
TCP
UDP
基本原理
网络应用的基础:进程间通信
进程
主机上运行的程序
同一主机上进程的通信
进程间通信机制
操作系统提供
不同主机上进程的通信(重点)
消息交换(报文交换)
客户机进程
发起通信的进程
服务器进程
等待通信请求的进程
P2P架构的应用也存在客服机进程/服务器进程之分
涉及到信息的接收与发送则需要报文交换
套接字Socket
进程间通信利用socket发送/接收信息实现
如何寻址进程
不同主机上的进程间通信,每个进程必须有标识符:IP地址+端口号
寻址主机
IP地址
唯一确定Internet上的一台主机
寻址进程
端口号/Port number
为主机上每个需要通信的进程分配一个端口号
某些进程使用特定的端口号,则这些端口号不能使用
HTTP Server: 80 Mail Server:25
应用层协议
含义
网络应用需遵循应用层协议
分类
公开协议
RFC定义
目的:允许互操作
大家同时遵循该协议编写网络应用,则网络应用可以相互操作
私有协议
多数P2P文件共享应用
内容

消息的类型(type)
请求消息
响应信息
消息的语法(syntax)/格式
消息中有哪些字段
每个字段如何描述
字段的语义(semantics)
字段中信息的含义
规则(rules)
进程何时发送/响应信息
进程如何发送/响应信息
应用(层)内容概述
特点(与单机应用的本质不同)
网络应用需要有网络的基础环境,一部分软件跑在自己的计算机,另一部分软件以及数据信息跑在互联网的某些硬件服务器,两部分软件互相交互才共同构成网络应用
物理媒介
远端互联网上的某些软硬件
体系结构
客服机/服务器结构
Client-Server,C/S 
服务器
提供服务
7*24h提供服务
永久性访问地址/域名
利用大量服务器实现可扩展性
解决大量同时请求服务的客户机(并发请求)
客户机
消费服务
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
其他客户机不会直接访问 对外也不提供服务
不会与其他客户机直接通信
功能角色划分
应用
Web访问(客户机请求-服务器响应)

点对点结构
Peer-to-peer,P2P 
特点
没有永远在线的服务器
任意端系统/节点之间可以直接通讯
节点间歇性介入网络
节点可能改变IP地址
优缺点
优点:高度可伸缩
缺点:难以管理
混合结构
Hybrid 
P2P结构
文件传输
C/S结构
文件搜索
每个节点向中央服务器登记自己的内容 每个节点向中央服务器提交查询请求,查找感兴趣的内容
优点
避免服务器成为性能的瓶颈(客户机不需从服务器获取文件)
服务需求
网络应用对传输服务需求
数据丢失(data loss)/可靠性(reliability)
时间(time)/延迟(delay)
带宽(bandwidth)
Internet提供的传输服务
TCP服务
面向连接
可靠地传输
流量控制
拥塞控制
不提供时间/延迟保障
不提供最小带宽保障
UDP服务
+ 留给我们掌控数据传输的能力 + 留给了我们自由
只把传输层基本的服务提供给应用层