计算机网络笔记(横向)
该笔记也是我考研期间做的整理。一般网上的笔记是按照章节纪录的,我是按照知识点分类纪录的,大纲如下:
文章目录
- 1. 各报文
- 1.1 各报文头部详解
- 1.2 相关口诀
- 2. 各协议
- 2.1 各应用层协议使用的传输层协议与端口
- 2.2 各协议的过程
- 2.2.1 数据链路层的协议簇
- (1) 数据链路层介质访问控制协议
- 1. ALOHA协议——不听就说
- 2. CSMA协议——先听再说
- 3. CSMA/CD协议——先听后发,边听边发,冲突停发,随机重发
- 4. CSMA/CA协议
- 5. 轮询访问:令牌传递协议
- (2) 广域网数据链路层PPP协议
- 2.2.2 网络层的协议簇
- (1) RIP路由信息协议(应用层协议-UDP数据报文-端口520)
- (2) OSPF开放最短路径优先协议(网络层协议-IP数据报-IP首部协议89)
- (3) BGP边界网关协议(应用层协议-TCP数据报-端口179)
- (4) ARP地址解析协议(网络层协议-IP数据报)
- (5) ICMP互联网控制消息协议(网络层协议-IP数据报)
- 2.2.3 传输层的协议簇
- (1) TCP连接管理
- 1. TCP连接的建立——三次握手
- 2. TCP连接的释放——四次挥手
- 3. 关于TCP
- 2.2.4 应用层的协议簇
- (1) DHCP动态主机配置协议(应用层协议-UDP数据报)
- (2) FTP文件传输协议(应用层协议-TCP数据报-端口21)
- (3) 电子邮件系统中的协议栈大杂烩
- 2.3 公式大全
- 2.3.1 奈奎斯特准则
- 2.3.2 香农定理
- 2.4 各协议注意事项
- 2.4.1 数据链路层中滑动窗口大小问题
- 2.5 TCP、UDP、IP封装的协议
- 3. 各IP地址
- 3.1 IPv4
- 3.2 IPv6
- 4. 各表
- 4.1 路由表
- 4.2 各种介质适用情况
- 5. 陌生的名词
- 5.1 SDN
- 5.2 VLAN
- 5.3 最短帧长
- 5.4 通信 & 资源子网
- 5.5 调制 & 解调
- 5.6 开环控制 & 闭环控制
- 5.7 SAP
- 6. 各设备
- 6.1 物理层
- (1) 中继器 RP Repeater
- (2) 集线器 Hub
- (3) 放大器
- 6.2 数据链路层
- (1) 局域网交换机 LAN Switches
- 6.3 网络层
- (1) 路由器 Router
- 7. 注意
- 7.1 网络层分片问题
- 7.2 两种模型协议栈的区分
- 7.3 以太网的规定
- 7.4 UDP与TCP的特殊校验
- 7.5 域名与域名解析
- 8. 参考资料
1. 各报文
1.1 各报文头部详解
重要程度 | 分类 | 需记 |
---|---|---|
★ | HTTP报文段 | 请求行:方法 请求URL HTTP协议版本 状态行:版本 状态码 短语 |
★★ | UDP数据报 | 首部长8B,4个字段都是2B 长度字段(1) = 首部 + 数据 检验和(可选) => 伪首部 + 首部 + 数据 面向报文:既不合并、也不拆分 |
★★★ | TCP报文段 | **首部固定部分20B,最大60B **目的端口和源端口各占2B 序号:本报文段的第一个字节序号 确认号:期待收到下一个字节的序号 数据偏移=首部长度(单位4B) 检验和 => 伪首部 + 首部 + 数据 窗口:允许对方发送的数据量,并非表示自己的窗口。 |
★★★★ | IP分组 | 首部固定部分20B,最大60B 总长度(1)+片偏移(8)+首部长度(4) “一种八片首饰” 标志位:(?)+DF+MF 检验和 => 首部 源地址、目的地址各占4B |
★★★ | MAC帧 | 前同步码8B MAC地址长度6B 数据长度为46~1500B,首尾部共18B,帧长范围64~1518B 校验码 => 首部 + 数据 |
1.2 相关口诀
IP分组的单位:一种八片首饰(1总8片首4)
端口、IP、MAC(从上到下)的SAP长度:2B、4B、6B
2. 各协议
2.1 各应用层协议使用的传输层协议与端口
应用程序 | FTP-控 | SMTP | DNS | HTTP | DHCP |
---|---|---|---|---|---|
协议 | TCP | TCP | UDP | TCP | UDP |
端口 | 21 | 25 | 53 | 80 | 68请求 69回应 |
端口
- 服务器使用的端口:
- 0~1023:熟知端口号
- 1024~49151:登记端口号
- 客户端使用的端口号:
- 49152~65535
2.2 各协议的过程
2.2.1 数据链路层的协议簇
(1) 数据链路层介质访问控制协议
1. ALOHA协议——不听就说
纯ALOHA协议——不听就说
有话直说,发生冲突则随机等待一段时间
时隙ALOHA协议——不听就说,整点发送
背景:纯ALOHA发送具有随机性,导致更多的冲突发生
例如将发送时间规定在01:00, 02:00, 03:00, …, 24:00,那么在下午15:34要说的话,就推迟到16:00发出去。(实际上不会隔那么久,这里假设T0=1h)
而如果发生碰撞,则继续采用纯ALOHA协议的方法。
2. CSMA协议——先听再说
1-坚持 CSMA——100%
发前先监听信道,若信道空闲,则立即发送
否则持续监听并等待(本次发送100%要发送)。
如果发生冲突,则随机等待一段时间后再监听。
非坚持 CSMA——0%
发前先监听信道,若信道空闲,则立即发送
否则就放弃监听(本次发送0%要发送,也就是可以不发送)。
如果发生冲突或者信道忙,则随机等待一段时间后再监听。
p-坚持 CSMA——p
发前先监听信道,若信道空闲,则按p概率发送,1-p概率推迟到下一个间隙。
否则就放弃监听,并在下一个间隙监听(本次发送只有p的概率会被发送)
3. CSMA/CD协议——先听后发,边听边发,冲突停发,随机重发
当发生冲突时,采用二进制指数退避算法:
- 确认基本的退避时间,一般取两倍的总线端到端传播时延2τ(即争用期)
- 定义参数k,k=[重传次数, 10]
- 每次重传从整数集合[0, 1, …, 2k-1]中随机取出一个数r,重传需要退避的时间就是2rτ
- 当重传达16次,说明网络太拥挤,认为此帧永远无法正确发送,抛弃此帧
4. CSMA/CA协议
定义了帧间间隔(InterFrame Space, IFS)
- SIFS(短IFS):最短的IFS,用来分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧、CTS帧、分片后的数据帧、所有回答AP探寻的帧
- PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用
- DIFS(分布式协调IFS):最长的IFS,用于异步帧竞争访问的时延
只有在发出RTS之前会等待DIFS
其余发信号前均等待SIFS
处理隐蔽站问题
-
源站发送前,使用RTS(Request To Send)控制帧,包括源地址、目的地址、通信所持续的时间。
用来告知源站要在该时间内与其他人通信了,也用来告知目的站自己的发送请求。
-
接收站接受请求,发送CTS(Clear To Send)控制帧,包括通信所持续的时间。
用来告知其他人我要和源站通信了,也用来告知源站自己已经准备好了。
5. 轮询访问:令牌传递协议
- 空闲时,令牌在环路中循环传递
- 当轮到某站点,并且有数据要发送,此时令牌就变成数据帧
- 目的站发现是给自己的,于是复制该数据帧
- 最后该数据帧绕回源站,若发现出错,则重发
- 源站传输完数据后,重新生成一个令牌,回到步骤1
(2) 广域网数据链路层PPP协议
组成部分
- 链路控制协议(LCP):建立、配置、测试和管理数据链路
- 网络控制协议(NCP):为网络层协议建立和配置逻辑连接
- 将IP数据报封装到串行链路的方法:放置在PPP的信息部分,大小范围为0~1500B。
MTU
最大传送单元的最小值并非是46,因为PPP采用点对点连接,无需采用CSMA/CD协议
具体组成部分
PPP帧:[F, A, C, 协议, 信息部分, FCS, F]
- F:标志字段,占1字节,规定为0x7E,类似帧定界
- A:地址字段,占1字节,规定为0xFF
- C:控制字段,占1字节,规定为0x03
- 协议:协议段,占2字节,说明信息段中运载的是什么种类的分组。
一些要求
- PPP是面向字节的,所以整个PPP帧的长度必须是整数个字节
- 无确认不可靠服务
- 支持点对点,不支持多点线路
- 只支持全双工
面向字节的异步链路使用字节填充实现透明传输
面向比特的同步链路使用0比特填充实现透明传输
工作状态切换
2.2.2 网络层的协议簇
(1) RIP路由信息协议(应用层协议-UDP数据报文-端口520)
距离-向量路由算法的代表为RIP
- 规定
- 距离:距离即跳数,最多15跳:目的是防止环路
- 动态更新:每30s广播一次RIP路由更新信息
- 网络支持:子网掩码必须相同,RIP2及以后支持变长子网掩码和CIDE
- 特点
- 交换方式:与自己邻居交换自己所知道的所有路由信息
- 心跳时间:180s没收到,对应路由则不可达(跳数为16)
- 问题
- 慢收敛
(2) OSPF开放最短路径优先协议(网络层协议-IP数据报-IP首部协议89)
链路状态路由算法的代表为OSPF
- 规定
- 距离:可根据IP分组的不同服务类型设置不同的代价,若代价相同,可将通信量分配给这几条链路(多路径间的负载平衡)
- 动态更新:发生变化时广播
- 网络支持:支持可变长子网掩码和CIDE
- 判断新状态:会附上32位的序号,序号越大,状态越新
- 特点
- 交换方式:与所有成员交换自己邻居的路由信息
- 划分网络:使用层次路由时,OSFS将一个自治系统再划分为若干区域(Area)
- 五类分组
- 问候分组:确认邻居是否还在(10s问候一次)
- 数据库描述分组:向邻居给出自己知道的所有链路状态的摘要信息
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
- 链路状态更新分组:用洪泛法对全网更新链路状态
- 链路状态确认分组:对链路更新分组的确认
(3) BGP边界网关协议(应用层协议-TCP数据报-端口179)
背景
无论是使用RIP还是OSPF,随着系统中路由的增加,路由表条目数会增多,扫描时间也会增加,因此引入层次路由的概念,将网络分为多个自治系统。
一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称域内路由选择。其中代表协议为RIP和OSPF。
自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择。其中代表的协议为BGP边界网关协议。
- 规定
- 距离:距离-向量,并非找到最好,力求找到较好
- 动态更新:首次交换所有BGP路由表,往后只交换更新的部分
- 四类报文
- 打开(Open)报文:与另一个BGP发言人建立连接
- 更新(Update)报文:告诉另一个BGP发言人自己更新的部分
- 保活(Keepalive)报文:确认邻居是否还在
- 通知(Notification)报文:用来发送检测到的差错
- 交换的信息:到达某个网络所经过的路径,因此是路径向量协议。
(4) ARP地址解析协议(网络层协议-IP数据报)
目的:A主机通过B的IP找到B主机的MAC
-
A发送:广播ARP请求分组
(源IP, 目的IP, 目的MAC, 源MAC) = (IPA, IPB, FF-FF-FF-FF-FF-FF, MACA)
-
B发送:单播ARP响应分组
(源IP, 目的IP, 目的MAC, 源MAC) = (IPB, IPA, MACA, MACB)
注意:如果跨网络,需要交给路由器这个中介完成,类似递归式地进行
(5) ICMP互联网控制消息协议(网络层协议-IP数据报)
目的:目标主机或目标路径上的路由器向源主机报告差错和异常情况。
ICMP有五种类型:
类型 | 含义 | 例子 |
---|---|---|
终点不可达 | 不能交付 | 1. 端口没打开 2. 端口没有应用程序接待 |
源点抑制 | 拥塞而丢弃 | 主机或路由器太忙了,没时间接待,直接丢掉了 |
时间超过 | TTL=0 | 中间途径的路由器太多了,导致TTL在半路就为0了 |
参数问题 | 检验和不通过 | 路由器检测到收到的数据有比特位错误了 |
改变路由 (重定向) | 可通过更好的路由 | 路由器检测到: 1. 从哪来又回哪去 2. 想发往远程网络的数据就在本网络 |
ICMP有四种情况不响应ICMP:
- 对ICMP不响应ICMP
- 对第一个分片响应,后续分片不响应
- 组播地址
- 特殊地址:例如127.0.0.1、0.0.0.0
2.2.3 传输层的协议簇
(1) TCP连接管理
1. TCP连接的建立——三次握手
目的
- 确知对方的存在
- 协商参数:最大窗口值、窗口扩大选项、时间戳选项、服务质量等
- 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
过程解析
- 客户端发送连接请求报文段(SYN=1, seq=x),并进入到SYN-SEND(同步已发送)状态
- 服务器收到后发回确认(ACK=1, SYN=1, seq=y, ack=x+1),并进入到SYN-RCVD(同步收到)状态
- 客户端收到服务器的确认后,还要向服务器给出确认(ACK=1, SYN=1, seq=x+1, ack=y+1),并为该TCP连接分配缓存和变量,进入到ESTABLISHED(已建立连接)状态
- 服务器收到客户端的确认后,也进入到ESTABLISHED(已建立连接)状态
一些细节
客户端在第三次握手若不发送数据,则不消耗序号,并且在下次传输数据时,序号从x+1开始。
服务器资源是在第二次握手时分配,而客户端是在第三次握手才分配资源,这使得服务器易受到SYN泛洪攻击(DDoS攻击)。
一些问题
Q: 为什么还要第三次握手,两次握手不行吗?
A: 假设两次握手的情况:客户端发送了第一个连接请求报文(SYN=1, seq=x),由于网络拥塞,客户端超时重传发送了第二个连接请求报文(SYN=1, seq=x+1),服务器收到了第二个连接请求,并发回确认,与客户端开始交换数据,最后,断开连接。不巧的是,第一个连接请求报文后来又到达了服务端,服务端就开始分配资源并发回确认,但是实际上这个确认直接被客户端给拒绝了!也就是说服务器的资源被白白浪费了。引用原话:“The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion.”
2. TCP连接的释放——四次挥手
过程解析
-
客户端发完了
报文:发送连接释放报文
(FIN=1, seq=x)
,此时客户端单方向地关闭了数据通路。状态:进入FIN-WAIT-1(终止等待1)状态
-
服务器知道客户端发完了
报文:对连接释放报文发回确认
(ACK=1, seq=y, ack=x+1)
状态:服务器进入CLOSE-WAIT(关闭等待)状态,客户端收到后进入FIN-WAIT-2(终止等待2)状态
-
服务器也发完了
报文:发送连接释放报文
(FIN=1, seq=y+n, ack=x+1)
,n为从第二、三步之间发送的字节数。状态:服务器进入LAST-ACK(最后确认)状态
-
客户端知道服务器发完了
报文:对连接释放报文发回确认
(ACK=1, seq=x+1, ack=y+n+1)
状态:客户端先进入TIME-WAIT(等待计时器设置的2MSL最长报文寿命)状态,然后再进入到CLOSED(连接关闭)状态。而服务器直接进入到CLOSED(连接关闭)状态
3. 关于TCP
服务特点
- 仅支持单播,不支持广播、组播
- 字节流
- 全双工
可靠传输
- TCP默认使用累积确认
- 重传的触发有两类:①超时重传;②冗余ACK:若期望收到seq=[1, 2, 3, 4],但是依次收到seq=[1, 3, 4],则依次发送的ACK中ack=[2, 2, 2, 2]。(知识交叉:重复收到三个相同ACK会触发快恢复)
拥塞控制
(1) 定义
拥塞窗口cwnd:发送方的窗口
接收窗口rwnd:接收方的窗口
(2) 慢开始 & 拥塞避免
- 慢开始:1-2-4-8-16-32-64
- 拥塞避免:对慢开始设置ssthresh(例如31),则该过程为1-2-4-8-16-
31
-32 - 对网络拥塞的处理:当在cwnd=32时发生拥塞(未按时收到确认)则①
ssthresh=cwnd/2
;②cwnd=1
。
(3) 快重传 & 快恢复
- 快重传:收到3个重复的ACK报文,直接重传对方尚未收到的报文段
- 快恢复:收到3个重复的ACK报文,则①
ssthresh=cwnd/2
; ②cwnd=cwnd/2
;
可靠传输 与 拥塞控制的关系
可靠传输:滑动窗口的大小由接收方决定。
拥塞控制:滑动窗口的大小由网络拥塞情况决定。
滑动窗口仍然是服务于可靠传输,拥塞控制只是滑动窗口大小的动态调节机制。
当题目中二者同时出现时,选择其中最小的那个。(知识交叉:极限数据传输速率也是二者取小者)
拥塞控制的细节
拥塞窗口改变cwnd的时机并不是等待依次发送的cwnd个报文,而是每个RTT内会并行地发送cwnd个报文。
要认识到:①cwnd每RTT将可能改变一次;②一个RTT内的多个报文的发送不是串行,而是并行
2.2.4 应用层的协议簇
(1) DHCP动态主机配置协议(应用层协议-UDP数据报)
目的:A主机向DHCP服务器申请并注册一个私有IP使用
- A发送:广播DHCP发现报文
(源IP, 目的IP) = (0.0.0.0, 255.255.255.255) - DHCP服务器发送:广播DHCP提供报文
(源IP, 目的IP) = (IPDHCP, 255.255.255.255) - A发送:广播DHCP请求报文
(源IP, 目的IP) = (0.0.0.0, 255.255.255.255) - DHCP服务器发送:广播DHCP确定报文
(源IP, 目的IP) = (IPDHCP, 255.255.255.255)
为什么DHCP是应用层协议?
因为DHCP有DHCP服务器、DHCP客户,采用C/S模式,只要采用C/S模式的协议就是应用层协议
(2) FTP文件传输协议(应用层协议-TCP数据报-端口21)
控制连接
- 打开21端口
- 等待客户进程发来请求
- 启动从属进程来处理客户进程发来的请求
- 回到等待状态
数据连接-主动模式PORT
- 客户端向服务器21端口发送PORT命令+端口号
- 服务器使用20端口连接客户告知的端口
- 数据传输
- 发送完毕,断开连接
主动可理解为:服务器主动连接客户要求的端口
数据连接-被动模式PASV
- 客户端向服务器21端口发送PASV命令
- 服务器随机开放一个端口(>1023),并告知客户端
- 客户端再自己开放一个端口(>1023),连接服务器告知的端口
- 数据传输
- 发送完毕,断开连接
被动可理解为:服务器被客户连接
一些细节
- 控制信号都是7位ASCII码
(3) 电子邮件系统中的协议栈大杂烩
SMTP——TCP25
使用范围:发件人 => 发送方邮件服务器
、发送方邮件服务器 => 接收方邮件服务器
限制:只能传输一定长度的ASCII码邮件
MIME——SMTP的升级媒介(仅仅是翻译工作)
使用范围:发件人发之前由MIME“转码”后转交给SMTP、接收人收之前由MIME“恢复”
POP3(Post Office Protocal 3) 邮局协议——TCP110
使用范围:接收方从接收方服务器“拉取”邮件
特点:提供下载并保留、下载并删除工作方式
限制:无法分类,必须下载整个邮件才能读
IMAP——POP3的升级
使用范围:同POP3
特点:可以建立文件夹、可以在文件夹之间转移邮件、可以在文件夹内检索邮件、可以只读取一个报文的首部或者多部分MIME报文的一部分
电子邮件格式
From:jiang@taibai.cloud
To:522806735@qq.com
Subject:Are you OK?Hi, I'm LiHua, How are you?
I'm fine, thank you!
1~3:首部
4~:主体
SMTP连接过程解析
以下简写:SMTP客户为发送方SMTP服务器,SMTP服务器为接收方SMTP服务器。
(1) 连接建立
- SMTP客户:定时扫描,若有邮件则开始连接
- SMTP客户:使用熟知端口号25与SMTP服务器建立TCP连接。
- SMTP服务器:220 Service ready(服务就绪)
- SMTP客户:发送
HELLO
命令,附上发送方的主机名
(2) 邮件传送
- SMTP客户:
MAIL
FROM:<jiang@taibai.cloud> - SMTP服务器:若已准备好接收,则发送250 OK
- SMTP客户:一个或多个
RCPT
(收件人recipient的缩写),RCPT TO:<user1@taibai.cloud> - SMTP服务器:每收到一个RCPT,就响应250 OK或者550 No such user here(查无此人)
- SMTP客户:发送
DATA
表示要发送数据了(先别发) - SMTP服务器:354 Start mail input; end with<CRLF>.<CRLF>。表示客户要以<CRLF>.<CRLF>表示邮件内容的结束
(3) 连接释放
- SMTP客户:发送
QUIT
命令 - SMTP服务器:响应221(服务关闭)
整个过程简化为:
HELLO
,我的电脑名字MAIL
,我的邮箱RCPT
,我要发给的邮箱1- …
RCPT
,我要发给的邮箱nDATA
,我准备发了你有什么要求- 数据传输
QUIT
,传输结束
2.3 公式大全
2.3.1 奈奎斯特准则
设W为理想低通信道的带宽,V表示每个码元可表示的离散电平数目(实际上log2V意思就是一码元多少bit)
理想低通信道下的极限数据传输速率 = 2 W ( B a u d ) = 2 W l o g 2 V ( b / s ) 理想低通信道下的极限数据传输速率=2W(Baud)=2Wlog_2V(b/s) 理想低通信道下的极限数据传输速率=2W(Baud)=2Wlog2V(b/s)
2.3.2 香农定理
设W为信道的带宽,S为信道所传输信号的平均功率,N为信道内部的高斯噪声功率。
信道的极限数据传输速率 = W l o g 2 ( 1 + S / N ) 信道的极限数据传输速率 = Wlog_2(1+S/N) 信道的极限数据传输速率=Wlog2(1+S/N)
扩展:信噪比=10log10(S/N) 分贝(dB),给定分贝单位的数据,要知道求S/N
2.4 各协议注意事项
2.4.1 数据链路层中滑动窗口大小问题
最大限制
选择重传协议要求发送窗口WT与接收窗口WR最大的限制:WTmax=WRmax=2(n-1)
多维分析
发送窗口WT | 接收窗口WR | |
---|---|---|
停止-等待协议 | 1 | 1 |
后退N帧协议 | 1≤WT≤2n-1 (等于1时退化到停等协议) | 1 |
选择重传协议需满足:
- 发送窗口大小 + 接收窗口大小 ≤ 2n
- 发送窗口大小 ≥ 接收窗口大小(一般相等,因为发送比接收大没有意义)
2.5 TCP、UDP、IP封装的协议
TCP封装的
协议名称 | 所属层次 | 端口 | 功能 |
---|---|---|---|
BGP | 网络层 | 179 | 边界网关协议 |
FTP-控制 | 应用层 | 21 | 文件传输控制命令传输 |
SMTP | 应用层 | 25 | 简单邮件传输协议 |
HTTP | 应用层 | 80 | 超文本传输协议 |
POP3 | 应用层 | 110 | 邮局通讯协定第三版 |
TELNET | 应用层 | 23 | 远程登录 |
UDP封装的
协议名称 | 所属层次 | 端口 | 功能 |
---|---|---|---|
RIP | 网络层 | 520 | 路由信息协议 |
DHCP | 应用层 | 68 | 动态主机配置 |
DNS | 应用层 | 53 | 域名解析服务 |
TFTP | 应用层 | 69 | 普通文件传送协议 |
SNMP | 应用层 | 161 | 简单网络管理协议 |
IP封装的
协议名称 | 所属层次 | 功能 |
---|---|---|
OSPF | 网络层 | 开放最短路径优先协议 |
ARP | 网络层 | 地址解析协议 |
ICMP | 网络层 | 互联网控制消息协议 |
3. 各IP地址
3.1 IPv4
基本分类
类型 | 固定首位 | 范围 |
---|---|---|
A | 0 | 网络号1B,主机号3B |
B | 10 | 网络号2B,主机号2B |
C | 110 | 网络号3B,主机号1B |
D | 1110 | 多播地址 |
E | 1111 | 保留为今后使用 |
特别地址不作主机地址
- 主机号全0:代表本网络地址
- 主机号全1:代表本网络的广播地址(直接广播地址)
- 127.x.x.x:本地回环地址
- 32为全0:本网络本主机地址
- 32为全1:整个TCP/IP网络的广播地址,由于路由器具有隔离广播域的作用,实际等效为本网络的广播地址(本地广播地址)
私有地址不出现在Internet中
- 1个A类网段:10.0.0.0 ~ 10.255.255.255
- 16个B类网段:172.16.0.0 ~ 172.31.255.255
- 256个C类网段:192.168.0.0 ~ 192.168.255.255
特殊的CIDE无分类编址IP
- a.b.c.d/32:主机路由,对目的主机的IP地址专门指明一个路由,软路由,把一台主机当做路由。仅仅只能表示一台,所以子网掩码要用255.255.255.255
- 0.0.0.0/0:默认路由,当在路由表中找不到目的路由时,一律选择默认路由
3.2 IPv6
与IPv4的异同
IPv6 | IPv4 | |
---|---|---|
长度 | 16B(128位) | 4B(32位) |
首部长度 | 8nB | 4nB |
分片 | 不允许分片 | 允许分片 |
基本类型地址 | 单播、多播、 任播 | 单播 、多播 |
校验和 | 不校验 | 校验首部 |
4. 各表
4.1 路由表
基本格式:(目标网络的IP地址, 子网掩码, 下一跳, 接口)
关于下一跳:
- 无下一跳:在同一个网络内,与路由器直连的目标IP地址
默认网关的配置:
- (0.0.0.0, 0.0.0.0, 默认路由的IP, 与默认网关相连的端口)
- 作用:A路由器在本网络,B路由器连接着Internet,如果A收到不是本网络的数据,就发给默认路由。
4.2 各种介质适用情况
数据链路层知识P110
参数 | 10BASE2 | 10BASE5 | 10BASE-T | 10BASE-FL |
---|---|---|---|---|
传输媒体 | 基带同轴电缆(粗缆) | 基带同轴电缆(细缆) | 非屏蔽双绞线 | 光纤对 |
编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 |
拓扑结构 | 总线 | 总线 | 星型 | 点对点 |
最大段长 | 500m | 185m | 100m | 200m |
最多结点数目 | 100 | 30 | 2 | 2 |
这样记
数字就是粗缆细缆的意思,T就是Twisted-Pair即双绞线,FL就是Fiber Light即光纤(虽然不是这样翻译的)
双绞线在路由器见得多,而一个路由器连接多个电脑就像是星型一样。实际上双绞线的中心是集线器,在逻辑上依旧是总线,属于一个冲突域。
光纤要求比较多,弄一个中继器很难实现分发,所以干脆点到点。
另外两个就是总线型(总要有几个是总线型吧!)
5. 陌生的名词
5.1 SDN
软件定义网络,SDN(Software Defined Network)
传统路由器分为控制层面与数据层面,在近年流行的SDN中,将控制层面集中在了远程控制器
路由器的任务就是:
- 收到远程控制器的转发表
- 收到分组
- 直接按照转发表所指示的方向转发分组
路由器无需的任务:
- 维护转发表
- 无需路由选择软件
- 无需与其他路由器交换路由信息
5.2 VLAN
虚拟局域网,是数据链路层范畴,由交换机实现。
交换机隔离冲突域,不隔离广播域
但交换机实现的VLAN即隔离冲突域,又隔离广播域
5.3 最短帧长
以太网规定最短帧长为64B
若某物理链路采用CSMA/CD(载波监听多点接入/碰撞避免)算法控制访问介质,那么就需要考虑最短帧长
最短帧长 = 2 × ( 单向传输时延 + 单向传输时的其他耗时 ) × 宽带 最短帧长 = 2×(单向传输时延+单向传输时的其他耗时)×宽带 最短帧长=2×(单向传输时延+单向传输时的其他耗时)×宽带
该公式意思是,因为需要在发送过程中一直监听链路
在极限情况下,接收方刚准备接收就发生碰撞,因此会给发送方告知发生了碰撞,此时所需时间就是往返时延
若在往返时延之前就结束了发送,意味着不能监听到极限情况下的碰撞,也就丢失了这一个帧
5.4 通信 & 资源子网
通信子网:下三层(物理层、数据链路层、网络层)
资源子网:上三层(会话层、表示层、应用层)
传输层作为承上启下的作用。
5.5 调制 & 解调
调制:数字信号 转 模拟信号,基带 转 宽带
解调:模拟信号 转 数字信号,宽带 转 基带
5.6 开环控制 & 闭环控制
作用
取自P142,用于网络层的拥塞控制
区别
【静态】开环控制:在设计网络时事先将有关发生拥塞的因数考虑周到,力求网络在工作时不产生拥塞。
【动态】闭环控制:事先不考虑,采用监测网络系统去监视,哪里拥塞就把拥塞消息传到合适的地方。
玄学记忆
闭环就是关起来,只有内部人员(网络系统监视)才可以维护。
而开环控制不需要维护(实现考虑周全),所以不需要闭起来了。
5.7 SAP
SAP:Server Access Point,服务访问点
数据链路层SAP:MAC地址
网络层SAP:IP地址
传输层SAP:端口号
6. 各设备
一般性特征
能存储转发就能连接协议不同的网络。
6.1 物理层
(1) 中继器 RP Repeater
主要作用:将信号整形并放大放出去
限制:不能连接两个速率不一致的局域网
区分:放大器放大的是模拟信号,中继器放大的是数字信号
遵守:5-4-3原则——用4个中继器连接的5个网络最多只有3段可以挂在主机
(2) 集线器 Hub
主要作用:实质上是多端口的中继器
限制:仅支持半双工,因此会均分带宽
结构:逻辑总线,物理星型
(3) 放大器
常用于远距离模拟信号的传输,但同时会使噪声放大,引起失真。
6.2 数据链路层
(1) 局域网交换机 LAN Switches
主要作用:多端口的网桥,隔离冲突域
相关联:本身不隔离广播域,但用交换机实现的虚拟局域网VLAN,则隔离广播域
特点:全双工、无冲突、自学习、N个端口的(10MB/s)交换机总容量为N×10MB/s
注意:交换机收到某未知单播、广播时,不会转发到发来的端口上
分类
直通式交换机 | 存储转发式交换机 | |
---|---|---|
检查范围 | 只检查帧的目的地址 | 整个帧 |
优点 | 延时低 | 可靠性高 |
缺点 | 可靠性低 | 需要缓存整个帧,延时高 |
不同速率端口兼容性 | 无法转换速率不同的端口 | 支持速率不同端口间的转换 |
6.3 网络层
(1) 路由器 Router
如果转发本网络,无需经过路由器,直接交付
如果转发到其他网络,则需要根据转发表间接交付
两个表
路由表:由软件实现
转发表:从路由表得到,由软件或者硬件实现
实际上转发时靠的是转发表,而非路由表
7. 注意
7.1 网络层分片问题
- 分片时,数据部分长度必须是8B的整数倍
- 转发时,若MTU小于当前帧长,分片时需要考虑到底能不能分片,位于标志位[保留, DF, MF]的DF位(DF即Don’t Fragment, MF即More Fragment)
7.2 两种模型协议栈的区分
ISO/OSI | TCP/IP | |
---|---|---|
传输层 | 面向连接 | 无连接 & 面向连接 |
网络层 | 无连接 & 面向连接 | 无连接 |
这样记
TCP/IP模型中,传输层UDP无连接、TCP面向连接,网络层IP无连接。
ISO/OSI是理论理想的,为了保证安全,传输层必须是面向连接的才安全,而传输层实现了面向连接,网络层有没有连接无所谓了。
7.3 以太网的规定
物理层:采用曼彻斯特编码,每位数据需要两个电平表示,因此1Baud=0.5b/s
数据链路层:最小帧长64B
7.4 UDP与TCP的特殊校验
计算校验和之前,需要在原首部前加上12B的伪首部
伪首部结构:[源IP(4B), 目的IP(4B), 0(1B), 17/6(1B), UDP/TCP长度(2B)],其中UDP/TPC长度=原来UDP/TCP数据报的首部+数据长度。不包括伪首部的长度。
伪首部第四个是协议字段,UDP的伪首部为17,TCP的伪首部为6。
伪首部既不向下传递也不向上递交,仅在计算校验和时出现。
校验和范围:伪首部+首部+数据部分
7.5 域名与域名解析
对于 Aaaa.bb-bb.cc(…)cc.com
- Aaaa: 不区分大小写
- bb-bb: 连字符外不能用其他的符号
- cc(…)cc: 每个标号不超过63个字符
- com:顶级域名分三类①国家顶级域名;②通用顶级域名;③基础结构域名(有且仅有arpa):用于反向域名解析
- 整个域名:不超过255个字符
对于source.cdn.taibai.cloud域名的DNS解析过程:
- 根域名服务器:找到cloud的DNS顶级服务器
- 顶级域名服务器:找到taibai.cloud的DNS权限域名服务器A
- 权限域名服务器A:找到cdn.taibai.cloud的DNS权限域名服务器B
- 权限域名服务器B:找到source.cdn.taibai.cloud的IP地址
注意权限域名服务器以下的均为权限域名服务器
且注意cdn.taibai.cloud的权限域名服务器就可以告诉source.cdn.taibai.cloud的IP,无需再递归去找source.cdn.taibai.cloud权限域名服务器了,而且source.cdn.taibai.cloud根本不是权限域名服务器,而是实实在在的主机。
8. 参考资料
如有错误欢迎指正,本笔记主要参考资料:
[1] 王道论坛 2023年计算机网络考研复习指导 北京:电子工业出版社,2021.12
[2] 计算机网络谢希仁(第8版)
相关文章:

计算机网络笔记(横向)
该笔记也是我考研期间做的整理。一般网上的笔记是按照章节纪录的,我是按照知识点分类纪录的,大纲如下: 文章目录 1. 各报文1.1 各报文头部详解1.2 相关口诀 2. 各协议2.1 各应用层协议使用的传输层协议与端口2.2 各协议的过程2.2.1 数据链路层…...

0.redis-实践
1.redis内存设置多少,默认是0,不限制 2.如何配置,修改内存大小 1) 查看最大占用内存 # maxmeory <bytes> 或者 config get maxmemory 2) 默认内存多少可以用: 64位系统下不限制,32位下最多3G 3) 如何配置: 默认总内存的3/4 4) 如何修改…...

Redux的基本使用,从入门到入土
目录 一、初步使用Redux 1.安装Redux 2.配置状态机 二、Redux的核心概念 1.工作流程 2.工作流程 三、优化Redux 1.对action进行优化 2.type常量 3.reducer优化 四、react-redux使用 1.安装react-redux 2.全局注入store仓库 3.组件关联仓库 五、状态机的Hook 1.u…...

GDOUCTF2023-部分re复现
目录 [GDOUCTF 2023]Check_Your_Luck [GDOUCTF 2023]Tea [GDOUCTF 2023]doublegame [GDOUCTF 2023]Check_Your_Luck 打开题目是一串代码,明显的z3约束器求解 直接上脚本 import z3 from z3 import Reals z3.Solver() vReal(v) xReal(x) yReal(y) wReal(w) zRea…...

Java学习17(IO模型详解)
1、何为IO? I/O(Input/Outpu) 即输入/输出 。 从计算机结构的角度来解读一下 I/O。 根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设备、输出设备。 输入设备(比如键盘&am…...

Vue-全局过滤器以及进阶操作
前言 上篇文件讲述了,Vue全局过滤器的基本使用:Vue过滤器的基本使用 本篇将延续上文,讲述vue中过滤器的进阶操作 过滤器传参 如果有一天,多个地方使用过滤器,而且需要传递参数,那么可以这么写 多个过滤…...

财报解读:涅槃重生之后,新东方还想再造一个“文旅甄选”?
新东方逐渐走出了“微笑曲线”。 图源:新东方2023财年Q3财报 2023年4月19日,新东方披露了2023财年Q3财报(截至2023年2月28日止),营收7.5亿美元,同比增长22.8%;归母净利润为8165万美元ÿ…...

华为OD机试 - 过滤组合字符串(Python)
题目描述 每个数字关联多个字母,关联关系如下: 0 关联 “a”,”b”,”c” 1 关联 “d”,”e”,”f” 2 关联 “g”,”h”,”i” 3 关联 “j”,”k”,”l” 4 关联 “m”,”n”,”o” 5 关联 “p”,”q”,”r” 6 关联 “s”,”t” 7 关联 “u”,”v” 8 关联 “w”,”x” 9 …...

maven简单使用
实验课的作业用一大堆框架/库,统统要用maven管理。 头一次用,真痛苦。 所幸得以解决,maven真香~ 一步一步来。 1. maven 不是java人,只能说说粗浅的理解了。 简单来说,maven是一个管理项目的工具&…...

HTML学习笔记一
目录 HTML学习笔记 一、HTML标签 1、HTML语法规范 1.1标签的语法概述 1.2标签关系 2、HTML基本结构标签 2.1第一个HTML 2.2基本结构标签总结 3、开发工具 4、HTML常用标签 4.1标签的语义 4.2标题标签 4.3段落和换行标签 4.4文本格式化标签 4.5div和span标签 4.…...

人工智能十大流行算法,通俗易懂讲明白
人工智能是什么?很多人都知道,但大多又都说不清楚。 事实上,人工智能已经存在于我们生活中很久了。 比如我们常常用到的邮箱,其中垃圾邮件过滤就是依靠人工智能;比如每个智能手机都配备的指纹识别或人脸识别&#x…...

支持中英双语和多种插件的开源对话语言模型,160亿参数
一、开源项目简介 MOSS是一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张3090显卡运行,在INT4/8精度下可在单张3090显卡运行。MOSS基座语言模型在约七千亿中英文以及代码…...

SQL基础培训10-复杂查询原理
知识点: 1、SQL查询语句逻辑执行顺序 下面是一个查询语句的逻辑执行顺序(每段语句都标明了执行顺序号): 执行1:FROM 执行2:...

如何搭建信息存储中心?资源共享方案之搭建ftp个人服务器
serveru是一款由Rob Beckers开发的ftp服务器软件,全称为:serv-u ftp server,它功能强大又易于使用。ftp服务器用户通过ftp协议能在internet上共享文件。FTP协议是专门针对在两个系统之间传输大的文件开发出来的,它是TCP/IP协议的一…...

【LeetCode】188. 买卖股票的最佳时机 IV
188. 买卖股票的最佳时机 IV(困难) 思路 状态定义 一、首先确定要一天会有几种状态,不难想到有四种: a.当天买入了股票;b.当天卖出了股票;c.当天没有操作,但是之前是买入股票的状态ÿ…...

android studio RadioButton单选按钮
1.定义 <!--单选按钮--> <TextViewandroid:layout_marginTop"10dp"android:layout_width"match_parent"android:layout_height"wrap_content"android:text"请选择你的性别:"> </TextView> <RadioGrou…...

AI大模型快速发展,我们该如何应对?
文章目录 提问问题范例Prompt 公式 如何准确提问 随着人工智能技术的不断发展,聊天型大语言模型工具如 ChatGPT 在解决各种实际问题时具有越来越广泛的应用。这一技术的快速发展,不仅带来了更高的工作效率和更高的精度,同时也改变了人类的工作…...

java多线程BlockingDeque的三种线程安全正确退出方法
本文介绍两种BlockingDeque在多线程任务处理时正确结束的方法 一般最开始简单的多线程处理任务过程 把总任务放入BlockingDeque创建多个线程,每个线程内逻辑时,判断BlockingDeque任务是否处理完,处理完退出,还有任务就BlockingDe…...

从STM32F407到AT32F407(一)
雅特力公司的MCU有着性能超群,价格优越的巨大优势,缺点是相关资料少一些,我们可以充分利用ST的现有资源来开发它。 我用雅特力的STM32F437开发板,使用原子 stm32f407的开发板自带程序,测试串口程序,原设定…...

【数据结构】顺序表和链表基本实现(含全代码)
文章目录 一、什么是线性表1. 什么是顺序表动态开辟空间和数组的问题解释LeetCode-exercise 2. 什么是链表2.1链表的分类2.2常用的链表结构及区别2.3无头单向非循环链表的实现2.4带头双向循环链表的实现2.5循序表和链表的区别LeetCode-exercise 3. 快慢指针LeetCode-exercise 一…...

CMake : Linux 搭建开发 - g++、gdb
目录 1、环境搭建 1.1 编译器 GCC,调试器 GDB 1.2 CMake 2、G 编译 2.1 编译过程 编译预处理 *.i 编译 *.s 汇编 *.o 链接 bin 2.2 G 参数 -g -O[n] -l、-L -I -Wall、-w -o -D -fpic 3、GDB 调试器 3.1 调试命令参数 4、CMake 4.1 含义 4.2…...

大数据实战 --- 美团外卖平台数据分析
目录 开发环境 数据描述 功能需求 数据准备 数据分析 RDD操作 Spark SQL操作 创建Hbase数据表 创建外部表 统计查询 开发环境 HadoopHiveSparkHBase 启动Hadoop:start-all.sh 启动zookeeper:zkServer.sh start 启动Hive: nohup …...

三大本土化战略支点,大陆集团扩大中国市场生态合作「朋友圈」
“在中国,大陆集团已经走过30余年的发展与耕耘历程,并在过去10年间投资了超过30亿欧元。中国市场也成为了我们重要的‘增长引擎’与‘定海神针’。未来,我们将继续深耕中国这个技术导向的市场。”4月19日上海车展上,大陆集团首席执…...

为什么停更ROS2机器人课程-2023-
机器人工匠阿杰肺腑之言: 我放弃了ROS2课程 真正的危机不是同行竞争,比如教育从业者相互竞争不会催生ChatGPT…… 技术变革的突破式发展通常是新势力带来的而非传统行业的升级改革。 2013年也就是10年前在当时主流视频网站开启分享: 比如 …...

【SpringCloud常见面试题】
SpringCloud常见面试题 1.微服务篇1.1.SpringCloud常见组件有哪些?1.2.Nacos的服务注册表结构是怎样的?1.3.Nacos如何支撑阿里内部数十万服务注册压力?1.4.Nacos如何避免并发读写冲突问题?1.5.Nacos与Eureka的区别有哪些ÿ…...

ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎
作为家电行业的风向标和全球三大消费电子展之一,4月27日-30日,以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行,本届展会展现了科技、场景等创新成果,为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…...

拷贝构造函数和运算符重载
文章目录 拷贝构造函数特点分析拷贝构造函数情景 赋值运算符重载运算符重载operator<运算符重载 赋值运算符前置和后置重载 拷贝构造函数 在创建对象的时候,是不是存在一种函数,使得能创建一个于已经存在的对象一模一样的新对象,那么接下…...

本周热门chatGPT之AutoGPT-AgentGPT,可以实现完全自主实现任务,附部署使用教程
AutoGPT 是一个实验性的开源应用程序,它由GPT-4驱动,但有别于ChatGPT的是, 这与ChatGPT的底层语言模型一致。 AutoGPT 的定位是将LLM的"思想"串联起来,自主地实现你设定的任何目标。 简单的说,你只用提出…...

Mysql 优化LEFT JOIN语句
1.首先说一下个人对LEFT JOIN 语句的看法,原先我是没注意到LEFT JOIN 会影响到性能的,因为我平时在项目开发中,是比较经常见到很多个关联表的语句的。 2.阿里巴巴手册说过,连接表的语句最好不超过3次,但是我碰到的项目…...

全栈成长-python学习笔记之数据类型
python数据类型 数字类型 类型类型转换整型 intint() 字符串类型转换 浮点型保留整数 int(3.14)3 int(3.94)3浮点型 floatfloat() #####字符串类型 类型类型转换字符串 strstr() 将其他数据类型转为字符串 布尔类型与空类型 布尔类型 类型类型转换布尔型 boolbool()将其他…...