计算机网络
注:这是一份临近考试自己复习、所总结的东西,方面自己查阅。
一下内容有王道考研课件截图、本人学校课堂习题、以及同学们分享的笔记。
物理层
OSI与TCP/IP协议栈
协议
网络中对等实体数据交换而建立的规则、约定
接口
上层使用下层服务的入口
服务
下层为相邻上层提供的功能调用
分层概念
为什么要分层?
发起通信的计算机 必须将数据链路激活
告诉网络如何识别目的主机
能够检测网络连接是否正常
确保差错与流量控制
OSI与TCP/IP
OSI参考模型 TCP/IP参考模型 TCP/IP协议栈
----------------------------------------------------------
应用层
表示层 应用层 HTTP/FTP/DNS
会话层
----------------------------------------------------------
传输层 传输层 TCP UDP
----------------------------------------------------------
网络层 网络层 IP
----------------------------------------------------------
数据链路层 网络接口层 Ethernet STM Frame Relay
物理层
----------------------------------------------------------
TCP/IP 参考模型各层的主要功能
应用层
使用网络服务应用进程、与用户交互传输层
TCP可靠传输 UDP不可靠传输 与 拥塞控制等网络层
IP数据报的传输 路由规划等网络接口层
数据成帧 透明传输 差错控制
编码技术
单极性不归零
高1 低0
曼彻斯特编码
高->低 1
低->高 0
差分曼彻斯特编码
同 1 异 0
香农与奈氏
奈氏准则
适用条件:理想情况下无噪声干扰、避免码间串扰、码元传输速率限制
V 为 一个码元携带的比特位数
香农定理
适用条件:理想情况下有噪声干扰、避免码间串扰、码元传输速率限制
奈式准则与香农定理 例题
数据链路层
装配成帧(透明传输)
字符计数法
字节填充法
在数据中遇到帧头帧尾 在前面夹ESC````
遇到ESC在前面加ESC
esc键的ascii码十进制表示为27
比特填充法
帧头帧尾 01111110
数据遇到5个1就在后面加一个0
违规编码法
利用曼切斯特、差分曼切斯特编码特性、表示非法编码作为帧头 帧尾
差错控制
检错编码
奇偶校验
举例: 010101
奇校验 `0`010101 (加0为奇)
偶校验 `1`010101 (补1为偶)
CRC校验
例如 : 传输数据为 1101 0110 11 生成多项式为 10011 多项式 4 3 2 1 0 (x^n + ....)
解: 生成多项式最高位 2^4 则阶r=4 1 0 0 1 1
* 在传输数据后面追加[r]个零
计算:同为0 异为1 异或运算
1100 00 1010
/-------------------
10011 / 1101 0110 11 0000
1001 1
--------------------
0100 11
100 11
--------------------
10 11 0
10 01 1
--------------------
10 100
10 011
--------------------
1110 (FCS 帧检验序列)
校验方法
接收方在 传输的数据后追加FCS,使用生成多项式进行同样的操作
如果余数为 0 则帧检验无误
纠错编码
海明码校验
海明不等式
2^r >= k+r+1
距离: 传输数据 D=101101
则海明校验码长度为 2^r >= 6+r+1 min(r)=4
二进制位 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010
数据位 1 2 3 4 5 6 7 8 9 10
代码 P1 P2 D1 P3 D2 D3 D4 P4 D5 D6
实际值 1 0 1 1 0 1
如何求 P1 P2 P3 P4 呢?
看P1 即2^0 找0位与其相同的数据位 同为 0 | 异为 1
即 P1⊕D1⊕D2⊕D4⊕D5=0
0 1 0 1 0 =0
依次求出 P1 P2 P3 P4
接收方怎样纠错?
例如
P1⊕D1⊕D2⊕D4⊕D5=1
P2⊕D1⊕D3⊕D4⊕D6=0
P3⊕D2⊕D3⊕D4=1
P4⊕D5⊕D6=0
二进制: 1010 B = 5 D
则 说明 D5 有错
流量控制 (滑动窗口)
- 目的
解决的问题 接受速度与发送速度匹配问题
减少传输出错与资源浪费
- 简单停止等待协议
发送方每发送一帧就等待接收方的确认、即发送就等待确认
具有超时重传特性 : 即超过RTT 没有接收到确认 则再次重传
缺点 : 发送方浪费太多时间、大部分时间都花在了RTT时间上了,信道利用率太低
- 计算信道利用率与信道吞吐率
信道利用率 =(L/C)/T
L
: T时间内发送比特数量
C
: 发送方数据传输率
T
: 发送周期
注意事项: 关于T的计算与(L/C)的计算 三种协议有所不同
关于 L/C的计算 通常 (L/C) = 帧长/发送速率
退后N与选择重传协议需要与其发送窗口大小相乘 需要会计算算窗口大小
T的计算 (L/C)+2t t为传播延时
如果使用了捎带确认
则T =(L/C)*2+2t
信道吞吐率= 信道利用率*发送方的发送速率
-
退后N帧协议
窗口大小 <=2^n -1n为序号个数
-
选择重传协议
窗口大小 <=2^(n-1)n为序号个数
-
例题
- 计算退回N 需要多少个序号
介质访问控制 多路复用
- 静态划分
1.1 频分多路复用
多个节点之间使用不同的频率 互不干扰
1.2 时分多用
每个节点只能在自己能发的时间片内发送
1.3 波分多路复用
每个信道采用不同的波长
1.4 码分多路复用(重点)
每个站点有自己的芯片序列
例如
站点一 -1 1 -1 -1 1 -1 (1为1 -1为0)
站点二 1 1 1 1 1 -1
站点发送1 则发送芯片序列 发送0 则发送芯片序列的反码
两向量正交
站点一 发送 0
站点二 发送 1
则 1 -1 1 1 -1 1
1 1 1 1 1 -1
相加
2 0 2 2 0 0
解码 -1:发送了0 1:发送了1 0:没有发送
站点一 [2 0 2 2 0 0]*[-1 1 -1 -1 1 -1] =(-2-2-2)/6=-6/6=-1 => 0(即发送了0)
站点二 同理
动态划分
ALOHA协议
想发就发、出错超时重传
CSMA协议
>载波监听
先听再发、出错超时重传
CSMA/CD协议
>载波监听 冲突检测
先听再发、边传边听即进行碰撞检测、出错后根据情况重传
(最小帧长 / 数据传输速率) >= 2T
最小帧长 = 2T * 数据传输率
发生碰撞则 什么时机再进行发送
r=[0,1,3,…,2^k - 1] max( k )=10
回避时间 r*2T max( r )=16
注:以太网最小帧长为64B
例题:计算最小帧长
例1、在1km长电缆、建立1GB/s的网络、电缆信号速度为200000km/s
求最小帧长?
答:
最小帧长 >= 数据传输率 * 2T
(1GB/s)*2*(1km/200000km/s)
例2、帧传播速度 10Mb/s 距离2.5km 信号传播速率 2*10^8 m/s
求最短帧长
答:
最短帧长 >= 数据传输率 * 2T
(10Mb/s)*2*(2.5km/(2*10^8 m/s))
CSMA/CA协议
>载波监听 冲突避免
使用于无线局域网络
先检测就没有人在发 没有则发送 自己要发的信号 得到接受方确认 然后就可以发了
为什么要有CSMA/CA?
对于无线局域网而言
无法做到360度 全面检测
隐蔽站:当A C 同时检测不到信号、都认为信道空闲、同时向B发送数据就会造成冲突
CSMA/CA工作原理
1、发送方检测信道是否空闲
2、如果空闲则发送RTS
3、接收方收到RTS、发送CTS
4、发送方接收到CTS后、开始发送数据帧
轮询介质访问控制
- 轮询协议
主节点依次询问 其他节点要不要发 当被询问才能发 - 令牌协议
通过特定硬件 传递令牌 拥有令牌才能发送
MAC帧协议 (直接去看协议分析
题目)
- 通常指以太网MAC帧 采用CSMA/CD介质访问控制 曼彻斯特编码
最小帧长:64B
MAC帧格式
6 6 2 46~1500 4 字节
| 目的地址 | 源地址 | 类型 | 数据(IP数据报) | FCS |
- 无线局域网MAC帧格式 802.11
MAC帧头
2 2 6 6 6 2 6
| 帧控制 | 生存周期ID | 地址1 |地址2 | 地址3 | 序列控制 | 地址4 |
地址1:AP1
地址2:AP2
地址3:目标mac地址
地址4:源mac地址
PPP协议
协议 (Point-to-Point Protocol)
拨号基本都是PPP协议
仅支持全双工链路
协议不需要满足的需求
纠错
流量控制
序号
不支持多点线路
协议三个组成部分
- 将IP数据报封装到串行链路
- 链路控制协议LCP:建立并维护数据链路连接
- 网络控制协议NCP:PPP支持多种网络层协议、每个网络层都要一个NCP配置。
HDLC协议
目标:简答
网桥
网桥、交换机、路由器 可以隔离 冲突域
网桥帧转发 算法 Hash表映射
网络层
报文交换与分组交换
分组交换效率更高
例
源报文10000bit 链路传输速率 10000bps
分组 每组10bit
经过两个交换设备
报文交换
10000bit/1000bps=10s
10s*3=30s
分组交换
10bit/1000bps=0.01s
10+0.01s*2=10.02s
数据报方式与虚电路方式
数据报方式 为 网络层 提供无连接服务
不同的分组、可能经过的传输路径不同、不事先分配固定路径
虚电路方式 为 网络层 提供连接服务
为分组的传输分配路径、然后使用确定好的路径、系列分组传输路径相同、传输结束后拆除连接。
路由算法与路由协议
静态路由与动态路由
动态路由
OSPF (链路状态路由算法)
RIP (距离向量路由算法)
RIP
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 固定时间交换一次、如果长时间没有接收到则认为相邻节点挂了、更新自己的路由表
距离向量题要会算
目标 距离 下一跳
- 距离向量路由算法 例题
OSPF协议 (必须掌握 迪彻斯卡拉 单源最短路径算法)
广度优先进行扩散
重点掌握最短路径算法
算法:每一步都选距离起点最近的节点、并检查此节点到没有走过的与其相邻的节点是否可以利用、优化相邻节点的距离。
- 例题
BGP协议 (期末大概率不考)
每个网络有自己BGP发言人、有发言人向其他路由进行传递消息
IP数据报 格式 (直接看协议分析题)
0 4 8 16 19 24 31
| 版本 | 首部长度 | 分区服务 | 总长度 |
| 标识 |标志 | 片偏移 |
| 生存时间 | 协议 | 首部检验和 |
| 源地址 |
| 目标地址 |
| 可选字段| 填充 |
数据部分
标志位 X DF MF DF 0/1 禁止分片/允许分片
MF 0/1 后面没有分片了(最后一片)/ 后面还有
偏移量:此片的第一位相对于整体数据开始的差 即偏移量
IP划分
重点记住 A B C类网络号的长度 以及开头的0 、10、110
重点记住在子网划分时 子网络号不能全为0 或者 全为1
期末考试考试几率不大 如果有选择题可能容易考察
NAT网络地址转换
因为IP公网IP地址有限 则 连接内网和外网、
私有IP发送数据要找个代理(共有IP)用其IP地址将数据与外面公网进行收发
通过子网划分的配和 同一个公网IP地址可以 供多个子网进行使用
子网划分
网络号 | 主机号 |
网络号 |子网号 | 主机号 |
子网号是否可以全零全一看情况
主机号不能全零或者全一
子网掩码
子网掩码就是配和IP地址计算出 子网地址的
子网最大数量与什么有关系 IP地址的从右向左数 到非零为止的位数 可以进行子网的划分
以知IP地址为 144.14.72.24 子网掩码为 255.255.192.0
求 网络地址
128 64 32 16 8 4 2 1
--------------------|----------------
1 1 1 1 1 1 1 1
IP地址 144.14.72.24/18
1 0 0 1 0 0 0 0 . 0 0 0 0 1 1 1 0 . 0 1 0 0 1 0 0 0 . 0 0 0 1 1 0 0 0
子网掩码 255.255.192.0
1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
与运算-------------------------------------------------------------------------
1 0 0 1 0 0 0 0 . 0 0 0 0 1 1 1 0 . 0 1 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
结果 144 . 14 . 64 . 0
子网号为 : 144.14.64.0
- 例题 (IP/子网掩码 求下一跳问题)
- 例题 (设计题、子网划分)
重点:- A B C类IP地址的网络号位数 8 16 24
- 子网号不能全为0 或者 全为 1
- 子网主机号 不能全为0 或者 全为 1
ARP协议(可能靠简答题)
简略回答:ARP是一种高速缓存技术、将MAC地址与网络IP地址形成映射、 保存到自己本机、解决更好的解决下一跳走哪里的问题
传输层
知识点
端口号
端口号为16bit 共有65536个端口号
0~1023 熟知端口号
1024~49151 没有熟知进程使用
49152~65535 动态选择的端口号
TCP UDP
TCP:可靠传输 可以分段
UDP:不可靠传输 不可以分段
TCP 报文 (主要用于报文分析题目 不要盲目死记)
TCP 三次握手与四次挥手
三次握手
第一步: 客户端发送连接请求报文段,无应用层数据
SYN=1 seq=x(随机) 并
第二步: 服务端为TCP连接分配缓存和变量、并向客户端响应 确认报文段、允许连接,无应用层数据
ACK=1 SYN=1 seq=y(随机) ack=x+1
第三步: 客户端为TCP连接分配缓存和变良,向服务端响应确认、可以携带应用层数据
ACK=1 seq=x+1 ack=y+1
四次挥手 连接释放
第一步:客户端发送连接释放请求
FIN=1 seq=u
第二步: 服务器响应确认报文
ACK=1 seq=v ack=u+1
第三步: 服务端发完数据,就发出连接释放报文、主动关闭TCP连接
FIN=1 ACK=1 seq=w ack=u+1
第四步: 客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,
连接彻底关闭
ACK=1 seq=u+1 ack=w+1
TCP流量控制
拥塞控制算法
作用 : 试探网络传输能力
慢开始 拥塞避免
快重传 快恢复
例题 (拥塞算法)
报文分析 (记住就完了)
来自己练一下下面这个
应用层
知识点
- 域名与DNS解析
- 邮件STMP 与 POP3
STMP发邮件 25端口
POP3协议收邮件 110端口 - FTP
TCP控制连接请求 21端口
文件传输 20端口 - HTTP协议 (请求报文与响应报文)
应用层综合题目
当我们感觉有压力时、是因为我们想变得更优秀、这时间好事! 没比较和别人比、毕竟自己快乐才重要是吧。 祝君好运!