部分图片可能无法显示,参考:https://zhuanlan.zhihu.com/p/701248397
961网络基础知识总结
一 计算机网络概述
1. 计算机网络定义与分类
定义:计算机网络就是一些互连的,自治的计算机系统集合 。
计算机网络分类
作用范围角度:广域网WAN,局域网LAN
传输技术角度:点对点网络,点对点网络
是否采用分组存储转发 与路由选择 机制是点对点网络与广播网络的重要区别,广域网基本都属于点对点网络
拓扑结构角度:星形网,环形网,总线网络,网状网络(比较不规则的拓扑结构)
使用对象角度:公用网,专用网
数据交换方式角度
电路交换网络 :在源节点与目标节点之间建立一条专用的通路用于传送数据,数据传输包括建立连接,传输数据,断开连接三个阶段。最典型的就是传统电话网络。
报文交换网络:将用户数据加上源地址,目标地址和校验码等辅助信息封装成报文,整体一块传送,通过相邻节点一步步存储-转发,直到目标节点。这种方式缺点在于接收方不能预先知道报文大小。
分组交换网络:将用户数据加上源地址,目标地址和其他辅助信息,然后进行适当分组,通过相邻节点一步步存储-转发,直到目标节点。现在主流的网络都采用这种方式。
2. 计算机网络体系结构
实体 (entity):任何可发送或接收信息的硬件或软件进程
协议 (protocol):控制两个对等实体进行通信的规则的集合
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服 务(service);要实现本层协议,还需要使用下层所提供的服务
同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP
(Service Access Point)
网络协议的三要素:语法 ,语义 ,同步 。语法,即数据与控制信息的结构或者格式;语义,即需要发出何种控制信息,完成何种工作以及做出何种反应;同步,即事件实现顺序的详细说明。
协议数据单元PDU (Protocol Data Unit):对等层次之间传送的数
据单位
物理层PDU:比特
数据链路层PDU:帧
物理层PDU:分组
传输层PDU:报文
重要常识:
- 数据压缩,加密解密,编码等在OSI中为表示层
- OSI参考模型在网络层支持面向连接和面向无连接的通信,但在传输层仅支持面向连接的通信;TCP/IP模型认为可靠传输时端到端的问题,因此网际层仅有一种无连接的通信,但在传输层有面向连接和面向无连接的通信。
3. 计算机网络的性能
4. 网络标准化工作及相关组织
因特网的所有标准都以RFC(Request For Comments)的形式在因特网上发布。但并非每个RFC都是因特网标准,RFC要上升为因特网正式标准需经过以下四个阶段:
- 因特网草案(Internet Draft):这个阶段还不是RFC文档。
- 建议标准(Proposed Standard):这个阶段开始就称为RFC文档
- 草案标准(Draft Standard)
- 因特网标准(Internet Standard)
国际上,有众多的标准化组织负责制定,实施相关网络标准。以下是几个知名组织:
二 物理层
1. 通信系统模型
系统角度:源系统 ,传输系统 ,目的系统 ,系统是工具
信息论角度:信源 ,信道 ,信宿 ,主要操作对象是信息
物理设备角度:发送器 ,电磁信号 ,接收器 ,主要操作对象是数据
调制解调器:参与发送与接收,主要操作对象是信号,实现信号转换
数据是信息的载体
若干基础术语
消息的实体:数据
信号分为模拟信号 和数字信号 两大类
在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形称为码元
码元速率与数据速率
分别对应比特率 和波特率
工作模式
基带信号和带通信号
2. 数字与信号转换
转换分三类:数字到模拟 ,数字到数字 ,模拟到数字 ,注意不存在模拟到模拟数据(计算机内离散化存储,不可能存在模拟信号或模拟数据这种连续性的东西)
数字信号到模拟信号
数字数据到数字信号
模拟信号编码为数字数据
常见于对音频的模拟信号编码为计算机存储的二进制数字数据
主要三个步骤:采样,量化,编码
3. 信道理论极限速率计算
奈奎斯特定理
理想信道
C = 2 H log 2 V C = 2H{\log _2}V C=2Hlog2V
H:信道带宽,Hz
V:电平级数
C:极限速率,bit/s
香农公式
有噪信道
C = H log 2 ( 1 + S / N ) C = H{\log _2}(1 + S/N) C=Hlog2(1+S/N)
dB单位的信噪比计算公式
V = 10 log 10 ( S / N ) V = 10{\log _{10}}(S/N) V=10log10(S/N)
4. 物理层的四个特性
5. 物理传输介质
物理传输介质可分为导向性传输介质 和非导向传输介质
导向性传输介质:双绞线,同轴电缆,光纤
光纤可分:单模光纤 ,多模光纤 ,单模光纤传输特性比较好,但造价高
早期的以太网采用双绞线进行布局,因为双绞线相对便宜
非导向性传输介质:无线电波,微波,红外线,激光等等
6. 信道复用技术
频分复用(FDM---Frequency Division Multiplexing)
时分复用(TDM---Time Division Multiplexing)
波分复用(WDM--Wavelength Division Multiplexing)
码分复用(CDM--Code Division Multiplexing)
统计时分复用(STDM--Statistic TDM)
正交频分复用(OFDM--Orthogonal Frequence Division multiplexing)
频分复用
每个频率做一条信道
时分复用
每个时间片做一条信道
波分复用
码分复用
S码片与T码片的规格化内积
比如码片0110表示1,那么其反码1001就表示0,使用了扩频技术。
正交频分技术
使用了多种正交的频,比如可以相位与振幅正交集合。比如无线局域网就使用了正交频分复用。
统计时分复用
由于站点并不是每时每刻都在使用资源,所以使用频分复用技术,会浪费频率;使用时分复用技术,会浪费时间帧,故有改进统计时分复用,结合两者。
每个数据块附上源地址和目的地址,以区分发送方与接收方;集中器具有缓冲功能,集齐一个STDM帧的数据块后发送
7. 数字传输系统
主要两种技术:PCM脉码调制系统,SDH同步数字体系
PCM用于电话交换网络,实现模拟信号到数字数据转换,采用时分复用技术 ,有欧洲体制和北美体制两种,中国使用欧洲体制(大概很古老的历史了)。该技术已经被淘汰,没啥考点。
SDH主要用于解决光纤传输的技术,也是淘汰的技术
8. 宽带接入技术
主要三种技术:xDSL技术,HFC技术,FTTx技术
FTTH使用的传输介质是光纤,F指光纤 。
xDSL技术仍然使用传统电话线
HFC光纤同轴混合网,采用光纤和同轴电缆混合布局
三 数据链路层
1. 数据帧的基本结构
MTU:最大传输单元(Maximum Transmission Unit)
2. 数据帧的差错控制
主要了解三类码:奇偶校验码 ,汉明码,CRC校验码
检错编码:奇偶校验码(n-1位信息位,1位校验位),CRC校验码
3. 数据帧的传输协议
滑动窗口概念:发送窗口 ,接收窗口 ,数据帧 ,确认帧 ,帧序号
停止等待协议 :接收方每收到一帧,都向发送方返回一个应答帧;发送方每发送一帧,都等待来自接收方的应答帧
特点:发送窗口=1,接收窗口=1,确认帧丢失会造成无限等待,信道利用率低
后退N帧协议 :GBN协议,发送方发送多个连续帧,接收方按序接收帧,每收到一帧应答确认帧
特点:发送窗口>1,接收窗口=1,中间某帧丢失,之后的帧都需要重传,浪费资源
选择重传协议 :SR协议,接收端总会缓存所有收到的帧,当某个帧出现错误时,只会要求重传这一个帧
自动重传协议 :ARQ协议,具有超时重传功能的协议,可与前面三种协议结合
高级的数据帧传输协议:PPP协议,HDLC协议
常在广域网使用的链路层协议 :PPP协议,HDLC协议
常在局域网使用的链路层协议 :
以太网:IEEE 802.3
无线网:IEEE 802.11
令牌环网(已经淘汰的技术,了解即可)
4. 点对点PPP协议
同步传输:零比特填充
异步传输:字符填充
字符填充就是特定字符作为帧边界,在数据中出现则用转义字符进行区分
PPP协议大致工作流程
LCP链路实现的是物理层(下层)与数据链路层的交互
NCP链路实现的是网络层(上层)与数据链路层的交互
5. CSMA/CD协议
传输速率:发送数据的速率
传播速率:信号传输的速率
传播时延:总线长度/传播速率
争用期:两倍传播时延
最小帧长= 争用期 × \times × 数据传输速率
协议的核心是冲突检测 ,而CSMA/CA是冲突避免,冲突后执行二进制退避算法
6. 局域网技术
局域网的拓扑结构
常见拓扑结构:星形网 ,环形网 ,树形网 ,总线网
局域网通常使用广播信道,需要解决介质访问控制问题。访问控制一般分为随机访问 和受控访问,CSMA/CD为随机访问,令牌环网为受控访问
局域网的网络地位
局域网是互联网的终端网络,是用户能直接接触到的实际网络
局域网的分层
局域网的地址
局域网的地址为MAC地址
互联网内,依据IP地址作为主机的唯一标识;局域网内,依据MAC地址作为主机的唯一标识
局域网内,以MAC地址作为接收发送数据的地址,出了局域网到达互联网,就以IP地址作为接收发送数据的地址。两者层次是不同的,MAC地址工作在数据链路层,IP地址工作在网络层。
按照IEEE802.3标准,给每个主机分配唯一的MAC地址,MAC地址为48 bit,高24bit为厂商标识符,低24位由厂商自行分配 ,须保证每个网络接口具有全球唯一的MAC地址。MAC地址也叫物理地址 。
对使用了MAC地址的数据帧,我们称之为MAC帧 。现代网络,MAC帧基本等同于数据帧。
MAC地址存在于数据帧的首部
7. 网络互连设备
主要的设备:网桥 ,交换机 ,中继器 ,集线器 ,路由器
交换机利用源MAC地址进行学习
物理层扩展局域网
数据链路层扩展局域网
8. 有线局域网
主要是以太网
以太网的物理层
最初的以太网为总线结构,采用50Ω同轴电缆,传输速率10Mbps
缺点:总线上单点故障会导致全网瘫痪,网络中结点数较多时可靠性较差且维护困难;同轴电缆成本较高
后发展为采用更便宜和灵活的非屏蔽双绞线,使用集线器(HUB)连接各个结点,物理上呈星形结构
采用曼彻斯特(Manchester)编码
以太网的数据链路层
以太网采用CSMA/CD介质访问控制协议
按照IEEE802.3标准,给每个结点分配唯一的MAC地址
MAC地址为48 bit,高24bit为厂商标识符,低24位由厂商自
行分配,须保证每个网络接口具有全球唯一的MAC地址
结点发送数据时,以太网总线结构,总线上的所有结点都能收到帧
适配器每收到一个帧就检查帧中的目的MAC地址,如
果是发往本站的帧则进行处理,否则丢弃
高速以太网
9. 无线局域网
MAC层是数据链路层的一个子层,向下与物理层交互,与帧的协调传送最密切相关
四 网络层
1. 网络层提供的两种服务
2. IP协议体系
3. ICMP协议
ICMP报文:差错报告报文 和询问报文
差错报告报文
- 终点不可达报文
- 超时报文
- 源点抑制报文
- 参数问题报文
- 重定向报文
询问报文
- 回声探测报文
- 请求时间报文
应用
Ping使用了ICMP协议的回声探测报文;Tracert使用了ICMP协议的超时报文
4. IGMP协议
IGMP协议用于组播技术
组播由来
单播技术-->多播技术
组播特点
- 工作在网络层,使用IP协议族中的IGMP协议进行通信
- 组播标识符采用D类IP地址(IPv4),地址前四位1110
- 组播作用于目的地址,源地址无效,不产生ICMP报文
- 组播分网际组播和硬件组播,范围差别:互联网,局域网
组播工作
- 本地主机发送IGMP报文,目的地址为组播地址
- 本地组播路由器接收报文,通知其他组播路由器
- 本地组播路由器周期性探询组播关系,实时更新
注:组播路由器共同构成组播转发树
5. ARP/RARP协议
认识
- 用于IP地址/MAC地址转换
- 广播ARP请求,单播应答
过程
- 本机ARP高速缓存查MAC地址,查不到转2
- 广播ARP请求,等待单播应答获取MAC地址
注:IP地址不在局域网,MAC地址填网关地址
6. IP地址分类
采用点分十进制表示法;物理地址与网络地址;全0表自己,全1表所有
地址划分方法
- 五类地址
- 划分子网
- 构造超网
相关概念:子网掩码,子网号,CIDR地址块,路由聚合
地址分类
- A类地址:前缀0,网络号8位
- B类地址:前缀10,网络号16位
- C类地址:前缀110,网络号24位
- D类地址:前缀1110,用作组播地址
- E类地址:前缀1111,保留使用
私有地址
- A类:10.0.0.0-10.255.255.255
- B类:172.16.0.0-172.31.255.255
- C类:192.168.0.0-192.168.255.255
7. 网络地址转换NAT
网络地址转换NAT(Network Address Translation):实现互联网地址与局域网地址转换
互联网地址一般称作公网地址,局域网地址称作私网地址,NAT就是实现公网地址与私网地址的转换。
举例说明
8. IPv6协议
IPv6的表示:采用冒号十六进制记法 ,允许0压缩,如68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
IPv4是点分十进制记法
9. IP数据报
网络层的协议数据单元PDU是IP数据报
IPv4分组的格式
版本:指版本号4
首部长度 :占4位,一行首部4字节(32位),至少5行共20字节,最多15行共60字节
区分服务:未使用该字段
总长度 :占16位,2字节,首部和数据长度之和,最大 2 16 − 1 2^{16}-1 216−1字节,但不能超过数据帧的最大传送单元MTU(一般1500字节)
标识 :占16位,总长度超过数据帧的MTU时,将无法单个递给数据链路层,需要分片,同一类分片用一个数字序号标识
标志 :占3位,第一位空白,第二位为DF(Don't Fragment),第三位为MF(More Fragment),DF为0表示允许分片,MF=1表示还有分片
片偏移 :13位,当分组过大被迫分片后,对每个分片进行编号,编号放在片偏移上,这样标识+片偏移组合即可保证分片工作进行
生存时间 :TTL,8位,初始一个值n,每经过一个路由器减1,直到为0丢弃,目的为防止分组在网络上无限传播下去
协议 :8位,数据部分应交付的协议号,如TCP=6,UDP=17
首部校验和:8位,校验分组首部
分片思想举例
10. 路由算法及协议
GGP:网关协议,分内部网关协议IGP,外部网关协议EGP
EGP:典型协议有BGP
IGP:典型协议有RIP,OSPF
路由选择算法分为两大类:静态路由算法 (一般人工配置),动态路由算法 (一般机器配置)
两类典型的动态路由算法:距离向量路由 算法,链路状态路由 算法。RIP属于距离向量路由算法,OSPF属于链路状态路由算法
RIP协议(Routing Information Protocol):属于内部网关协议,动态路由协议。基于距离向量的路由选择协议,两个路由之间的距离定义为1,路由器到本网的距离定义为1,距离等于16即认为无穷大,目标网络不可达,相邻路由器之间定期进行信息交换,协同合作确定路由路径,完成路由器的工作。
OSPF协议(Open Shortest Path First):属于内部网关协议,动态路由协议。基于链路状态的路由选择协议(所谓链路是路由路径的一种专业描述),利用特定的方法(比如传输时延)定义两个路由之间的链路代价,工作时全部路由器自动同步链路数据库,以此协同合作确定路由路径,完成路由器的工作。
BGP协议(Border Gateway Protocol):属于外部网关协议,动态路由协议。自治系统至少选出一个发言人(即代表路由器),代表该自治系统下的路由器,与其他自治系统的代表路由器共同工作,路由选择合适路径。自治系统间的路由选择一般是树形结构,层次分明,不存在环形路径。
11. 路由器与路由表
路由器是连接两个或多个网络的硬件设备,具有路由选择 和分组转发 的功能
路由表的结构
路由过程
12. RIP协议
RIP大致工作描述
- 路由器R启动,初始化空白的路由表
- 找出直接相连的网络,定义距离为1
- 给其他的路由器发送RIP报文,报告自己的路由表;接收其他路由器RIP报文,更新自己的路由表
- 循环执行3,两次执行之间设一定的时间间隔
对步骤3收到的RIP报文,可以了解到其他路由器的路由表情况,再对比自己的路由表,更新路由选择路径(即若其他路由器若存在更好的路由路径,则采用其他路由器的路径,以此不断优化),经过一段时间后,整个网络实现了收敛
RIP报文使用传输层的UDP协议传送
距离向量路由的基本思想
RIP协议的缺点
- 最大距离为15,限制了网络规模
- 路由器间交换完整路由表,若网络规模大,则开销变得巨大
- 网络故障时慢收敛,坏消息往往传得慢
13. OSPF协议
OSPF分组类型
链路状态路由的基本思想
OSPF工作描述
当链路状态发生变化时,结点会以洪泛方式告知所有网络中其他所有结点
OSPF采用IP数据报传送 ,不涉及高层
对于相同代价的链路,进行负载平衡
五 传输层
1. 传输层功能及提供的服务
传输层,上承应用层,下启网络层,主要作用是将上层(应用层)的数据进行处理封装后,递交给下层(网络层),并在此过程中实现一定的网络收发控制(比如网络流量控制)。
传输层 vs. 网络层
- 网络层实现主机之间的逻辑通信,主机到主机通信
- 传输层实现应用进程之间的逻辑通信,端到端通信,进程到进程的通信
- 端到端通信,涉及复用(multiplexing)和解分(demultiplexing),类似信道复用
传输层的主要协议
传输层主要有两个协议:TCP,UDP
TCP协议 (Transmission Control Protocol):可靠传输协议 ,即保证可靠交付报文段
UDP协议 (User Datagram Protocol):不可靠传输协议,即不保证可靠交付报文段
传输层的逻辑定位
设A主机IP地址为192.168.3.1,B主机IP地址为192.168.3.2。为区分不同的传输层连接,在IP地址的基础上,划分了端口号,如这两台主机的进程(比如浏览器进程)约定了使用3669端口建立一个TCP连接
由此便实现了传输层连接(TCP或者UDP)的唯一标识。换句话说,端口是传输层提供区分上层应用进程的手段。报文段也是依据IP地址+端口号实现了准确定位传送。端口号是16位的二进制数,占2字节
进程之间的通信
2. UDP协议的基本概念
UDP 只在 IP 的数据报服务之上增加了很少一点的功能:传输层端口 和差错检测 ,为不可靠传输协议 ,但具有自身特点,与TCP分别面对不同的应用
UDP在发送数据之前不需要建立连接,支持一对一、一对多、多对一和多对多的交互通信,使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制 。
3. TCP协议的报文格式
首部一行4字节,共32位,固定有5行20字节,和IPv4类似的结构。
TCP首部字段解释
源端口,目的端口:通信双方的端口号 ,比如HTTP服务的TCP端口号为80
序号字段 :在TCP连接中传送的数据流中的每一个字节都有序号,序号字段指本报文段所发送的数据的第一个字节的序号,以字节为单位
确认号字段 :期望收到对方的下一个报文段的数据的第一个字节的序号
注:TCP连接是全双工,通信双方可互相发送数据,因此应答与数据一同发送给对方,此为捎带确认
数据偏移 :4位,首部长度,单位是32位字(4字节),也就是一行首部的长度
保留字段:6bit,保留
紧急URG:1bit,为1时,紧急指针字段有效,表明有紧急数据,应尽快传送
确认ACK :1bit,为1时,确认号字段有效;为0时,确认号无效
推送PSH:1bit,为1时,接收方将尽快向应用进程交付此报文段,而不是等到整个缓存填满
复位RST:1bit,为1时,表明TCP连接出现严重差错(如由于主机崩溃),须释放连接后重新建立连接
同步SYN :1bit,为1时,表示这是一个连接请求或连接接受报文
终止FIN : 1bit,为1时,表示要求释放TCP连接
窗口大小 :2字节,用来让对方设置发送窗口的依据,单位为字节
紧急指针:2字节,指出本报文段中紧急数据共有多少个字节(紧急数据放在数据的最前面)
选项:长度可变,最长40字节,例如最早定义的一种选项:最大报文段长度MSS(Maximum Segment Size)
填充字段:为了使整个首部长度是4字节的整数倍
4. TCP协议的可靠传输
TCP可靠传输的实现主要依靠滑动窗口 和超时重传 机制。
滑动窗口与超时重传,保证了数据段传输不重复 ,不丢失 ,不差错 ,按序到达 。
TCP对待发送的数据按字节 进行编序
TCP每发送一个报文段,就对这个报文段设置一次计时器,如果超时,重传该报文。
TCP的滑动窗口
TCP基于滑动窗口协议实现可靠传输和流量控制,滑动窗口以字节为单位
TCP的超时重传
TCP每发送一个报文段,就对这个报文段设置一次计时器,如果计时器设置的重传时间到,但还没有收到确认,就要重传该报文段。
超时时间的设置是一个复杂的问题,IP层提供数据报服务,每个数据报所选择的路由都可能有变化,导致传输层的往返时间变化较大。
TCP采用一种自适应算法计算超时重传时间:加权平均往返时间RTTs
注:RTT---Round Trip Time
超时重传时间RTO(Retransmission Time-Out)
RTO应该略大于RTTs(可以思考为什么)
采用如下公式计算:
5. TCP协议的流量控制
流量控制就是让发送方的发送速率不要太快,使接收方来得及接收
利用滑动窗口机制 可以很方便地在 TCP 连接上实现流量控制
如果告知对方窗口大小的包丢了,或者主打将对方窗口置0,有可能会发生零窗口僵局,采用如下机制解决
若单个数据段数据太少,则整体传输效率一般就比较低,需要采取措施尽量避免这种情况发生
6. TCP协议的拥塞控制
拥塞控制的一般方法
慢启动算法
拥塞避免算法
快重传和快恢复算法
7. TCP协议的连接管理
三次握手:TCP连接建立;四次挥手:TCP连接释放
TCP过程:连接建立-->数据传送-->连接释放
三次握手:A主打向B建立连接
A发送报文:ACK=0,SYN=1
B回应报文:ACK=1,SYN=1
A再次回应:ACK=1,SYN=0
四次挥手:A与B各自释放单方面连接
A关闭:ACK=1,FIN=1
B回应:ACK=1,FIN=0
数据单方面还能传递
B的关闭也是一样
六 应用层
1. 套接字编程
网络子系统作为操作系统的一部分,以应用编程接口(API---Application Programming Interface)的形式向应用程序提供调用接口,套接字(socket)是最常用的应用层编程接口
客户端 (Client)与服务器 (Server)交互图
编程函数
调用流程
UDP关键步骤 :绑定端口,传输数据,关闭
TCP关键步骤 :建立连接,传输数据,关闭连接
注:服务器需要先绑定端口然后持续进行监听是否有客户端请求连接
2. 域名系统DNS
对域名 的解析称为域名解析 ,完成任务的是域名解析系统
域名系统DNS(Domain Name System)是Internet使用的命名系统,多个域名服务器上运行专门的域名服务器程序,完成域名-IP地址 的解析(resolve)
DNS基于UDP协议实现 ,应用进程需要进行域名解析时,就调用域名解析程序 (resolver),它成为DNS的一个客户端,向本地域名服务器发送域名解析请求(UDP报文),其中包含待解析的域名,本地域名服务器在查找域名后,返回应答报文,其中包含对应的IP地址。
域名系统DNS是分布式的,以更好地满足广大网络用户域名解析需求,提高网络效率。
Internet的域名结构
域名服务器
域名解析过程
有两种主要的查询方式:迭代查询 和递归查询
注:主机本身也有一个DNS高速缓存,对曾经访问过的域名进行记录,之后就不需要向本地域名服务器进行DNS查询了
3. 文件传送协议FTP
FTP的连接
其他补充
- 一般情况下,21是控制端口号,20是数据端口号
- FTP匿名用户名为:anonymous,是一个特殊的ID
4. 万维网WWW
万维网WWW(World Wide Web)是基于客户端/服务器方式的信息索引技术和超文本技术的综合。
统一资源定位符URL(Uniform Resource Locator)
超文本传送协议HTTP
HTTP的请求与响应
5. 电子邮件
邮件协议
发送邮件的协议:SMTP (Simple Mail Transfer Protocol)
读取邮件的协议:POP3 (Post Office Protocol 3)和IMAP(Internet Message Access Protocol)
发邮件的实际过程
邮件系统的实体
邮件格式
MIME---Multi-purpose Internet Mail Extension,处理邮件附件使用