计算机网络应用(笔记)

概述
计算机网络应用(笔记)_第1张图片

1.网络应用的体系结构
a.C/S 客户机/服务器
b.P2P peer to peer
c.混合结构

网络应用:微信,QQ,支付宝,web,E-mail,网易云
具体:
网络媒体:传播信息
网络娱乐:音乐,视频,游戏
网络通信:电子邮件和即时
信息检索:网络社区
电子商务:
网络金融:



a.C/S的特点: web
服务器:
1.7*24
2.永久性的域名
3.利用服务器提供可拓展性

客户机:
1.与服务器通信
2.间歇性接入网络
3.可能使用动态ip
4.不会与其他用户直接通信

b.p2p特点:
没有永远在线的服务器
端对端直接传输数据
节点间间歇性接入网络
节点可能改变ip地址

优点:高度可伸缩
缺点:难于管理


c.混合结构 集中前面2种的优点,规避前面2种的缺点
Napster为例子
文件传输使用p2p结构
文件搜索使用C/S结构:
每个节点向中央服务器登记自己的内容
每个节点向中央服务器提交自己的查询请求,查找感兴趣的内容


网络应用的基础:进程间的通信(送信一般)
1.进程:客户端和服务器端
2.寻址进程:IP+端口号 IP是主机地址,端口号是进程的地址,
3.应用层遵循网络协议:a.公开协议:HTTP,STMP b.私有协议:P2P
4.协议里面包括的内容:
a.消息的类型(type):请求消息 响应消息
b.消息的语法格式(syntax):消息中有哪些字段?
每个字段如何描述?
c.字段的语义(semantics) 字段中信息的含义
d.规则(rules):进程何时发送/响应消息
进程如何发送/响应消息

网络应用对传输服务的需求:
1.数据丢失(data loss):
有些能够允许一定的数据丢失:网络电话
有些不允许:文件传输
2.延迟(delay)
有些应用对延迟有要求:游戏
3.带宽(bandwidth)
相当于水龙头: 有要求的:在线网络视频 没有:e-mail

internet提供的传输服务:
TCP服务:
1.面向连接:C/S进程之间需要建立连接
2.可靠的传输
3.提供流量控制和堵塞控制
4.不提供延迟保障和最小带宽保障

UDP:
1.无连接
2.不可靠的数据传输
3.不提供:什么都不提供

WEB应用:

www(world wide web)包括 网页与网页间的相互连接
创始人:Tim Berners-lee
网页(web page)包含多个对象(object):
html文件 多媒体文件 脚本文件

对象的寻址(addressing):
其实现通过 URL(uniform resource locator)统一资源定位符
格式: scheme://host:port/path

web应用遵循的协议:http(hyper text tranfer protocol)
采用的是C/S结构 其中用户使用的是explorer 服务器使用的是 apache
http版本:1.0 RFC1945 1.1 RFC2068

使用TCP传输服务:
服务器在80端口等待客户的请求
客户请求建立TCP连接(创建套接字Socket)
服务器接受TCP连接
客户与服务器交换HTTTP消息

无状态(stateless)
它不会处理你过去发送的请求,每个都是新的

HTTP连接:
2种类型:
1.非持久性连接(nonpersistent http)
每个TCP连接最多允许传输一个对象 1.0版本
2.持久性连接(persistent HTTP) 1.1版本
每建立一个TCP连接,可以传输多个对象
非持久性连接:
具体过程:
用户在浏览器输入地址后:如 www.someschool.edu/someDepartment/home.index
1-http客户端向地址为:www.someschool.edu的服务器进程(端口号80)发TCP请求
2-服务器接受 这里是一个RTT(round trip time)
3-将http请求消息(包含url地址:url表明客户端需要的对象)通过TCP连接的套接字发出
4-接受,产生响应消息,通过套接字发出 这里也是一个RTT
5-服务器关闭TCP连接
6-客户端接收到响应消息,解析html文件,显示出包含10个只想jpeg的超链接
7-重复1-6 10次

响应时间=RTT*11+每次文件传回来的时间

计算机网络应用(笔记)_第2张图片计算机网络应用(笔记)_第3张图片



HTTP消息格式:

http协议有2类消息:
1.请求消息
2.相应消息

1.请求消息:
请求行(requrest line)+头行(header line)+回车(barriage return)+消息体(entity body)


输入信息:
2种方式:post:在请求消息的消息体中输入在上传
get:url方式:通过请求行(request line)的url字段上传

2个版本中方法的类型:
HTTP 1.0中: POST+ GET+ HEAD(用于测试): 请server雅蠛蝶将所请求对象放入相应消息中
HTTP 2.0中: POST+GET+HEAD+PUT:将消息体中的内容上传到URL字段所指定的路径+DELETE:删除URL字段所指定的文件

2.响应消息:
状态行(status line):+headerline+data(requested html line):响应消息的第一行
状态行代码(在状态行里面):
200 OK
301 move permanently
400 bad request
404 not found
505 HTTP version not supported


体验一下http
利用telnet登录到某个web服务器
输入一个http请求
查看http服务器所返回的响应消息

cookies:
识别用户,进行session跟踪的储存在用户终端的加密数据
组件:
1.请求消息的头部行
2.响应消息的头部行
3.客户端由浏览器管理cookies
4.服务器端的后台数据库

cookies的原理:
请求消息后在响应消息中返回一个小饼干,如set cookies: 1678
下一次请求消息中就会包含cookies: 1678
然后server 就会进行cookies specific action,然后再发出响应消息

cookies的作用:
身份验证
购物车
推荐
web-email


web缓存/代理服务器:

功能: 在不访问服务器的前提下满足用户的HTTP请求
诞生的原因:
1.缩短客户请求的响应时间
2.减少组织/机构的流量
3.在大范围内实现有效的内容分发
web缓存/代理服务器由ISP架设

web缓存/代理服务器时一个 中介
1.用户设置通过web缓存 进行web访问
2.如果web缓存有所请求的对象,在返回响应请求
如果web缓存没有,则 web缓存/代理服务器 向原始服务器发送http请求,获取对象,然后返回给客户并保存该对象

web缓存/代理服务器既充当客户端,也充当服务器

Q:web服务器如何保证网页是最新的?
A:
通过条件性GET方法:
目标:使得web缓存中的版本为最新*
缓存:字HTTP请求中声明所持有版本的日期:If-modified-since:
服务器:
不是最新则在响应消息中获取对象
如果是最新的则在响应消息中不包含对象,头部行中:HTTP/1.0 304 Not Modified


Email应用的构成组件:
邮件客户端
邮件服务器
SMTP协议(simple mail transfer protocol)

用户发送和接收邮件要通过邮件服务器(Mail Server),他们之间使用SMTP协议
邮件服务器:当发送的时候充当客户端,接受邮件的时候充当服务器

SMTP协议:
因为需要可靠性,所以使用的是TCP连接
应用的端口号为25
传输过程的三个阶段:
握手
传输
关闭
交互模式:请求or命令-响应 交互模式
采用持久性连接
消息必须由7位ASCII码构成
SMTP服务器通过CRLF.CRLF确定消息的结束
与HTTP的对比:
HTTP:拉式(pull)
SMTP:推式(push)
都是使用请求/响应模式
命令和状态代码都是ASCII码
HTTP:每个对象封装在独立的响应消息中
SMTP:多个对象在多个部分构成的消息中发送

Email的消息格式:
SMTP:Email的传输,交换协议
RFC822:文本消息格式标准
头部行(header line)
to
from
subject
消息体(body)
消息本身
只能是ascii码本身
如果不是ascii码,如中文,音频,视频等,要使用MIME:多媒体邮件扩展 RFC 2045,2056
方式:通过在邮件头部增加额外的行以声明MIME的内容类型
计算机网络应用(笔记)_第4张图片


使用telnet可以交互地使用email应用 像linux一般
telnet servername 25
服务器返回代码:220
输入以下命令与SMTP服务器交互:
HELO
MAIL FROM
RCPT TO
DATA
QUIT

访问邮件需要另一种协议:邮件访问协议
1.POP协议(post office protocol)[RFC 1939]
认证/授权和下载
2.IMAP(internet mail access protocol)
更多功能
更加复杂
能够操纵服务器上存储的信息
HTTP:163,QQmail

POP协议展示:
计算机网络应用(笔记)_第5张图片


IMAP协议:
所有消息统一保存到一个地方:服务器
允许用户利用文件夹来组织信息
支持跨会话(session)的用户状态:
文件夹的名字
文件夹与消息ID之间的映射???



DNS:Domain name system
internet上主机和服务器的识别靠的是:
IP地址
域名

DNS服务:
域名向IP地址的翻译
主机别名
邮件服务器别名
负载均衡:web服务器 访问google时,各个服务器轮流

结构:分层分布式
为什么不用集中式?
害怕单点失败
流量过大
距离过远 RTT很大
维护起来比较困难
计算机网络应用(笔记)_第6张图片



本地域名服务器不知道映射时,访问根域名服务器
全球有13个根域名服务器

顶级域名服务器(TLD:Top-level domain):负责com, org, net, edu等顶级域名和国家顶级域名:cn,hk,fr
network solution负责维护com顶级域名服务器
educause负责维护edu顶级服务器

权威域名服务器:组织的域名服务器
由组织负责维护

本地域名服务器:
不严格属于层级体系
每个ISP都有一个本地域名服务器
他是一个代理,无论是迭代,还是递归查询,都要经过他,并且,对于顶级域名会进行缓存,因此,根域名解析服务器不经常被访问









在应用层实现的internet核心服务
DNS协议:
消息:查询(query)和回复(reply)
消息格式相同
计算机网络应用(笔记)_第7张图片
计算机网络应用(笔记)_第8张图片


注册域名的方法:
1.向域名管理机构(network solutions)注册域名networkutopia.com
a.提供你权威域名服务器的名字和IP地址
b.network solutions向com顶级域名解析服务器中插入2条记录
*(networkutopia.com, dns1.networlutopia.com, NS)
*(dns1.networkutopia.com, 212.212.212.1, A)
2.前面的注册完毕后,就要在权威域名解析服务器中为:www.networkutopia.com加入Type A记录,为networkutopia.com加入Type MX记录

DNS记录:
资源记录(RR,resource records)
Type=A
name:主机域名
value:IP地址
Type=NS
name:域
value:该权威域名解析服务器的主机域名
Type=CNAME
name:某一真实域名的别名
value:真实域名
Type=MX
value是与name向对应的服务器


RR format(name, valur, type, ttl)





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