原文链接:408-theory-Computer Network
ComputerNetwork计算机网络
计算机网络体系结构
概述
概念
计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路
连接起来,由功能完善的软件实现资源共享和信息传递的系统
- 广义观点:能够远程信息处理或资源共享的系统
- 资源共享观点:要求资源共享,分布不同地域,遵循统一规则
- 用户透明性观点:为用户自动管理资源的网络操作系统
组成
从组成上看:
硬件:主机 通信链路 交换设备 通信处理机
软件: 网络工具软件
协议: 网络传输的规则协议
工作方式:
边缘部分:用户主机
核心部分:通过路由器连接共享的网络以及路由器功能组成:
通信子网(实现通信)和资源子网(共享资源)
功能
- 数据通信
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
分类
分布范围
- 广域网WAN 几十千米到几千千米 高速链路 交换技术
- 城域网MAN 几个街区甚至整个城市 以太网技术
- 局域网LAN 几十米到几千米的区域 广播技术
- 个人区域网PAN 个人工作的地方 无线技术
传输技术
- 广播式网络 1对多
- 点对点网络 1对1
拓扑结构
- 总线
- 环
- 星
- 网
使用者
- 公用网
- 专用网
交换技术
- 电路
- 报文
- 分组
传输介质
- 有线:双绞线,同轴电缆,光纤
- 无线:蓝牙,无线电,微波
标准化
因特网的所有标准都以RFC (Request For Comments)的形式在因特网上发布,但并非每个RFC都是因特网标准
4个阶段:
- 因特网草案 NOT RFC
- 建议标准 RFC
- 草案标准
- 因特网标准
组织:国际标准化组织(ISO) 国际电信联盟(ITU) 国际电气电子工程师协会(IEEE)
性能指标
带宽Bandwidth
最高数据传输速率 比特/秒(b/s)
时延Delay
总时延=发送+传播+处理+排队
发送=分组/信道宽度 传播=长度/传播速率
时延带宽积
链路中最大存在的数据量
时延带宽积=传播时延*信道带宽
往返时间Round-TripTime RTT
指从发送端发出一个短分组,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延
吞吐量
指单位时间内通过某个网络(或信道、接口)的数据量
速率
信道上传送数据的速率
信道利用率
信道中存在数据的时间比率
服务访问点:每层协议能够实现定位的接口,如物理层是网卡接口,网络层是IP地址
广域网和局域网不仅仅按范围划分,还按使用技术划分
体系结构和模型
网络分层结构
计算机网络的各层及其协议的集合称为网络的体系结构
设计原则:
- 功能相对独立,降低复杂度
- 界面清晰,方便理解,交流较少
- 各层功能定义精确,下层为上层使用服务
- 分层促进标准化工作
网络各层传输的为协议数据单元(PDU),PDU由服务数据单元(SDU)和协议控制信息(PCI)组成
概念
协议
规则的集合,由语法、语义和同步组成
语法:规定数据格式
语义:需要完成的功能
同步:发出、完成动作和应答的方式内容,决定条件和时序关系一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口
同一结点内相邻两层间交换信息的连接点,每层只能为紧邻的层次之间定义接口,不能跨层定义接口。同一结点相邻两层的实体通过服务访问点(Service Access Point, SAP)进行交互。服务是通过SAP提供给上层使用的
服务
下层为紧邻的上层提供的功能调用(垂直)(可见的)
服务原语:请求,指示,响应,证实
协议是同一层次实体(水平)的规则,服务是垂直的
服务方式
- 面向连接服务与无连接服务:是否需要先建立连接
- 可靠服务和不可靠服务:数据是否能正确可靠传送
- 有应答服务和无应答服务:接收方收到数据后是否自动给出应答,文件传输服务为应答服务,WWW服务为无应答服务
网络模型
ISO/OSI模型
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP模型
- 应用层
- 传输层
- 网际层
- 物理层
比较
相似:
- 都使用分层体系简化结构
- 都是独立协议栈
- 都能够解决异构网络连接
差异:
- OSI精确定义了服务、协议和接口概念,TCPIP模糊
- OSI通用性好,但是功能划分混乱,TCPIP按协议划分功能,适用性差
- TCP/IP模型在设计之初就考虑到了多种异构网的互连问题,并将网际协议(IP)作为一个单独的重要层次
- OSI在网络层支持无连接和连接通信,传输层只有连接通信。TCPIP在网际层只无连接,在传输层支持无连接和连接。
物理层
通信基础
概念
定义
- 数据 信号 码元
- 信源 信道 信宿
- 单向 半双工 全双工
- 速率 波特 带宽(最高速率)
奈氏准则(奈奎斯特定理)
过高频率产生的码间串扰会降低传输速率,给出极限传输速率。
cond:理想低通信道
W:理想低通信道带宽,2W为码元极限传播速率
V:每个码元离散电平数
该条件下极限数据传输速率=$2Wlog_2^{v}$
香农定理
给出了存在噪声情况下的极限传输速率。
cond:带宽受限且有高斯白噪声干扰的信道
W:信道的带宽
S:信道所传输信号的平均功率
N:信道内部的高斯噪声功率,S/N:信噪比
该条件下极限数据传输速率=$Wlog_2^{1+S/N}$
编码 调制
编码
归零编码
低高电平表示01,高电平每次都要进行归0
非归零编码
不归0
反向不归零编码
初始信号01正常,信号反转为0,不反转为1
曼彻斯特编码
先高后低为1,先低后高为0,频带宽度加倍
差分曼彻斯特编码
曼彻斯特编码,为0不变,为1反转(1信号前半与上个信号后半相同)
4B/5B编码
数字转模拟
- ASK幅移键控 变幅
- FSK频移键控 变频
- PSK相移键控 变相
- QAM正交振幅调制 同时调幅调相
模拟转数字
对音频信号的脉码调制
采样定理(奈奎斯特定理):原始信号中的最大频率为f1,采样频率f2>f1才能保证信号完整。
流程:
- 采样 获得离散样本点
- 量化 将电平幅度分级转为目标数值
- 编码 将量化后数据编码
模拟转模拟
频分复用(FDM),对模拟信号升降频率
数据交换方式
电路
在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径,传输期间一直被独占,直到通信结束后才被释放。
优点:
- 时延低
- 有序传输
- 无冲突
- 范围广
- 实用性强
- 控制简单
缺点:
- 建立连接时间长
- 线路独占,利用率低
- 灵活性差
- 难以规格化
报文
数据交换的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用的
是存储转发的传输方式。
优点:
- 无需连接
- 动态分配线路
- 提高线路可靠性
- 实现多目标服务
缺点:
- 报文增加传输过程的时延
- 报文大小无限制
分组
报文划分
优点:
- 无建立时延
- 利用率高
- 速度快
- 减少出错重发
缺点:
- 存储时延
- 传输额外信息,降低通信效率
- 会产生失序丢失重复问题
数据报 虚电路
数据报
虚电路
传输介质
双绞线
铜线 绝缘层 屏蔽层 聚氯乙烯套层
STP屏蔽双绞线 UTP无屏蔽双绞线
价格低
同轴电缆
内导体 绝缘层 外导体屏蔽层 绝缘保护套层
基带同轴电缆:50Ω基带数字信号,宽带同轴电缆:75Ω传送带宽信号
抗干扰,价格较贵,可高速传输
光纤
纤芯 包层
单模光纤(长距离) 多模光纤(短)
损耗低,中继长,远距离经济,抗干扰强,无串音,保密好,体积小,重量轻
无线介质
- 无线电波:WLAN
- 微波2〜40GH
- 卫星通信
- 红外和激光:将信号调制后直接空气中传播
物理接口特性
- 机械:形状尺寸引脚数量
- 电气:电平电压
- 功能:对电气特性解释
- 过程:规程特性,不同功能对应事件
设备
中继器
将信号整形再生,放大。阻止失真衰减。要求中继的网络速率相同
中继器个数有限
放大器针对模拟信号,中继器针对数字信号
集线器hub
多个端口连接,对信号整形放大和转发作用。
半双工工作
增大碰撞域,多个设备不能同时工作
数据链路层
功能
为网络层提供服务
无确认无连接
不建立链路,不回复确认,适应误码率低场景如以太网
有确认无连接
不连接但是有确认回复,未收到确认重传,适用误码率高,如无线通信
有确认有连接
建立链路并确认,适用高通信要求场景
链路管理
数据链路层连接的建立、维持和释放过程
帧定界 同步 透明传输
HDLC协议中标识位F (01111110)标识帧边界。
MTU最大传送单元:帧的数据部分长度
流量控制
对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量。不同层流量控制对象不同。
限制发送速率不大于接收速率
差错控制
ARQ法解决位错:使用CRC循环冗余校验,并使用ARQ自动重传请求方式重传错误帧。
引入定时器与帧编号解决帧错
在帧的传输中,错误分为帧和单个帧的位出错
帧错:是帧之间丢失 重复 失序
位错:单个帧的内容出错
帧组成
字符计数法
帧头部使用一个计数字段来标明帧内字符数
如果计数字段出错,帧边界划分出错,会传输错误
首尾定界符法:字符填充
使用控制字符SOH表示帧的开始,EOT表示帧的结束
使用转义字符ESC实现透明传输,二次转义转义字符为转义字符
首尾标志法:零比特填充
发送时01111110表示帧界,当出现5个1时就插入0,接收则反过来
性能优于字符填充法
违规编码法
对于物理层编码存在冗余信号即未定义的编码的可以定义为帧的边界符。IEEE 802标准就采用了这种方法
差错控制
检错
奇偶校验码
n位数据第n位为校验码,保证总和为奇数或偶数,如果结果不同,出错。
不能检测偶次出错,以及确定位置。
循环冗余码
商定一个除数r阶(r+1位,首位非0),传输数据m阶加上r个0,模2除计算余数,加到末尾。
当检验除的结果为0表示正确,否则出错。
纠错
海明码:每种检验组和对应一个数据,通过异或检验是否出错。
差错产生原因:热噪声-信道固有,随机差错-通过提升信噪比减低;冲击噪声-电磁干扰,突发差错-无法通过提升信噪比减低
海明码2d+1纠错,d+1检错
流量控制、可靠传输
滑动窗口机制
停止等待
发送1帧等待应答后再发送 传输效率很低
滑动窗口连续发送
发送和接收窗口大小相同,发送后,被接收,发送确认,双方向前滑动,再次发送。
- 停止等待协议:发送接收都为1
- 后退N帧协议:发送>1,接收=1
- 选择重传协议:发送接收都>1
接收窗口=1保证帧有序
窗口大小固定
可靠传输机制
确认
可以使用捎带确认提高效率
超时重传
自动重传请求(Automatic Repeat reQuest, ARQ),停止等待,后退N帧,选择重传。后两种为连续ARQ
停止等待协议
一次发送一个帧,ack为0重传,帧错误超时重传
后退N帧协议
- 连续发送帧,顺序确认,当未确认超时,发送确认后面的所有帧。
- 可以实现累积确认
- 当收到无序帧时需要丢弃并重发确认帧防止确认帧丢失
- n位确认码最多确认2^n-1个,保证留一个状态表示一个都没确认
选择重传协议
- Wt发送窗口,Wr接收窗口,超时重传
- 需要发送否定帧,且要保证能分辩是新帧还是重传帧,Wt=Wr=2^(n-1)
- 需要缓冲区存放无序帧,大小为接收窗口
- 发送窗口大小+接收窗口大小<2^n
信道利用率:有效数据所需要的时间占整个发送周期的比率
信道吞吐率:信道利用率*发送速率
介质访问控制
介质访问控制层:决定广播信道中信道分配的协议
静态划分
频分复用FDM
时分复用TDM
- 同步时分多路复用TDM:固定分配时间
- 异步时分多路复用STDM:动态分配时间
波分复用
码分复用
- CDMA码分多址:分配正交编码:不同码内积为0,相同为1,反码为-1
- 频谱利用率高、抗干扰能力强、保密性强
- 需要的频率高发送数据量是原来的编码位数倍
动态划分
ALOHA
- 纯ALOHA
- 时隙ALOHA
CSMA 载波监听多路访问
- 坚持CSMA:空闲发,冲突继续监听
- 非坚持CSMA:空闲发,信道忙放弃监听,等待随机事件再监听
- p坚持CSMA:空闲时有概率p发,1-p概率迟到转下一轮,冲突继续监听直到空闲。
CSMA/CD 载波监听多路访问/碰撞检测
- 先听后发,边听边发,冲突停发,随机重发
- 定义最小帧长,最小帧长=总线传播时延x数据传输速率x2。保证在发送完成前能检测到碰撞。该段时间为争用期
- 碰撞时,使用截断二进制指数退避算法
CSMA/CA
CSMA/CD可应用有线连接的局域网,CSMA/CA应用无线网络
无线网络下碰撞检测难以实现,信号弱不稳定,存在隐蔽站
碰撞避免策略:
- 确认后才能继续发送下一帧
- 完成发送后,需要短时间监听才能发送下一帧(帧间间隔IFS)。安装发送帧类型屈辱等待间隔:
- SIFS短 分隔属于一次对话的各帧
- PIFS中等 在PCF操作中使用
- DIFS长 用于异步帧竞争访问的时延
- 当且仅当检测到信道空闲且这个数据帧是要发送的第一个数据帧时,才不使用退避算法。其他所有情况都必须使用退避算法
RTS和CTS处理隐蔽站问题
轮询访问
通过令牌在网中循环,同一时刻只允许一个主机占用信道。
局域网
概念
特点:
- 一个单位所有,地理站点有限
- 共享带宽
- 低时延低误码率
- 关系平等
- 广播组播
三要素:
- 拓扑结构:星形,总线,环形,星形总线结合复合型结构
- 传输介质:双绞线,铜缆,光纤
- 介质访问控制方式(最主要):csma,令牌总线,令牌环
以太网子层:LLC逻辑链路控制(作用不大),MAC层(介质访问控制子层)
网卡:外部与通信网络串行通信,内部与IO总线并行
以太网
MAC帧
MAC帧地址6个字节,前3个为厂商代码,后3个厂商分配,MAC地址不重复。
DIX Ethernet V2协议:
- 7字节前导码,1字节帧开始定界符10101011,6字节目的地址,源地址,2字节类型,46-1500字节数据,4字节校验码FCS(用32位循环冗余码)
- 数据部分由于CSMA/CD中通过最小争用期计算最小帧大小64B,得到最小数据46B,并限制最大1500B。
IEEE 802.3:
- 类型部分变为数据长度,即46-1500,1501-65535用于类型段标识符
IEEE 802.11(无线):
- 具体协议如图
- 其中地址部分4个地址字段都是MAC地址,最后一个用于自组网络。a1为接收地址,a2为发送地址,a3为源目地址
- 帧去AP=0,来自AP=1,则a1为目的地址,a2为AP地址,a3为源地址
- 帧去AP=1,来自AP=0,则a1为AP地址,a2为源地址,a3为目的地址
高速以太网
- 100Base-T
- Gbit
- 10Gbit
无线局域网
有固定基础设施无线局域网
- AP:接入点
- mac层使用CSMA/CA协议
- 最小构件是基本服务集BSS(包括一个接入点和若干移动站)
- 必须为该AP分配一个不超过32字节的服务集标识符(Service Set IDentifier, SSID)即名字
- 无线局域网的基本服务区的范围直径一般不超过100m
- 可通过分配系统(Distribution System, DS)有限连接多个AP
无固定基础设施移动自组织网络
- 个主机平等
- 可使用自协议
VLAN
VLAN实现:物理位置和逻辑位置无关
通过交换机实现vlan划分,在实际主机与交换机使用标准以太网帧,而在交换机之间传播时使用802.1Q帧来识别vlan
网络 | 类型 | 介质 | 拓扑 | 编码 | 协议 | 速度 | 范围 | 补充 |
---|---|---|---|---|---|---|---|---|
10BASE5 | 有线 | 基带同轴电缆粗 | 总线 | 曼彻斯特编码 | IEEE802.3 | 10Mbps | 500m | |
10BASE2 | 有线 | 基带同轴电缆细 | 总线 | 曼彻斯特编码 | - | 10Mbps | 最大200m | |
10BASE-T | 有线 | 非屏蔽双绞线 | 星形 | 曼彻斯特编码 | IEEE802.3i | 10Mbps | 100m | |
10BASE-FL | 有线 | 光纤对(850nm) | 点对点 | 曼彻斯特编码 | - | 10Mbps | 2000m | |
高速以太网 | ||||||||
100BASE-T | 有线 | 非屏蔽双绞线 | 混合 | 4B5B | CSMA/CD协议 | 100Mbps | - | 既支持全双工,又支持半双工 |
GBit以太网 | 有线 | 光纤通道(3z) 4对UTP5(3ab) | 混合 | 8B10B | IEEE 802.3z IEEE 802.3ab | 1Gbps | - | 最大速率时使用全双工,半双工 |
10GBit以太网 | 有线 | 光纤 | 混合 | 64B66B | IEEE 802.3ae | 10Gbps | - | 仅支持全双工 |
无线局域网-带基础设施 | 无线 | 无线电波 | - | - | 802.11a/b/g/n | wifi | ||
无线局域网-自组织网络 | 无线 | 无线电波 | - | - | ||||
虚拟局域网 | - | - | - | - | 802.3ac支持扩展vlan,802.1Q | - | 在类型前扩展4字节vlan标签,最大帧长1522B |
以太网采样曼彻斯特机制进行时钟同步
相同mac地址设备无法正常通信
广域网
范围广
PPP协议
点对点连接传递数据
组成:链路控制协议LCP,网络控制协议NCP,信息部分(>0<1500)
PPP帧长度为整数字节数
帧格式:首尾1字节帧定界符7E,1字节地址符FF,1字节控制字段03,2字节协议可以表示不同协议采用不同网络控制协议,信息部分[0B,1500B](点对点通信,不需要最短帧长),2字节冗余码FCS
特点
- 差错检测不纠错,不可靠传输
- 仅支持点对点通信
- 全双工方式
- 支持不同网络层协议
- 比特填充
HDLC协议
数据链路层设备
网桥
隔离冲突域
交换机
多端口网桥,全双工方式,隔离冲突域
特点
- 使用端口连接设备,全双工工作
- 无碰撞传输
- 内部维护转发表,通过自学习算法建立
- 专用芯片,速度快
- 独占媒体带宽
类型
- 直通式交换机:直接转发,速度快,扩展低
- 存储转发交换机:可靠性高,速度慢
转发表 自学习算法
半双工是全双工总带宽一半,即原来每个设备带宽变为每对
网络层
everything over ip:所有功能都是基于ip实现的
ip over everything:ip能够在所有网络上实现
功能
路由转发
- 路由选择
- 分组转发
SDN
北向接口:SDN提供的编程接口
南向接口:SDN控制器和转发设备建立双向会话的接口
东西向接口:SDN控制器集群内部控制器之间的通信接口
优点:
- 全局控制,既能全局优化,又能高性能转发
- 可编程性
- 成本降低
缺点:
- 集中管理安全风险
- 网络规模受限
拥塞控制
- 开环控制:静态,事先考虑拥塞因素
- 闭环控制:动态,监测网络,在转发时进行选择
路由算法
静态路由算法 非自适应路由算法
手动配置,简便和开销较小
动态路由算法 自适应路由算法
自动配置,复杂但是动态可控,对拓扑结构易变网络适用
距离-向量路由算法
RIP算法:错误检测慢,仅与相邻结点交换
规定
算法
特点:
- 仅和相邻路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,如每隔30秒
优点:
- 实现简单、开销小、收敛过程较快
缺点:
- RIP限制了网络的规模,它能使用的最大距离为15 (16表示不可达)。
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
- 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”,使更新过程的收敛时间长。
应用层协议
使用UDP传输 端口520
链路状态路由算法
OSPF算法:开放最短路径优先协议
规定
算法
特点:
- 洪泛法更新
- 发送的信息是本路由器所知道的全部信息
- 链路变化更新
- 可根据业务计算不同路由表
- 多路径间的负载平衡
- 存在链路状态4B,序号越大越新
分类:
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组
- 链路状态确认分组
网络层协议
IP数据报传送
边界网关协议BGP
- BGP是应用层协议,它是基于TCP的
- 只能力求寻找一条能够到达目的网络且比较好的路由
层次路由
对网络分层管理
自洽系统内部网关协议IGP:RIP,OSPF
外部网关协议EGP:BGP
IPV4
分组
协议字段
字段 | 长度 | 作用 | 补充 |
---|---|---|---|
版本 | 4b | - | 广泛使用的版本号为4 |
首部长度 | 4b | 4B为单位,最大15* 4B,一半首部20B | |
区分服务 | 1B | ||
总长 | 2B | 单位字节,最大65536B,首部加数据不超过MTU | |
标识 | 2B | 表示一个数据报,分片标识相同 | |
标志 | 3b | 分片控制 | 低位MF=1后面还有分片,中间DF=0允许分片 |
片偏移 | 13b | 片在原分组位置 | 8B为偏移单位 |
TTL | 1B | 生存时间 | TTL每转发一次-1,为0丢弃 |
协议 | 1B | 传输层协议 | tcp为6,udp17 |
首部校验和 | 2B | 不校验数据部分 | |
源地址字段 | 4B | ip | |
目的地址字段 | 4B | ip | |
扩展部分 |
分片
- 标识相同
- DF=0,MF除最后为0,其它为1
- 片偏移为前面所有传输数据字节数/8,分片需要满足<=MTU-20,且为8整数倍
地址分类
- 4个字节,总共2^32个ip
- 分为ABCDE五类地址,每类地址包括一些默认地址
类型 | 网络段 | 主机段 | 特殊地址 | 可用网络数 | 可用主机数 | 补充 |
---|---|---|---|---|---|---|
A | 1-126(8) | 24 | 主机号全0全1 | 2^7-2 | 2^24-2 | 网络全0为本网络,全1为环回地址 |
环回地址 | 127 | |||||
B | 128.0-191.255(16) | 16 | 主机号全0全1 | 2^14 | 2^16-2 | |
C | 192.0.0-223.255.255(24) | 8 | 主机号全0全1 | 2^21 | 2^8-2 | |
D | 224-239 | 多播地址 | ||||
E | 240-255 | 保留地址 | ||||
32位全1 | 受限广播地址,本网络广播 | |||||
32位全0 | 本网络本主机 |
子网
子网划分
某个网络可以对自己的网络进行子网划分,增加灵活性
IP地址={<网络号>,<子网号>,<主机号>}
子网掩码
本质是将主机段高位部分作为子网段,用高位区分不同子网。每个主机IP与子网掩码按位与后得到子网的网络号
A、B、C类地址的默认子网掩码:255.0.0.0 255.255.0.0 255.255.255.0
无分类编址CIDR
CIDR构造超网,不使用单一的子网掩码,而通过网络前缀采用最大匹配方式,能够进行层次化,任意划分子网
IP = {<网络前缀>,<主机号>}
在匹配过程中会出现多个匹配结构,采用最长前缀匹配(最佳匹配)。
分组转发
路由器维护一个转发表,(目的网络,下一跳地址)。
特殊路由:
- 主机路由:单个IP一个路由,此时前缀码全1,必然最大匹配
- 默认路由:前缀码全0,若前面无匹配路由,则自动转发到默认路由
转发策略:
- 匹配主机路由
- 匹配其它路由
- 无匹配交付默认路由
- 无默认路由报告转发分组出错
ARP DHCP ICMP NAT
地址解析协议ARP
分组在转发时,虽然网络地址不变,但是每次转发的物理地址都会变化。
路由器维护一个ARP表,实现IP和MAC地址映射。
- 路由器A转发分组时,先通过路由表查找下一跳的IP地址,再查找ARP表中对应MAC地址。
- 找到直接发给对应地址主机。无则ARP广播MAC地址为FFFF-FF-FF-FF-FF,对应ip主机B收到后发送ARP响应分组。
- 此时A会更新ARP表加入B映射,B同时也会更新ARP表加入A
动态主机配置协议DHCP
是应用层协议,广播方式交互,有服务器分配客户端IP
网际控制报文协议ICMP
ICMP差错报告报文
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由
ICMP询问报文 - 回送请求和回答报文
- 时间戳请求和回答报文
- 地址掩码请求
- 回答报文、路由器询问和通告报文
ICMP应用:
- ping:回送请求和回答报文,工作在应用层,直接使用ICMP
- traceroute:时间超过报文,工作在网络层
NAT
专用网络地址转换为公用地址节省了IP地址的消耗,降低了内部网络受到攻击的风险。
路由器对私有地址分组不转发,需要安装NAT软件实现专用网与公用网的转换。
类型 | 私有网段 | 个数 |
---|---|---|
A | 10 | 1 |
B | 172.16-172.31 | 16 |
C | 198.168.0-192.168.255 | 256 |
- NAT软件维护一个NAT转换表,包括WAN和LAN对应公网地址和私网地址。路由器需要至少一个公网IP
- 发往公网的私网分组将源地址IP修改为转换表对应的公网IP
- 接收公网的分组将目的地址IP修改为转换表对应的私网IP
NAT-PT:单纯使用IP进行转换仍然效果较差,PT利用端口号组成套接字,增大了可用地址数量。实际上实现的效果是端到端的地址转换
IPV6
解决IP耗尽问题
特点:
- 更大的地址空间。IPv6将地址从IPv4的32位增大到了 128位。IPv6的字节数(16B)是IPv4字节数(4B)的平方。
- 扩展的地址层次结构。
- 灵活的首部格式。
- 改进的选项。
- 允许协议继续扩充。
- 支持即插即用(即自动配置)。
- 支持资源的预分配
- 不允许分片
- 安全性增加
地址
ipv6地址可以使用:
- 单播
- 多播:一对多,交付多主机
- 任播:发往多主机,交付1个主机
地址记法 4BF5:0:0:0:BA5F:39A:A:2176
部署
- 双协议栈:设备支持两种协议
- 隧道技术:只在线路两端使用IPV6数据报,在传输时使用IPV4数据报封装
IP组播
概念
组播即只发送一次就对一组地址发送数据。仅应用于UDP。使用IGMP协议
组播IP范围:224.0.0.0〜239.255.255.25
组播MAC范围:01-00-5E-00-00-00到01.00 5E 7F-FF-FF
用组播IP的后23位映射到MAC地址
地址
- 尽最大努力交付
- 组播地址只能用于目的地址
- 对组播数据报不产生ICMP差错报文
- 并非所有的D类地址都可作为组播地址
算法
- 入组
- 保活
- 构造组播转发树,转发
三种路由算法:1.基于链路状态的路由选择 2.基于距离-向量的路由选择 3.协议无关的组播
移动IP
概念
正确场景:在移动的过程中保持TCP连接
错误场景:通过DHCP自动获取IP
- 移动IP
- 本地代理
- 外地代理
通信过程
- 本地代理正常通信
- 移动到外地,外地代理分配一个转交地址,告知归属代理(原始所在网络),归属代理构建一个隧道,连接外地代理。
- 接收数据时归属代理发给外地代理交付移动站
- 发数据时直接用原始ip发给外地代理
- 再次移动时由新外地代理分配新的地址继续
- 回到归属网络时注销转交地址
网络层设备
冲突域 广播域
路由器
组成:交换结构,输入端口,输出端口
功能:分组转发,路由计算
传输层
概念
功能
- 实现不同主机的进程间逻辑通信
- 复用(不同进程使用同一个协议)和分用(传输层将数据报能正确交付对应进程)
- 差错检测
- 提供TCP(可靠) UDP(不可靠)两种方式
端口
端口标识进程,不同于硬件端口概念,传输层的SAP
端口号
通过端口号标识进程
16bit,65536个进程。
类型 | 范围 | 功能 |
---|---|---|
熟知端口号 | 0-1023 | 服务器端,核心进程使用的端口 |
登记端口号 | 1023-49151 | 登记的应用端口号,如3306 |
短暂端口号 | 49151-65535 | 临时端口 |
套接字
在计算机网络中唯一标识一个通信点
socket={IP:port}
UDP
概述
- 无需建立维护连接
- 首部开销小
- UDP无拥塞控制,速度稳定
- 支持多种交互通信
- 不可靠通信
应用场景:DNS,SNMP,要求稳定通信可容忍数据丢失情况
格式
- 源端口2B
- 目的端口2B
- 长度2B
- 校验和(无需校验时全0),有错即丢弃。2B
校验
- 首部+数据+12字节伪首部(4+4+1+1+2)(源IP+目的IP+0+17(协议)+udp长度)
- 保证数据为偶数字节,否则补充0
- 校验和先全0,按16位相加最后取反码即为校验和
- 只要保证求和结果全1即未出错
TCP
概述
- 面向连接
- 全双工
- 可靠交付
- 面向字节流,每个数据按字节编号
协议格式
如图,相比udp复杂
连接
3握手方法
释放
4握手方法
可靠传输
序号
确认
重传
拥塞控制
慢开始
拥塞避免
快重传
快恢复
传输层侧重通信数据传输过程
应用层
概念
客户服务器模型
服务器提供服务等待客户连接
特点:
- 地位不平等
- 客户机不直接通信
- 扩展性弱
应用:
- web
- ftp
P2P模型
任意计算机作为对等方直接相互通信
特点:
- 减轻服务器计算压力
- 多个客户机共享
- 可扩展性强
- 网络健壮性强
- 会造成网络拥塞
DNS Domain Name System
层次域名
域名组成:
- 不区分大小写
- 只允许“-”符号
- 每级域名不超过63字符,最大不超过255
- 低级域名在前
多级域名组成层次树状结构,一个域名唯一对应一个结点
域名服务器
- 根域名服务器
- 顶级域名服务器
- 授权域名服务器
- 本地域名服务器
域名解析
正向解析:IP映射主机
反向解析:主机映射IP
使用UDP传输,端口53
递归查询
主机向本地域名服务器查询后,本地域名服务器和各级服务器依次递归查询
递归与迭代结合
主机向本地域名服务器查询后,本地域名服务器作为客户端向各级服务器依次迭代查询
查询次数:2+2*域名级数
DNS采用缓存加速查找
FTP
概念
使用CS方式提供文件传输服务。
TCP协议 控制端口21 数据端口20
传输过程 Out of band
控制连接
控制进程监听21端口,7位ASCII格式传送控制信息
数据连接
控制进程收到请求创建数据进程,传输完毕后关闭控制进程。
两种传输模式:
- PORT:服务器通过20端口连接到开放端口
- PASV:客户端连接到服务器端开放的随机端口读取数据
NFS
允许进程远程打开文件从任意位置读写,只需传输小块数据,降低消耗。
概念
电子邮件包括:
- 用户代理UA(客户与系统的交互接口)
- 邮件服务器(CS结构,能互为CS)
- 发送和读取协议(SMTP发送,POP3或IMAP读取)
流程
- 用户通过UA发送
- 发送队列等待发送
- 发送服务器SMTP客户端与接收服务器TCP连接
- SMTP客户端发送邮件,发送完毕,关闭连接
- 接收服务器放入接收邮箱
- 用户通过UA读取邮箱邮件
邮件结构
首部
to:目标邮箱,保证邮箱唯一,可用为多个
from:发送邮箱
Subject:主题 可选主体
用户任意编辑
MIME
smtp仅支持ascii码,MIME作为中间代理,实现编码转换
结构:
- 首部:MIME版本、内容描述、内容标识、传送编码和内容类型
- 定义内容格式
- 定义传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
SMTP 简单邮件传输协议 Simple Mail Transfer Protocol
TCP连接 端口25
过程:具体过程查看书籍
- 建立连接:客户端定期扫描是否存在邮件,存在即建立直接连接,不能连接则等待重试
- 传送:发送from,判断服务器能否接收,再验证to中每个邮箱能否接收,确认后发送邮件
- 释放:发送QUIT命令结束
POP3 Post Office Protocol
110端口
提供下载删除和下载保留两种方式,使用pull方式获取邮件
IMAP
提供更复杂的查询邮件服务,维护会话用户状态信息,允许只读取邮件中部分
协议 | 功能 | 协议 | 说明 |
---|---|---|---|
SMTP | 简单邮件发送 | TCP | 主要用于邮件发送,用户发送到服务器和服务器之间发送 |
POP3 | 邮局协议 | TCP | 主要用于客户的邮件接收,可发送邮件,特点在于本地与服务器之间通过pull push方式实现维护,本地pull后的操作只在本地,且旧版pop3在pull后就删除服务器邮件,新版扩充 |
IMAP | 交互式邮件存取协议 | TCP | 只能用于邮件的接收,不能发送,特点在于服务器与本地交互,本地操作同步服务器,因此需要支持邮件的部分读取修改功能,提高性能 |
MINE | 通用互联网邮件扩充 | 主要是对SMTP协议的传输扩充,让原本简单的邮件内容可以提高MINE栈解释实现内容扩充 |
WWW
万维网使用url唯一标识资源地址,使用http协议连接,资源以html形式保存
- 统一资源定位符URL:协议://主机:端口/路径
- 超文本传输协议HTTP
- 超文本标记语言HTML
HTTP HTTPS
应用层协议 TCP连接 80端口
http本身属于无连接服务 且不会保存之前状态,无状态,更容易支持大量并发的HTTP请求
流程
- 请求监听
- 建立连接
- 发送资源请求
- 响应请求
- 释放连接
Cookie
Cookie作为用户唯一标识码,保存用户行为记录
连接
非持久化:每个资源都需要tcp连接获取 close状态
持久化:在响应后仍保持连接 keep-alive
流水线:连续发送数据
非流水线:收到响应后才能继续发数据
响应时间:
- 持久化http+流水线 3RTT(连接+基文件+流水对象)+(1+n)个对象传输时间(n个对象+基文件)
- 持久化http+非流水线 (2+n)RTT(连接+基文件+n个对象)+(1+n)个对象传输时间(n个对象+基文件)
- 非持久化http并行 4RTT(基文件连接加传输和其它对象并行连接加传输)+(1+n)个对象传输时间
- 非持久化http串行 (1+n)RTT (基文件+n个对象 每个对象2个RTT实现连接加传输对象)+(1+n)个对象传输时间
协议
包括请求和响应报文,请求方法有:get,post,head,connect,options
应用 | 功能 | 协议 | 端口 |
---|---|---|---|
DNS | 域名解析 | UDP | 53 |
FTP | 文件传输 | TCP | 数据20,控制21 |
TFTP | 简单文件传输 | UDP | 69 |
SMTP | 电子邮件发送 | TCP | 25 |
POP3 | 电子邮件接收 | TCP | 110 |
SNMP | 网络管理 | UDP | 161 |
TELNET | 远程登录 | TCP | 23 |
HTTP | 万维网 | TCP | 80 |
HTTPS | 安全HTTP | TCP | 443 |