[学习/自用]计算机网络 知识点
计算机网络
约定
本笔记中,在没有其他特殊说明的情况下,A为发送方,B为接收方,C为中间人(例如路由)
本笔记按照TCP/IP参考模型构造
第一章 概述
-
互联网正式标准的三个阶段
互联网草案、建议标准(RFC)、互联网标准(STD, 包含多个RFC)
-
端系统的两种通信方式:
B/S、P2P方式
-
电路交换
- 特点:面向连接
- 阶段:建立连接、通信、释放连接
- 缺点:通信线路利用率低
-
分组交换:采用存储转发技术
- 概念:将报文均分为几段,每段加上地址
- 优点:
- 动态分配带宽
- 分组独立选择转发路由
- 可以不预先建立连接
- 保证可靠
- 缺点
- 排队引发时延
- 报文附加地址段需要增加开销
-
接入网(AN)不属于互联网的核心/边缘部分
-
带宽:本来指信号的频带宽度(频域称谓),计算机网络中指某信道所能通过的最高数据率(时域称谓)
-
吞吐量:单位时间内通过某网络(信道、接口)的数据量,用于确定实际上网络经过的数据量
-
时延:从A端发往B端所需要的时间
- 发送时延:\(发送时延=数据帧长度/发送速率\),提高链路带宽减少发送时延
- 传播时延:\(传播时延=信道长度/信号传播速度\),理论上传输时延由物理规则限制
- 处理时延:由互联网核心部分设备处理分组产生的时间
- 排队时延:分组在路由器中排队等待的时间
- \(时延带宽积=传播时延\times带宽\)
-
往返时间RTT:A→(PAC)→B→(ACK)→A需要的时间
-
利用率
- 信道利用率:信道被利用的时间占比(单位为百分比)
- 网络利用率:信道利用率的加权平均
- $当前网络时延 = 空闲时延 / (1- 网络利用率) $
-
OSI标准:受法律认可,但是TCP/IP受到广泛应用
第二章 物理层
-
物理层协议也成为物理层“规程”
-
主要任务:机械特征、电气特征、功能特征、过程特征
-
基带信号:来自信息源,存在直流、低频分量,不利于传输
基带调制:将基带信号进行编码,使得其适合于在信道上传输,变换后仍然为基带信号
带通调制:将基带信号搬移到更高的频段
-
基带调制编码方式
- 不归零制:正电平表示1
- 归零制:正脉冲表示1
- 曼彻斯特编码(具有自同步能力:可提取时钟频率,下同):位中心(例如2.5V)上为1(5V),下(0V)为0
- 差分曼彻斯特编码:位开始跳变为1(即与前一位不同就跳变)
-
带通调制编码方式:调幅、调频、调相
-
信道极限容量和码间串扰问题
- 信噪比:信号的平均功率和噪声功率之比,\(SNR= 10\log_{10}(S/N)\)
- 极限信息传输功率(香农公式)\(C=W\log_{2}(1+S/N)\),式中\(W\)为信道带宽,单位为\(Hz\),S为信号平均功率,N为信道高斯噪声功率
-
传输媒体
- 导引型(例如电缆)
- 双绞线:5类常用
- 同轴电缆
- 光缆:利用全反射。分为单模、多模
- 非导引型(自由空间,利用无线电)
- 导引型(例如电缆)
-
信道复用
-
时分复用TDM:所有用户在不同的时间内占用同样的带宽,TDM时隙周期出现
缺点:线路资源浪费
STDM:按需动态分配时隙
-
波分复用WDM:光的频分复用
-
码分复用CDM
- 码分多址CDMA,用户码型独立,不会产生干扰。频谱类似于白噪声,不易被敌人察觉
- 发送方法:发送1时发送码片序列,发送0时发送码片序列的反码。将每个比特转换为m长度的码片,因此频带宽度提升
- 扩频通信:直接序列扩频、跳频扩频FHSS
- 码片序列要求:①必须各不相同②必须互相正交。实际系统常用伪随机码序列
- 规格化内积来区分不同的用户发送的信息
-
-
宽带(超过200kbits/s)接入技术
-
非对称数字用户线ASDL:电话线改造,低频用于电话通信,高频用于网络通信
DMT技术:频分复用,ADSL的数字业务中分为上下行信道,40~1100Hz
-
光纤同轴混合网HFC:改造电视线路
-
光纤入户接入网技术FTTx
-
第三章 数据链路层
-
数据链路层传输的是帧
-
数据链路层所有协议都不是可靠传输协议
-
数据链路层工作
- 封装成帧
- 目标:在一段数据前后添加首部、尾部确定帧的定界
- 帧定界符冲突:字节/字符填充:遍历要发送的数据,在冲突的字符(SOH、EOT字符)前面加一个ESC(0x1B)字符/字节
- 透明传输
- 差错控制
- 尾加循环冗余校验码CRC,称为帧检验序列FCS。FCS亦可使用非CRC方法得出
- 任何差错都导致FCS不通过校验,丢弃此帧
- 差错控制只能做到无差错接受(即可以保证传输过程中接收到的帧都是无差错的),而不是可靠传输(发什么收什么)
- 封装成帧
-
PPP协议
- 标志位0x7E
- 字符填充:信息部分中0x7E变为0x7D, 0x5E, 0x7D变为 0x7D, 0x5D,ASCII控制字符前面加一个0x7D
- 零比特填充:五个连续1,后面补一个0.
-
广播信道数据链路层
-
局域网数据链路层IEEE 802.3
- 数据链路层的两个子层:逻辑链路控制LLC(一般不考虑)、媒体接入控制MAC
-
载波监听多点接入/碰撞(CSMA/CD)协议(总线以太网)此乃重点
- 多个计算机接入到一根总线上
- 不可靠交付
- 曼彻斯特编码
- 每次总线上只能有一个设备占用总线,否则发生碰撞。通过探测总线(载波监听)来确定是否可以发送数据
- CSMA/CD只能执行双向交替通行(半双工)
- 争用期:发送数据站最多间隔两倍端端往返时延就能察觉碰撞,此时间称为争用期/碰撞窗口。在争用期内没有碰撞才能确定数据不被碰撞
-
集线器星形拓扑
- 同样是一个总线网
-
以太网总的信道利用率不能达到100%
-
信道利用率最大值:设\(\tau\)为端端时延, \(T_0\)为帧发送时间,理想情况下信道极限利用率
\[\ S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+a}, a= \frac{\tau}{T_0} \]
-
-
MAC层:又称为物理地址,局域网中称为“介质访问控制子层”
- 结构:高24位:组织唯一标识符,低24位:拓展唯一标识符(用于标识所有适配器)
- 地址第一位为I/G位,指定单站地址(0)或组地址(1)
- 地址第二位为G/L位,用于指定全球管理(0)与本地管理(1)
- 适配器(网卡)检查MAC地址:
- 发往本站(包括单播(一对一)、广播(一对所有)、多播(一对多))的帧收下,否则丢弃
- 适配器能识别单播、广播地址,可以用编程的方法识别多播地址
- 只有目的地址才能使用广播地址和多播地址
- 混杂模式:监听到的包全部记下来
- 常见MAC地址格式:以太网V2,IEEE 802.3。
- 以太网V2数据报结构:同步码(01重复7字节,用于比特同步) + 帧开始定界符(10..11,1字节) + 目的地址 + 源地址 + 上层协议类型 + 数据字段(小于64-18=46字节时,填充整数字节的填充字段) + FCS帧检验字段
- IEEE 802.3 数据报结构:(同上)将上层协议类型更换为长度/类型字符,小于0x0600时数据字段封装LLC帧
-
拓展以太网
-
集线器:拓展以太网覆盖范围,但是吞吐量未提高
-
网桥/交换机:
-
网桥工作在数据链路层,用于转发MAC地址
-
第二层交换机(L2 switch)工作在数据链路层
接口有存储器、即插即用、地址表自学习、硬件结构转发
- 自学习:发送帧时记录下设备和接口的绑定,如果目的地址有绑定,则发送到目的地址;如果无绑定,则广播给所有主机。设置有效时间,超时删除记录
- 生成树STP协议:用于在逻辑上切断某些环路,让主机链路总是无环的。避免兜圈子
-
-
虚拟以太网(VLAN)
- 逻辑上将各个主机划分到一个类局域网区内,
- 在以太网帧中插入4字节标识符(VLAN标记),以太网帧更名为802.1Q帧
-
高速以太网(超过100Mbit/s)、吉比特以太网(超过1Gbit/s)、PPPoE
- 100BASE-TX:网段最大程度100米,2对UTP5类线或者STP
- 100BASE-T4:100米,4对UTP3或者UTP5
- 100BASE-FX:2000米,2对光纤
-
吉比特以太网(超过1Gbit/s)
-
1000BASE-SX,550米,多模光纤
-
1000BASE-LX,5000米
-
1000BASE-CX,25米
-
1000BASE-T,100米
-
-
第四章 网络层
网络层提供无连接不可靠数据报服务
-
网际协议IP
- 五种不同的中间设备
- 物理层:转发器
- 数据链路层:网桥
- 网络层:路由器
- 数据链路层+网络层:桥路器
- 网络层以上:网关
- IP地址:所有连接在互联网上的主机分配在全世界范围内唯一的32位(IPv4)标识符
- 由互联网名字和数字分配机构ICANN分配
- 分类IP地址:
- 两段IP地址:网络号、主机号
- A类地址:0 + 7位网络号(网络号供共1字节)
- 最大可指派网络数:\(2^7-1-1=126\)(注意这里减2,下面的BC类都是减1),可分配主机数:\(2^{24} -2 = 166777214\)(此处都是减2)
- B类地址:10 + 14位网络号(2字节)
- 最大可指派网络数\(2^{14} -1 = 16383\),可分配主机数:\(2^{16}-2 = 65534\)
- C类地址:110 + 21位网络号(3字节)
- D类地址:1110 + 多播地址
- E类保留地址:1111 + 保留地址
- A类地址:0 + 7位网络号(网络号供共1字节)
- 将32位地址每8位转换一次10进制,保存为xxx.xxx.xxx.xxx形式(点分法)
- 特殊IP地址
- 0.0.0.0:本机(见DHCP),源
- 0.host-id:本网络上的主机,源
- 1111.1111(两个段都是全1):本网络内广播(路由不转发),目的
- netid.1111(host-id全是1):对net-id网段广播,目的
- 127.?(主机号不全为1和0),环回测试,目的,源
- 一个路由器至少应当有两个不同的IP地址
- 两段IP地址:网络号、主机号
- ARP协议:IP转硬件地址
- 绑定IP和MAC地址,并存储有效时间TTL
- 发送数据报流程:查询ARP表,如有绑定则直接发送,如无绑定则广播ARP请求分组,并存储响应分组
- ARP请求(响应)分组:发送方硬件地址+发送方IP+目标硬件地址(如无为0)+目标IP地址
- ARP请求分组只在本地进行广播
- ARP只负责同一局域网内地址转换问题,如需要跨网段,则需要将数据报发完路由器
- IP到MAC解析自动执行
- IP数据报(按照自左向右顺序)
- 4, IP协议版本
- 4, 首部长度,最大为60字节
- 8, 区分服务
- 16, 总长度。数据报和首部的数据之和的长度,单位为字节。总长度不大于MTU
- 16, IP数据报标识
- 3, 标志位, 第一位MF标识是(1)否(0)后面还有分片。第二位DF标识是否允许分片(0)
- 13, 片偏移,指示分组在分片后某片的相对位置,以8个字节为单位
- 8, TTL,标识数据报在网络中可通过的路由器数最大值
- 8, 协议代号
- 16, 首部校验和(反码算术求和)
- 32,32, 源、目标地址
- 路由器分组转发算法:思路:按目标地址巡线。如果没有路由表指明的路由器,则转发给默认路由。否则出错。
- 五种不同的中间设备
-
三级IP地址(划分子网)
- 结构:网络号+子网号+主机号
- 子网对外网络透明,只是某单位内部对网络执行划分
- IP地址 AND 子网掩码 = 网络地址
- 改进的路由器分组转发算法:目标地址中需要和子网掩码执行按位与来找到对应的网络地址
-
无分类域间路由选择CIDR
-
结构:网络前缀+主机号(斜线记法)例如22.78.56.5/24,这个24代表网络前缀的位数。
网络前缀代替网络号、子网号
-
CIDR掩码:斜杠后面的数字代表的连续的1的个数,例如10.0.0.0/10,255.192.0.0(1111 1111 11 00~)
网络前缀都相同的连续IP地址称为CIDR地址块
-
路由聚合:前n位(CIDR地址块)表示一个路由项目
-
最长前缀匹配:路由表中同时有两个CIDR块和目的地址匹配时,优先选择前缀匹配的路由记录
-
-
ICMP:差错报告报文和询问报文
- 差错报文:不可达、超时、参数错误、重定向
- 询问报文:PING、tracert
-
路由选择协议算法
互联网采用分层次的路由选择协议
-
内部:路由信息协议RIP
-
分布式、基于向量的路由选择协议
-
距离使用“跳”数计量,一条路径最多只能包含15个路由器。超过(≥16)即为不可达
-
选择具有路由器最少的路由
-
特点:仅交换相邻路由器的信息、交换路由表、按照固定时间间隔交换信息
-
合并路由表的方法:绘制网络结点图
-
缺点:好消息传播的快、坏消息慢。网络故障需要经一段时间才能传遍所有路由器
-
RIP2具有鉴别功能
-
-
内部:开放短路径优先OSPF
- 洪泛通信(用于更新全网(一般是区域内)链路状态)、建立全网的拓扑结构图
- 路由器维护一个链路状态数据库
- 使用IP数据报发送
- OSPF具有鉴别功能
-
外部:BGP
- 选出自治区域内的BGP发言人,交换路径向量,向量结点为自治系统
-
-
路由器
- (其他略)分组丢弃:由输入输出队列溢出导致的
- 交换结构:(其他略)纵横交换结构:2N条总线,第N端口转发的垂直总线空闲则接通水平总线,否则等待
-
IPv6
-
结构:
- 4, 版本
- 8, 通信量类,区分不同数据报的类别、优先级
- 20, 流标号:从A到B的一系列数据报流都具有相同的流标号
- 16, 有效载荷长度(IP数据报去除基本首部以外的字节数)
- 8, 下一个首部
- 8, 跳数限制。此值每次转发时-1
- 128,128 源、目标地址
-
六种拓展首部:逐跳选择、路由选择、分片、鉴别、封装安全有效载荷、目的站选项
-
地址:单播、多播、任播(一组计算机随便交付一个)
-
每16位用十六进制表示,用冒号分隔,0000简写为0
连续的一串0可以取代为一对冒号,但是只能用一次(零压缩) FF05:0:0:0:0:0:0:B3 = FF05::B3
可用CIDR记法
-
特殊IPv6地址
- 未指明:全为0,::/128
- 环回地址:00...1(最后一位为1), ::1/128
- 多播地址:前8位为1: FF08::/10
- 本地链路单播地址:FE80::/10,用于在不接入互联网的情况下执行局域网通信
-
ICMPv6
- 用于报告差错、获取信息、探测邻站、管理多播通信等
-
-
IP多播
- 多播地址不能是源地址
- IGMP协议
-
VPN、NAT
- 专用IP地址块
- 10.0.0.0~10.255.255.255:A类,或称为24位块,10.0.0.0/8
- 172.16.0.0~172.31.255.255:B类,或称为20位块
- 192.168.0.0~192.168.255.255:C类,或称为16位块
- 网络地址转换:用路由器的全网IP通信,之后再交付给请求的主机。(或者绑定到端口)
- 专用IP地址块
-
MPLS
-
其他
- 以太网802.3最大可传送帧长:1500字节
第五章 运输层
-
两台主机之间的通信就是应用进程进行互相通信
-
UDP
- 主要特点
- 无连接,因此不需要套接字
- 不保证可靠交付
- 面向报文
- 没有拥塞控制
- 首部开销小,只有8字节
- 结构:
- 伪首部(仅计算校验和时加上,其他时候删掉):4源IP+4目标IP+标志位(0x00,0x17)+2长度
- 2,源端口+2,目的端口
- 2,长度
- 2,校验和(连上伪首部,二进制累加然后取反)
- 主要特点
-
TCP
-
主要特点
- 面向连接,点对点(单播通信),具有套接字
- 可靠交付
- 全双工通信
- 面向字节流(即数据在TCP看来就是字节流,不分数据报),将过长的字节流划分短,生成TCP数据报
-
套接字:绑定IP和端口号
-
可靠传输协议
停等协议
- 基本思路:A发一个分组B确认一个分组,A再发下一个分组
-
超时重传ARQ
-
A发送分组之后设置计时器,B在计时器时间内回复收到信息到A.如果超时,则重传(确认丢失机制)
-
确认迟到:丢弃重复的确认和重传的分组
-
A需要暂时缓存已发送的分组,以备重发
-
超时定时比平均往返时间长一点
-
信道利用率太低
- 流水线(连续ARQ、滑动窗口协议)
-
-
TCP报文格式:首部最小长度:20字节,最多40字节
- TCP报文格式
- 8, 源+ 8, 目的
- 16 序号:报文段传输的第一个字节的序号
- 16, 确认号:期望收到的下一个报文段的第一个字节的序号
- 4, 数据偏移:表示起始数据距离起始TCP报文段位置的偏移,单位为4字节
- 6, 保留字
- 6, 标志字:URG, ACK, PSH, RST, SYN, FIN
- 8, 窗口字段
- 8 检验和(要加上伪首部)
- 8, 紧急指针
- 选项字段(长度可变)
- TCP报文格式
-
TCP可靠传输:字节单位的滑动窗口、超时重传、选择确认SACK
-
加权平均往返时间\(RTT_S\)
\[RTT_S = (1-\alpha) RTT_S + \alpha RTT \]\(\alpha\)推荐值为0.125
-
超时重传时间\(RTT_O\)
\[RTO=RTT_S + 4\times RTT_D\\ RTT_D = (1-\beta)RTT_D + \beta |{RTT_S-RTT}| \]\(\beta\)推荐值为0.25
- Karn算法:用于测量具有重传时的RTT:(修正后)\(RTO = \gamma RTO\),报文段每重传一次,RTO增大为原来的\(\gamma\)倍
-
-
流量控制
- 原理:利用rwnd字段调整接收方可以一次接受的窗口大小
- 持续计时器:防止死锁
- Nagle算法:先发送一个字节,在接收到响应之后再发送报文
-
拥塞控制
-
网络发生拥塞的标志:分组丢失
-
TCP的拥塞控制:发送端维护一个拥塞窗口CWND,实际发送窗口值\(\text{wnd} = \min(\text{CWND},\text{SWND})\)。拥塞端口动态的根据网络的拥塞程度变化
-
判断拥塞:重传定时器超时、收到重复的三个ACK
-
拥塞控制算法
-
慢开始:由小到大逐渐增大拥塞窗口,每经过一个传输轮次CWND加倍
设置慢开始门限,cwnd值低于此门限时,使用慢开始算法,高于门限时,使用拥塞避免算法:CWND每过一个轮次+1
一旦出现拥塞:门限降低为当前cwnd的一半和2的最大值,cwnd=1,执行本算法
-
快重传:A一旦收到3个重复确认,立即向B重传
-
快恢复:A一旦收到3个重复确认,门限降低为当前cwnd的一半,cwnd重设为门限,再次执行拥塞避免算法
-
-
主动队列管理:RED算法
-
-
TCP运输建立
- 连接建立:三次握手
- A: SYN = 1 , SEQ = x
- B: SYN = 1 , ACK = 1, seq = y, ack = x+1
- A: ACK = 1 , seq = x+1, ack = y +1
- 连接释放:四次握手
- 连接建立:三次握手
-
第六章 应用层
本章略去内容较多
-
DNS服务
-
FTP服务
- 21:负责控制信号,20:负责文件信号
- TFTP:89端口
-
TELNET:将击键和命令转换为NVT格式传送
-
万维网
-
URL
-
格式:<协议>://<主机>:<端口>/<路径>
-
HTTP:面向事务的超文本传送协议
-
HTTP/1.0: 无状态
缺点:每请求一个文档就需要两倍RTT开销
-
HTTP/1.1:持续链接
-
-
代理服务器CDN
-
HTTP报文、HTML语言(略)
-
-
XML
-
邮件服务:送信SMTP,收信POP3、IMAP,通用互联网邮件扩充MIME
-
-
DHCP服务:服务器端口67,客户端口68
-
简单网络管理服务SNMP:使用UDP
-
P2P
作者发布、转载的任何文章中所涉及的技术、思路、工具仅供以安全目的的学习交流,并严格遵守《中华人民共和国网络安全法》、《中华人民共和国数据安全法》等网络安全法律法规。
任何人不得将技术用于非法用途、盈利用途。否则作者不对未许可的用途承担任何后果。
本文遵守CC BY-NC-SA 3.0协议,您可以在任何媒介以任何形式复制、发行本作品,或者修改、转换或以本作品为基础进行创作
您必须给出适当的署名,提供指向本文的链接,同时标明是否(对原文)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示作者为您或您的使用背书。
同时,本文不得用于商业目的。混合、转换、基于本作品进行创作,必须基于同一协议(CC BY-NC-SA 3.0)分发。
如有问题, 可发送邮件咨询.