Chapter1 整体认知
1.1 Internet
1.1.1 分层
应用层
传输层
网络层
数据链路层
物理层
1.1.2 计算机网络
路由器是工作在网络层的,交换机是工作在链路层的
网络节点有:1.路由器或交换机等交换设备 2.主机及其运行的程序
P2P(Point to Point) 是网络中的一个交换设备到另一个交换设备
E2E(End to End) 是网络中每一个终端(PC/手机/Server等)到另一个终端
point在计算机网络中用圆圈表示,End用方块表示
接入链路:终端接入的
主干链路:路由器等的链路
1.1.3 协议
PDU 协议数据单元
在不同的层名字不同,在应用层叫message,在传输层叫segment
从服务角度看计算机网络
使用通信设施进行通信的分布式应用
由两部分,一部分是应用进程,只认识其他的应用进程。
第二部分是基础设施,在应用之下以及负责传输的所有基础设施。
通信基础设施为apps提供编程接口
1.2 网络边缘
边缘、核心和接入,三大块
上一节中End就是边缘edge,Point是核心core,把pc等边缘设备接入整个网络核心,叫接入access
【待整理】
CS模式
P2P模式 peer2peer
面向链接
有链接
tcp
可靠
流量控制
拥塞控制
1.3 网络核心
电路交换,适合电话,不适合计算机
建立连接时间长
独享线路,每个线路的带宽分成piece(片),频分,时分,波分
容易浪费资源分组交换
带宽不分片,全用
在每个节点都会存储,然后转发
每一跳,需要存储时间,排队时间
问题:排队延迟和丢失,就是常说的丢包
关键功能:路由和核心
统计多路复用
分组交换分类:
数据报网络:无连接,每个数据包都有主机的完整信息
虚电路网络:每个交换节点要维持链接状态
接入
共享网络
住宅接入 modem 调制解调器
利用已有的电话线
线缆接入
无线接入
互联网结构,网络的网络 ISP
全局的ISP,
ICP 会自己建立数据中心,接入就近的ISP
节点处理延时,微秒级别
排队延时,取决于拥塞程度
传输延时:从节点把比特发出到链路上的延时,微秒到毫秒级别
传播延时:物理传播延时,几微秒到几百毫秒
ICMP
SAP 服务访问点
DU 数据单元
Chapter2 应用层
2.1 应用层原理
模式:C/S模式,p2p模式,混合模式
- C/S模式:不平等、资源在服务器、性能断崖式下降、可扩展性差
- p2p: 平等、性能平滑、管理困难
原理:
- 标识、寻址
必须要有唯一的标识符,有ip地址和端口号,才能找到进行进程间的通信 - 传输层的服务
UDP和TCP,必须每次都要带上源ip,源port和目标ip,目标port。
因此socket API解决这个麻烦:用TCP socket时,返回一个整型,代表以上四个信息的四元组;应用层的应用再进行通信时,只用这个整型即可。
目的:1.便于管理 2.使穿过层间的信息量最少
UDP socket:只保存源ip和源port,二元组
TCP和UDP都不加密,都不安全
- 定义自己的协议
报文类型、语法、语义、规则
传输层提供的服务:
- 数据丢失率
- 延迟
- 吞吐量
- 安全性
例子:SSL:应用层协议,利用TCP,加密的协议;如https就是跑在SSL之上
2.2 web和http
1. 请求格式:
prot://user:psw@www.someSchool.edu/someDept/pic.gif:port
[协议]://[用户口令]@[主机名]/[路径名]:[端口]
2. 基本原理
- 基于TCP,TCP向上层提供字节流的服务,http协议需要自己维护报文与报文之间的界限
举个例子:客户端的http给下层的tcp传输了两个15k的包;在服务端,tcp传输给了http一个30k的包,http协议需要自己分成两个15k。 - 一开始需要基于TCP建立连接,默认端口80
- http是无状态的
- RTT:往返时间。一个小分组从客户端到服务器,在回来的时间。
3. 1.0和1.1的区别
- http1.0:非持久,每次传输一个对象,HTTP关闭TCP连接,因此每传输一个对象都要2个RTT。
- http1.1:持久,连接不关;有流水和非流水型的。
4. 报文
编码是ASCII
- 请求 GET/POST/HEAD PUT/DELETE(网络管理员使用)
- 响应 响应码
5.cookie
保存在客户端,有过期时间(已经理解,不解释了)
6. web缓存
- 可以通过局域网建立缓存服务器,通常由ISP安装
- 优点:客户会快,而且减少用户访问远程服务器的压力
- 大家搜索的东西需要有趋同性,这样更容易命中缓存
2.3 FTP
- 文件传输协议
- ftp服务器知名端口:21
- 控制连接:客户端请求服务器21号端口,身份确认,请求控制连接浏览远程目录,请求下载某个文件
- 数据连接:服务端请求客户端的20号端口,发送数据
2.4 Email
3个主要组成部分
- 用户代理:邮件是从发送服务器到目标服务器,所以用户操作是代理
- 邮件服务器
- 简单邮件传输协议: SMTP
SMTP
- 使用TCP,端口25
- 从发送方服务器到接收方服务器
- 握手,传输报文,关闭
- 命令:ASCII文本;响应:状态码和状态信息
- 报文必须是7位ASCII码
- 邮件中有多个对象,附件等;http只有一个
- 内容必须是ASCII码,怎么编码中文等?
报文首部声明MIME,多媒体编码。比如base64
拉取协议
- POP3:邮局访问协议
- IMAP: Internet邮件访问协议,比POP3更复杂
- HTTP: hotmail等