计网-应用层
2.1 网络应用原理2.1.1 网络应用体系结构为什么网络应用不部署在网络核心:没有对应的协议栈
C/S
P2P
混合模式
2.1.2 进程通信概念进程(process):通信的主体报文(message):通信的“介质”
1、客户与服务器进程通信进程成对出现通常将一对进程中的一方称为client(发起通信的一方),另一方称为server(等待通信的一方)
2、进程与计算机网络之间的接口套接字(socket) 进程与网络通信的接口,又叫做API
套接字接口是一台主机内应用层与运输层之间的接口
3、进程寻址需要的信息
定位主机的地址
主机上的资源标识
2.1.3 可供应用程序使用的运输服务
可靠数据传输
吞吐量
定时
安全性
2.1.4 因特网提供的运输服务运输层的两个协议TCPUDP
1、TCP服务
面向连接服务
可靠数据传输服务
关于TLS:将其理解为加强版的TCP,而不是独立于TCP和UDP的第三种协议其有专门的socket,比TCP的socket多了一个加密和解密的流程安全套接字层(SSL)
2、UDP服务UDP是一种不提供不必要服务的轻量级协议
2.2 ...
计网-链路层和局域网
6.1 链路层概述链路层服务
实现点到点的通信,使用MAC地址来进行标识链路层服务的原则
错误检测、矫正
共享广播信息、多址访问
链路层寻址(MAC)
局域网:以太网、VLAN
术语
节点:主机和路由器
链路:沿着通信路径连接相邻节点的通信信道
有线链路
无线链路
链路层帧:链路的PDU(Protocol Data Unit)
链路层主要功能
负责将数据报从一个节点传到物理上相邻的节点
链路层协议修改的是帧头帧尾的内容
6.1.1 链路层提供的服务
成帧
将来自网络层的数据加到数据段,加上帧头和帧尾(上面的几层并没有)
链路接入
链路接入
共享介质的信道访问
对于公用的信道(比如电磁波),要如何通过协议设计避免不同数据的混淆和丢失?
可靠交付
通常用于差错率高的信道(如无线信道)
很多有线信道的链路层协议都不进行差错校验
差错检测以及矫正
误码来源于信道上的噪声&信号衰减
如果能够直接纠正误码,就不必要进行重传
通常由硬件实现
流量控制
在相邻的收发节点限制流量(限制发的速度)
半双工和全双工
半双工:两边都能传但是不能同时传
全双工:
...
计网-网络层-控制平面
几个概念
默认路由器:一台主机直接连接到的路由器
源路由器:源主机的默认路由器
目的路由器:目的主机的默认路由器
将网络抽象成图
123456G = (N,E)N Node 路由器集E Edge 链路集c(x,x') 节点x和x'之间的费用
目的是选择$\Sigma c$最小的算法
#TBS选路算法的分类
分法1
全局选路算法
所有路由器知道某个网络拓补图的结构
链路状态算法(LS)
分散式选路算法
距离向量算法(DV)
分法2
静态选路算法
动态选路算法
分法3
负载敏感算法
链路费用明显受链路状态影响
负载迟钝算法
链路状态选路算法Dijkstra算法(略)(略掉了算法复杂度分析和算法复杂度分析等玩意)可能出现的问题选路的结果对策略更改的影响过于明显(带宽的负载呈震荡变化)(体现了负载敏感的特性)解决的方案
强制链路费用不依赖于承载的流量
避免所有路由器都同时使用该算法(路由器之间自同步),控制链路通告的时间
距离向量选路算法Bellman-Ford算法分步、迭代、自我终止、异步$d_x(y) = min_v( ...
计网-网络层-数据平面
4.1 网络层概述
目标:实现主机与主机之间的通信
地位
为运输层提供支持
由路由器实现
网络层的主要功能
选路、设置转发表(控制层面)
根据转发表和分组头部信息,转发分组(数据层面)
对于面向连接的网络层服务,提供连接建立的功能(IP不属于这一类)
分组交换机的分类
根据链路层首部信息转发:链路层节点交换机(MAC地址,局部网络)
根据网络层首部信息进行转发:路由器
网络层可能提供的服务
确保交付
具有时延上界的确保交付
有序分组交付
确保最小带宽
确保最大实验抖动
安全传输
ATM Asynchronous Transfer Mode 异步传输模式
4.2 路由器工作原理路由器的功能运行路由算法/协议转发
4.2.1 输入端口和基于目的地转发输入端口
位流级的接收:将电信号转化为二进制字节流
帧 链路层中的数据计量单位? 帧头-数据报-帧尾
拆封之后,能从帧中获取数据报的相关信息
转发
基于目标的转发(只受到目的IP影响)
通用转发(受首部影响)
基于目标的转发前缀匹配:将一定范围的目的IP分配到同一个链路接口
最长前缀匹配规则:在前缀匹配 ...
Windows发展简史
Windows 1.x/2.x/3.0 ——基于DOS的原初时代对,这时的Windows就是基于MS-DOS的,本质上就是一个应用程序而不是一个系统……
srds,在这个时期的Windows中微软引入了图形操作界面、鼠标支持以及一些常用的办公软件,基本上定下了Windows的形态
几个重要的事件Win 1.0:用户图形界面、鼠标支持、记事本和时钟等应用程序
Win2.0:支持窗口的重叠,出现了控制面板
Win3.0: 扫雷小游戏出现力!
支持256位的VGA图形,看起来比前两个版本好多了
Windows NT 3.x:正式成为独立的操作系统
“Windows NT源自Microsoft 2OS / IBM合作的残酷局面,它是在软件工程师Dave Cutler的领导下从头开始构建的,它是一个完全主动的32位多任务、线程、进程和用户操作系统。”
也就是说,它运行已经不依赖DOS了(但是在Win2000之前还是需要通过DOS引导)
后面的Windows全部都是在NT内核上改进得来的
NT 3.1之后的第二个版本是NT 3.5,在这个版本中提供了TCP ...
Nginx学习笔记
Nginx学习笔记一、一些概念1、正向代理以及反向代理是什么 在资源的访问过程中通过代理服务器,正向代理服务器接收客户端的请求并将其发给服务器,此时代理服务器是一个客户端;反向代理接收客户端的请求并将其发给服务器,此时代理服务器是一个服务端
为什么 正向代理可以突破IP的访问限制、提高访问速度等;而反向代理一大作用是可以实现负载均衡
负载均衡:反向代理服务器将请求平均分配到自己代理的服务器上,避免某些服务器负载过重(*而且这样的话多台服务器就可以共用一个对外的IP了)
2、Nginx Nginx 是高性能的 HTTP 和反向代理的web服务器,可以作为静态页面的web服务器,结合CGI协议的动态语言可以实现动态页面
二、Nginx常用命令前提:进入nginx生成的sbin目录下
123./nginx -v#启动nginx./nginx -s stop#关闭nginx./nginx -s reload#重新加载nginx(不是重启服务器,只是重新编译?)
三、Nginx的配置文件关于位置linux用apt安装的nginx core的配置文件在*/etc/ ...
Redis学习笔记
Redis学习笔记启动Redis1redis-cli#进入交互模式
redis数据类型Keys任何的二进制数据都可以作为redis的key,比如图片之类的,但是大小最大只能有512MB
官方推荐的规范命名法
object-type:id 是官方推荐的命名方法(大概意思是用:分割层次结构)
1user:1000
当object-type或者id由多个字符组成的时候,建议使用”.”或者”-“分割
1comment:4321:reply.to
Strings123456set [key] [value] #设置键值对setnx [key] [value] #当key不存在的时候设置键值对get [key] #获取键对应的值mget [key...] #取得多个键值对incr [key] #值自增(对于整数)incrby [key] [increment] #增加特定的值
Key Expiration设置key的TTL(Time to live) ,当TTL到期的时候,key就会被自动销毁
有几点注意的
Redis的过期时间分辨率是ms
即使server没有运行,计时也不会 ...