导图社区 计算机网络
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
编辑于2022-06-01 17:05:47计算机网络
物理层
基本概念
信源,信道,信宿
信号
基带信号
直接在数字信道上传输
基带传输
一般使用时分复用
宽带信号
调制形成模拟信号(例如FDM),在模拟信道上传输
宽带传输, 又称频带传输
宽带传输一般使用频分复用
码元速率与信息速率
码元速率即波特率
信息速率即比特率
Nyquist与Shannon定理
Nyquist指出无噪信道波特率上限为2WlogN
Shannon指出含噪信道信息速率上限为Wlog2(1+S/N)
编码
归零编码RZ
每个周期中间跳到0
非归零编码NRZ
高电平为1
需要专门时钟线
非归零逆转NRZI
周期结束跳变为0,不跳变为1
USB2.0
曼切斯特编码
下降沿1,上升沿0
以太网
需要两倍带宽(传输率为50%)
4B/5B编码为80%
差分曼切斯特编码
前半码元与上一周期后半码元相同为1
周期中间会自动跳变
电路交换,报文交换,分组交换
数据传送时间计算
传输延迟=路由器延迟*路由器数+链路延迟*链路段数
发送延迟=Length/BW
如果是报文交换或分组交换需要加上首部开销
电路交换还需要连接建立时间S
特点
电路交换不具备差错控制能力
OSI模型
会话层使用校验点保持通信同步
数据报与虚电路
虚电路
永久型虚电路
预先设定
永恒存在
交换型虚电路
临时,一旦会话结束就消失
注意,虚电路也是分组交换
虚电路建立时不需要预分配带宽,每个虚电路分组使用全部带宽
虚电路建立时需要进行路由选择,运行时使用VCID转发
数据报
在出错率高的系统中应使用数据报
电路交换无差错控制
虚电路方式需要大量的连接重建时间
可靠传输与差错机制
有差错检测的不一定是可靠传输
考虑数据丢失的情形
介质
双绞线
屏蔽双绞线STP
非屏蔽双绞线UTP
模拟传输用放大器放大信号,数字传输用中继器整形
同轴电缆
50Ω同轴电缆
用于基带传输
75Ω同轴电缆
用于宽带传输
光纤
多模光纤
单模光纤
直径细
衰减小
接口特性
机械特性
描述接头的形状和尺寸,引线数目和i排列
电气特性
指明什么样的电信号表示0和1
功能特性
接口部件的信号线(数据线、控制线、定时线等)的用途
由于指出哪些是数据线,因此确定了总线宽度
例如某引脚高电平的含义
规程特性
接口部件的信号线在建立、维持、释放物理连接和传输比特流的时序
又称过程特性
中继器与集线器
放大器放大模拟信号,中继器再生数字信号
集线器接收到数据后,会在所有其他端口广播
在某层(直接)互联时,某层及某层以下的协议必须相同,高层可以不同
注意当高层协议不同时, 高层不互联
K层设备能够支持K层以下的网络差异,但要求高层协议相同
这里的K层设备起到网间互联的效果, 两个网络分别与该设备互联,而不与另一个网络互连
CDMA
计算正交时使用的是归一化码片序列,如果码片是01序列的话,要转化为-1/1的序列
链路层
组帧
字符计数法
帧头部有一个帧长度字段
一旦出错双方就失去同步
字符填充法
转义
零比特填充法
HDLC中,以0X7E作为帧定界的标志(帧头尾各有一个7EH)
性能比字符填充法好
违规编码法
适合有冗余码字的编码
校验
Hamming码
2^n >=n+k+1
若要区分两位错还是一位错,需要增加额外的全校验位
奇偶校验
不管是奇校验还是偶校验,都只能发现奇数位错误
CRC码
流量控制协议
停等
双方窗口都为1
1bit编号
滑动窗口
回退N
接收窗口为1
有序接收
发送方最大窗口为2^n-1
累计确认
选择重传
默认发送方窗口与接收方窗口相等
接收窗口不大于发送窗口
发送方最大窗口为2^(n-1)
否定确认NAK
立即重传被否定帧
逐个确认
自动重传请求ARQ
防止帧丢失
稍待确认导致重传帧的确认号与丢失帧不一定相同
捎带确认
明确一点,链路层信道是全双工的,确认帧不占用发送信道
信道吞吐率计算
先计算传输周期
在传输周期内发送K个帧时的利用率为 K * t / T, t时发送时延, T是传输周期
吞吐率=利用率x发送带宽
介质访问控制子层MAC
静态划分
信道划分MAC
FDM
适合模拟信号
需要保护频带,不能占满带宽
TDM
适合数字信号
时隙不一定被完全利用
STDM
CDM
CDMA的码片正交
WDM
光纤的FDM
动态划分
随机访问MAC
ALOHA
自由发送,随机重发
G是待发送帧数,吞吐率为Ge^(-2G), 最大约18.4%
时隙ALOHA(分槽ALOHA)
吞吐率为Ge^-G
最大36.8%
CSMA
基于信道侦听
1-坚持
持续侦听,空闲即发送
p-坚持
持续侦听,空闲时以概率p发送,否则推迟
需要分槽支持
既能像非坚持那样减少冲突,又能像1-坚持那样减少空闲时间
非坚持
侦听到信道非空闲时随即等待
CSMA/CD
一旦发现碰撞,就中断传输,发送48bit的拥塞信号
碰撞后使用二进制指数退避
离散整数集合为[0, 2^k-1]
k=min(重传次数,10)
随机取一个集合中的数乘以争用期即为退避时间
重传16次不成功就丢弃帧并向上层报告
争用期/碰撞窗口
中间主机最小(0.5RTT),两侧主机最大(RTT)
最小帧长
RTT*带宽
以太网规定为51.2us
使用电压变化来侦听信道
CSMA/CA
指数退避
与CSMA/CD不同的是,除非是第一帧,否则立即退避一次
ACK
RTS/CTS
预约信道
发送数据时会广播自己的通信时间
侦听方式
能量检测
载波检测
载波能量混合检测
轮询访问MAC
令牌环
令牌在逻辑信道上传递
拥有令牌者能发送一帧或继续传递
适合高负载信道
局域网
拓扑结构
结构
环形结构
星型结构
总线型结构
星型与总线型的复合结构
典型例子
以太网
逻辑拓扑
总线型
物理拓扑
星型或拓展星型
令牌环
逻辑拓扑
环型
物理拓扑
星型
FDDI
逻辑拓扑
环形
物理拓扑
双环型
另一个环在故障时备用
传输介质
介质访问控制方式
总线型局域网
CSMA/CD
令牌总线
环形局域网
令牌环
以太网
传输介质
10BASE5
10指10Mbps
BASE指基带传输
5指500m段长
10BASE-T
T指双绞线
最大段长为100m
尽最大努力交付
最小数据长度46B,最大数据长度1500B
对应64B的帧以及1518B的帧
从10GB以太网开始完全采用全双工,不再有争用问题
同轴电缆最长500m,对应10BASE5
以太帧的类型域小于1500时为报文长度,大于1500时为类型号
全双工以太网没有争用问题,因为任何一段线路都是全双工的
使用1-坚持CSMA/CD
802.11
有固定基础设施WLAN
基本服务集BSS
包括一些主机与基站
服务集内的主机可互相通信
基站又称接入点(AP)
基本服务集可以通过主干分配系统连接到别的服务集
基本服务集可以通过门桥连接到非802.11网络
802.11 MAC
CSMA/CA
早期后退
如果最近没有发送帧且信道空闲,直接发送
当最近发送过帧后,一旦发现信道空闲了DIFS,就启动计数器
当倒计时时信道被占用,暂停;占用结束继续计数
倒计时完毕立即发送帧
又称为DCF
帧间隔
第一次发送帧等待DIFS
之后等待SIFS以便尽早完成传送
自组织网络
帧结构
令牌环网
数据帧与令牌都是沿逻辑环传递
发送方负责将数据帧从网络中取下
获得令牌后只可发送一帧
广域网
主要工作在网络层
点到点
PPP协议
链路控制协议
用于建立链路
网络控制协议
用于支持多种网络层
不同网络层需要不同NCP
成帧方法
帧结构
首尾7EH分界
地址FFH,控制字段03H
必须是整字节
可以无负载,不同于以太网的46B
因为只支持点对点线路
最长也为1500B
只支持全双工链路
只检错不纠错, 不可靠,无序号和确认机制
用软件实现
默认使用字节填充法
但是在SONET/SDH等同步链路中使用比特填充
HDLC协议
面向比特流
全双工
有编号,可靠传输
配置
平衡配置
双方都是复合站,发起数据传输不需要对方允许
非平衡配置
存在主站控制链路工作
数据操作方式
正常响应
非平衡
在主站允许后, 从站响应传输
异步平衡
平衡
异步响应
非平衡,从站可不经主站允许进行传输
帧结构
地址字段
非平衡填从站
平衡填应答站
帧分类
无编号帧
监督帧
信息帧
ISU
Information,supervision, Unnumbered
802.11数据帧格式
子类型
ToAP
注意地址1恒为直接接收方,地址2为直接发送方, 地址3为间接接收/发送方
地址1
BSSID
地址2
SenderAddr
地址3
ReceiverAddr
FromAP
地址1
ReceiverAddr
地址2
BSSID
地址3
SenderAddr
IBSS
WDS
网桥与交换机
透明网桥
自学习
有记录转发
无记录广播
收到帧时学习
MAC表的内容
源主机地址
交换机端口
帧最后一次到达的时间
当这个时间超过阈值时,说明没有使用该项,删除
每次接收到新的帧就用新到达时间更新
生成树算法
不是最佳路由
源路由网桥
源站用发现帧确定路由,此后的帧携带路由信息
最佳路由
使用广播法寻找所有到目的站的路径,原站选择其中的一条最佳路由
交换机
直通式交换机
只检查目的地址(延迟=6B/带宽)
不支持不同速率端口交换
存储转发式交换机
VLAN
分割广播域
如果两个VLAN间需要进行通信,需要借助路由器
由802.1Q支持
在类型号前增加一个0x8100以及VLAN ID字段
有确认的无连接服务
指目的主机需要确认帧,但发送主机没有建立连接
即流量控制协议
子层
MAC子层
对应MAC协议
LLC子层
逻辑链路控制子层,对应LLC协议
位于MAC协议之上
复用与分用
当存在多个网络层协议时,LLC通过SAP,在链路层与网络层间建立逻辑链路来完成分用,因此得名
网络层
路由算法
静态路由算法
静态路由表
动态路由算法
距离-矢量算法
每次传送整个路由表
路由回路问题
根本原因是慢收敛
路由信息协议RIP
度量:跳数
间隔路由器的数量+1
直连距离为1
距离=16时不可达
限制了网络规模
15个路由器
只与相邻路由器交换整个路由表
180s后路过没收到相邻路由器的路由表,将相邻路由器视为不可达
应用层协议
UDP
慢收敛
链路状态路由
定期将自身的链路状态传播给所有其它节点
最短路算法计算最优路由
开放最短路径优先协议OSPF
使用泛洪法发送自身链路状态
网络层协议
度量任意
分组类型
问候分组
每隔一定时间相邻站交换问候
用来发现哪些站可达
数据库描述分组
发送自身链路状态的摘要
链路状态请求分组
请求详细链路状态
链路状态更新分组
泛洪
链路状态确认分组
对链路更新进行确认
层次路由
内部网关协议(IGP)
OSPF将自治系统划分为更小的区域
OSPF每次交换路由表的一部分
外部网关协议(EGP)
边界网关协议BGP
应用层协议
TCP
报文
打开报文
更新报文
保活报文
通知报文
第一次交换整个路由表,之后仅交换有变化部分
路径矢量路由
交换的可达性信息是到达目标网络的路径
IP
IPv4
分组头部
前20B固定
版本字段
IPv4/IPv6
协议字段
表示payload的协议
0x06 TCP
0x11 UDP
标志位
More Fragment(MF)
标志字段最低位
Don't Fragment
标志字段中间位
长度单位
首部长度X4
总长度X1
片偏移X8
标识
拥有同一个标识的分组属于同一个数据报
校验和
仅计算首部内容
分片计算
分片后的前几个帧一定满足数据长度为8的倍数
IPv4地址
规则
地址按照前缀码原则分类
网络号全0表示本类网络
导致IPv4的128.0, 192.0.0两个段无法使用
主机号全0表示本网络
主机号全为1表示本网络的广播地址
又称直接广播地址
127.0.0.0为环路地址,不出现在网络上
255.255.255.255为受限广播地址
A类网络
网络号8位,最高位为0
主机号24位
实际可分配网络号为01H-7EH
B类网络
网络号16为,高两位为10
128.0不可分配
C类网络
网络号24位,高三位为110
192.0.0不可分配
D类网络
组播地址,高4位为1110
并非所有D类地址都是组播地址
E类网络
高4位为1111,保留地址
内部网段
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
按照对应分类划分为网络号/主机号,网段内所有IP不出现在互联网上
NAT
NAT转换表
优缺点
NAT转换表项由管理员添加,当无表项时,丢弃报文
子网划分
RFC950规定子网号不能全0或全1
但CIDR标准下是可用的
子网掩码
CIDR
IP地址/网络前缀所占比特数
路由聚合与最长前缀匹配
ARP
在网络层IP到IP的传输必须由链路层实现
ARP提供手段获取IP对应的MAC地址
MAC地址全1为链路层广播帧
当访问不同网段时,ARP会请求默认网关的MAC
默认网关在网络层重新封装数据包
网络层协议
应试(
RARP
作用与DHCP协议相似
网络层协议
主机广播自身的MAC地址,当同网络上的RARP服务器接收到此消息后,会检查自身的RARP表,如果存在表项,就将对应IP发送给主机,主机就获得了IP
由于事实上工作在链路层,不能跨越路由器,因此已被淘汰
数据报传输
DHCP
ICMP
网络层协议
ICMP差错报告报文
终点不可达
源点抑制
网络拥塞,抑制源点使其降低速率
时间超过
TTL=0
参数问题
改变路由
不发送差错报文的情况
组播
差错报告报文本身
后续分片数据报
特殊地址
ICMP询问报文
回送请求和回答报文
时间戳请求和回答报文
掩码地址请求和回答报文
路由器询问和通告报文
Ping
回环地址有响应表示TCPIP协议正常
本机IP有响应表示网卡正常
局域网内IP有响应表示局域网内线路(网络接口)正常
IPv6
地址空间变大了
IPv6地址表示法
任播
不允许分片
头长度为8B倍数
最小40B
最大64K+40B
只有Payload Length
组播
IGMP
组播地址的后23位构成MAC地址的后23位
MAC地址开头为01005E
移动IP
广播风暴是由频繁发送广播帧引起的
传输层
熟知端口号
FTP21
TELNET23
SMTP25
DNS53
TFTP69
HTTP80
SNMP161
复用与分用
分用指接收端的应用层分用传输层信号
复用指发送端应用层重复利用传输层
UDP
校验和计算
伪首部
补成偶数字节
校验错误后可以丢弃或继续交付
二进制反码和
将这些机器码相加,如果高位溢出则加到低位
这被称作end-around carry
指将所有半字视为反码机器数,然后利用反码加法求和
反码加法
双正数时直接相加,无carry bit
一正一负
正数的绝对值较大
两者反码相加,carry bit加到LSB
负数的绝对值较大
两者反码相加,无carry bit
双负
两者反码相加,carry bit加到LSB
头部8B
TCP
面向字节流,需要定界
首部是4B的整数倍
应用层请求发送的字节等于负载大小之和
不是序号之差+最后一个报文负载大小
三次握手
SYN=1, seq=x
x随机生成
SYN=1,ACK=1,ack=x+1,seq=y
y随机生成
ACK=1,seq=x+1,ack=y+1
四次挥手
FIN=1,seq=u
ACK=1,ack=u+1
FIN=1,ack=u+1,ACK=1
收到服务器的包后主机计时并关闭
ACK=1,ack=w+1
服务器收到主机ACK后关闭
流量控制
拥塞窗口,发送窗口与接收窗口
发送窗口=min(拥塞窗口, 接收窗口)
TCP tahoe
慢开始
每接收一个包,cwnd+1
相当于每个RTT,cwnd*=2
cwnd在慢开始中不会超过慢启动阈值ssthresh
拥塞避免
每个RTT+1
超时时cwnd=1,ssthresh=cwnd/2
TCP reno
快重传
连续三个冗余ACK
收到四个相同确认包时触发
快恢复
cwnd=ssthresh=cwnd/2
收到重复确认时使用
应用层
网络应用模型
C2S
服务器不需要事先知道客户端的地址
P2P
DNS
性质
UDP
C2S
层次域名空间
顶级域名(com)等
域名服务器
根域名服务器
管理顶级域
顶级域名服务器
管理该顶级域内所有的二级域名
授权域名服务器
拥有一个区域DNS记录的域名服务器
总拥有其管辖主机的DNS记录
本地域名服务器
负责处理主机的DNS请求
主机向本地域名服务器查询使用递归查询
本地域名服务器从根域名服务器开始迭代查询记录
FTP
控制端口21
控制连接在FTP会话断开前一直保持
类似于控制线,只传输控制信号
文件列表是数据
数据端口20
注意这些是服务器端口,客户机使用的端口是任意的
用户代理
用户与邮件服务器的接口
比如网页版邮箱
常常使用HTTP协议
邮件服务器
使用C2S方式工作
但是每个服务器既是C又是S
协议
SMTP
端口25
POP3
用于读取收件箱
端口110
密码明文
HTTP
用于用户代理向服务器发送信件,或从服务器读取信件
WWW
HTTP
HTTP/1.1支持持久连接
流水线
整个网页1RTT
非流水线
每个元素至少需要1RTT
请求报文中的Connection字段
close表示非持久连接
keep-alive表示持久连接
HTTP/1.1默认使用持久连接
非持久连接每个网页元素都要建立一个
导致每个元素至少需要1RTT
基本文档需要一个RTT
常用请求报文
POST
给服务器添加信息
GET
获取URL标识的信息
HEAD
获取URL表示的信息首部
不会返回数据体
CONNECT
用于HTTP代理
URL
HTML
CGI
指网页服务器前后端的接口
注意:应用层使用TCP将导致第一次数据传输在1RTT后开始
拥塞控制与流量控制
流量控制
指连接速率在双方可以接受的范围内
拥塞控制
需要综合考虑网络的情况,使得连接速率在整个网络的承受范围内
网络层
流量感知路由
准入控制
流量调节
抑制包
逐跳后压
显式拥塞通知
负载脱落
随机早期检测
网络层拥塞控制与服务质量是不同概念
链路层没有拥塞控制, 有流量控制
TCP/IP与OSI的区别与联系
TCP/IP的数据接口层近似为物理层+链路层
提供的服务
网络层
TCP/IP
IP协议只提供无连接服务
OSI
包括无连接服务和面向连接服务
传输层
TCP/IP
提供无连接和面向连接服务
OSI
仅提供面向连接服务
协议
链路层
MAC协议
ALOHA
分槽ALOHA
非坚持CSMA/1-坚持CSMA/p-坚持CSMA
CSMA/CD
CSMA/CA
广域网协议
PPP
负载是IP数据报
HDLC
网络层
ARP
ICMP
ICMP报文作为IP数据报的负载
Ping工作在应用层,但是不使用TCP/UDP,直接使用ICMP
tracert工作在网络层
IGMP
与ICMP类似
OSPF
直接使用IP报文
传输层
UDP
TCP
NAT
应用层
DHCP
因为使用了C2S模型,只有应用层有此模型
广播,UDP
RIP
UDP
BGP
TCP
DNS
UDP
FTP
TCP
SMTP
TCP
POP3
TCP
HTTP
TCP
PDU
协议数据单元: Protocol Data Unit
指对等层次之间传递的数据单位
PDU地址即某层数据使用的传输地址
物理层
比特
链路层
帧
网络层
数据报/包
传输层
段
应用层
数据