计算机网络知识点提要
概述
网络协议的要素
- 语法:数据与控制信息的结构或格式 。
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步:事件实现顺序的详细说明
分层的好处:
- 各层之间是独立的
- 灵活性好
- 结构上可分割开
- 易于实现和维护
- 能促进标准化工作
网络体系结构 信道利用率
U=TD/(TD+RTT+TA)
即:接收到第一个确认前尽可能发送最多的帧
令 D0 表示网络空闲时的时延,D 表示网络当前的时延
D=D0/(1-U)
物理层
物理层设备
中继器:放大信号转发,不能隔离冲突域
集线器:多端口中继器,不能隔离冲突域
三种交换
电路交换:物理通信线路,独占
报文交换:整个存储转发
分组交换:分组,一个个存储转发
传输媒体
单模光纤:距离远,质量好,适用于千米级别
多模光纤:距离近,适用于百米级别
双绞线:5类达百兆
同抽电缆
编码方式
曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。
差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。
香农公式
信道的极限信息传输速率
C = W log2(1+S/N)
信噪比=10lg(S/N) (dB)
奈氏准则 最高码元传输速率
C=2Wlog2V
(W是带宽Hz,V是每个码元的离散电平个数)
信道复用技术
- 频分复用FDM(Frequency Division Multiplexing)
- 时分复用TDM (Time Division Multiplexing)
- 统计时分复用 STDM(Statistic TDM) 动态地分配时隙
- 波分复用 WDM(Wavelength Division Multiplexing) 一根光纤来同时传输多个光载波信号
- 码分复用 CDM(Code Division Multiplexing)
码分多址 CDMA (Code Division Multiple Access)
S 站的 8 bit 码片序列是 00011011。
发送比特 1 时,就发送序列 00011011,
发送比特 0 时,就发送序列 11100100。
S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)
把收到的码与S的码片进行规格化内积,>0(发送的是1),<0(发送的是0),=0(未发送)
数据链路层
数据链路层设备
网桥:以太网互连,隔离冲突域
交换机:多端口网桥,隔离冲突域
三大问题
- 封装成帧:加首部尾部
- 透明传输:不论什么比特组合,都能传输
- 差错检测:循环冗余检测CRC
点对点协议 PPP (Point-to-Point Protocol) 面向字节
- 一个将 IP 数据报封装到串行链路的方法
- 链路控制协议 LCP (Link Control Protocol)
- 网络控制协议 NCP (Network Control Protocol)
字符填充(异步传输)
每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)
一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)
零比特填充(同步传输)
在发送端,5 个连续 1,则立即填入一个 0
接收端,5 个连续1,就把这 5 个连续 1 后的一个 0 删除
CSMA/CD 载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection)
(1) 准备发送。但在发送之前,必须先检测信道。
(2) 检测信道。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3) 检查碰撞。在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
①发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到 (1)。
②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间(2τ)后,返回到步骤 (2),继续检测信道。但若重传达 16 次仍不能成功,则停止重传而向上报错。
端到端时延必须小于争用期(发送64字节的时间)的一半!
以太网V2MAC帧格式
网络层
网络层设备
路由器:具有多个输入输出端口的专用计算机,负责路由选择和分组转发,可以隔离冲突域和广播域。
两种服务
ARP(Address Resolution Protocol)地址解析协议
ARP 高速缓存:存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
ICMP(Internet Control Message Protocol)网络控制报文协议 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 4种差错
- 终点不可达 (如:端口错误)
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
ping(Packet InterNet Groper) 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
tracert用来跟踪一个分组从源点到终点的路径。它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
IP数据报首部格式
IP数据报分片
IP数据报首部检验和计算 二进制加法即可,有进位,最终结果取反写入
IP分类
内部网关协议 IGP (Interior Gateway Protocol) 域内路由选择 RIP(Routing Information Protocol) 距离向量算法:下一跳相同时,要更新;距离相同,下一跳不同时,不更新
好消息传播得快,坏消息传播得慢
OSPF 开放最短路径优先 OSPF (Open Shortest Path First)
- 向本自治系统中所有路由器发送信息,洪泛法。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的”度量“(metric)。
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。 外部网关协议 EGP (External Gateway Protocol) 域间路由选择
BGP 是不同自治系统的路由器之间交换路由信息的协议。
BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
虚拟专用网VPN
专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN (Virtual Private Network)。
网络地址转换 NAT (Network Address Translation)
使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。
运输层
端口复用分用
服务器端口 熟知端口,数值一般为 0~1023。
登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户端端口 又称为短暂端口号,数值为 49152~65535。 常用端口
用户数据报协议UDP
无连接、尽最大努力交付、面向报文(应用层给的报文,不合并不拆分)
没有拥塞控制,适合实时通信
支持一对多、多对一、一对一、多对多交互通信
应用程序必须选择合适大小的报文
若报文太长,UDP 把它交给 IP 层后,IP 层在传送时可能要进行分片,这会降低 IP 层的效率。
若报文太短,UDP 把它交给 IP 层后,会使 IP 数据报的首部的相对长度太大,这也降低了 IP 层的效率。
UDP首部格式
传输控制协议TCP
点对点、面向连接、全双工、面向字节
根据对方给出的窗口值和网络拥塞程度来决定报文段的字节数
TCP 连接的端点叫做套接字 (socket) 或插口
TCP首部格式
可靠传输的原理(停止等待和连续ARQ) 停止等待:每发送完一个分组就停止发送,等待对方的确认。 超时重传:自动重传请求 ARQ (Automatic Repeat reQuest)
可靠传输的实现(滑动窗口、超时重传时间选择、选择确认SACK) 滑动窗口
发送窗口+接收窗口<=2^(序号位数)
发送窗口的上限值 = Min [rwnd, cwnd]
发送方:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认,每收到一个确认,就把发送窗口向前滑动一个分组的位置。
接收方:对按序到达的最后一个分组发送确认。
Go-back-N(回退 N)
如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
加权平均往返时间RTTS
新的RTTS = (1 - a) ´ (旧的RTTS) + a ´ (新的RTT样本) a = 1/8
RTT的偏差的加权平均值RTTD
第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半
新的 RTTD = (1 - b) ´ (旧的RTTD) + b ´ ½RTTS - 新的 RTT 样本½ β=0.25
超时重传时间RTO
RTO = RTTS + 4 ´ RTTD
TCP拥塞控制算法
慢开始 (slow-start)
拥塞窗口cwnd每次的增加量 = min (N, SMSS)
N 是原先未被确认的、但现在被刚收到的确认报文段所确认的字节数
慢开始门限 ssthresh 的用法如下:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免 (congestion avoidance)
每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,加法增大
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时): ssthresh = max(cwnd/2,2) cwnd = 1 执行慢开始算法
快重传 (fast retransmit)
只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即”快重传”)
快恢复 (fast recovery)
收到连续三个重复的确认时,很可能没有发生拥塞,执行快恢复算法
ssthresh = 当前拥塞窗口 cwnd / 2
cwnd = 慢开始门限 ssthresh 乘法减小
执行拥塞避免算法
全局同步
网络中通常有很多的 TCP 连接,这些连接中的报文段通常是复用在网络层的 IP 数据报中传送的,若发生了路由器中的尾部丢弃,就可能会同时影响到很多条 TCP 连接,结果使这许多 TCP 连接在同一时间突然都进入到慢开始状态。这在 TCP 的术语中称为全局同步 (global syncronization)。
主动队列管理AQM
TCP的运输链接管理(客户服务器方式) 连接建立:三报文握手
连接释放:四报文握手
应用层
域名系统DNS(Domain Name System) … . 三级域名 . 二级域名 . 顶级域名 顶级域名 .com (公司和企业) .net (网络服务机构 .org (非赢利性组织) .edu (美国专用的教育机构) .gov (美国专用的政府部门) .mil (美国专用的军事部门) .int (国际组织) .arpa (基础结构域名,用于反向域名解析) 域名服务器 根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器 本地域名服务器迭代查询(我不知道,你找张三吧)
本地域名服务器递归查询(行,我去帮你问)
统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 **HTTP (HyperText Transfer Protocol)**。
HTTP 是面向事务的客户服务器协议。
HTTP 1.0 协议是无状态的 (stateless)。
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
HTTP/1.1 协议使用持续连接 (persistent connection)。
请求一个万维网文档所需的时间
代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache)
它代表浏览器发出 HTTP 请求
万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源
HTTP状态码
1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
电子邮件
SMTP
SMTP 不能传送可执行文件或其他的二进制对象。
SMTP 限于传送 7 位的 ASCII 码
MIME
网络安全
数据加密模型
对称密钥密码体制
公钥密码体制
加密密钥(即公钥) PK 是公开信息,而解密密钥(即私钥或秘钥) SK 是需要保密的。
加密算法 E 和解密算法 D 也都是公开的。
虽然秘钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。
数字签名 如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法 如果某一信息用私有密钥加密,那么,它必须用公开密钥解密。这就是实现数字签名的方法 鉴别
在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用鉴别 (authentication) 。
报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)的真伪。
数字签名可以实现鉴别,但代价较大。
密码散列函数 (cryptographic hash function)是一种相对简单的对报文进行鉴别的方法。 (1) 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫做散列值,或更简单些,称为散列。 (2) 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。这就是说,散列函数的输入和输出并非一一对应的,而是多对一的。 密钥分配
防火墙
防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施访问控制策略。
功能有两个:阻止和允许。
“阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
“允许”的功能与”阻止”恰好相反。
入侵检测IDS (Intrusion Detection System)
IDS 对进入网络的分组执行深度分组检查,当观察到可疑分组时,向网络管理员发出告警或执行阻断操作(由于 IDS 的”误报”率通常较高,多数情况不执行自动阻断)。
基于特征的 IDS 维护一个所有已知攻击标志性特征的数据库。
基于异常的 IDS 通过观察正常运行的网络流量,学习正常流量的统计特性和规律。当检测到网络中流量某种统计规律不符合正常情况时,则认为可能发生了入侵行为。
至今为止,大多数部署的 IDS 主要是基于特征的,尽管某些 IDS 包括了某些基于异常的特性。