开篇提示:
因为博主图床使用的是GitHub进行存储的,因此当出现图片无法加载,可以尝试更换网络,或者用其他上网方法。当时想用
Gitee进行存储,但一直失败,过一段时间再试几次。目前这篇博文会一直更新,补充新的内容。
计算机网络知识点总结
第一章: 计算机网络
什么是计算机网络:
计算机网络是指将多个计算机连接在一起,实现通信和信息共享的系统,它允许计算机之间可以相互通信并且进行信息传输。
计算机网络的划分:
-
按照网络的作用范围进行分类:
广域网(WAN): 作用范围广,通常为几十到几千公里。
城域网(MAN): 作用范围一般为小城市,5~50Km。
局域网(LAN): 最常见的校园网和企业网。
个人区域网(PAN):
-
按照网络的使用者进行分类:
专用网
公用网
-
按照传输方式分类:
有线网
无线网
计算机网络的性能指标:
速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,利用率 等…
计算机网络体系结构:
- 传输方式(按照传输方向划分):
单工: 只能单方向传输。
半双工: 在同一时间内,只允许一个方向的数据通过。
全双工: 双方都可以进行数据通信。
- 传输方式(按照传输对象划分):
单播: 就是所谓的一对一传输。
多播: 一对多传输。
广播: 多对多的传输。
- 数据交换:
电路交换: 从源头到终点的传输。
报文交换: 先将报文传输到邻接点,全部存储下来,再转发到下一个节点。
分组交换: 先将报文分成多个分组,再将分组传输到邻接节点,保存下来后在转发到下一节点。
- 网络协议的三要素:
语法: 数据与控制信息的结构或格式
语义: 发出何种控制信息,完成何种动作。
同步: 事件实现顺序的详细说明。
-
OSI 七层模型:
应用层: 通过应用进程的交互来完成网络应用。
表示层:
会话层: 创建,维护,管理,关闭会话。
传输层: 提供端到端的服务。具有流量控制和拥塞控制,提供数据传输服务。
网络层: 单位是分组。将帧组装成分组,进行Ip的寻址和路由选择。确保传输到目标主机。
数据链路层: 单位是帧。将比特流组装成帧,并且传送帧,同时进行差错检测和流量控制。
物理层: 单位是 比特。传输比特流,处理网络中的物理传输媒介。
- TCP/IP 四层模型:
应用层:
传输层:
网际层(网络层):
网络接口层:
第二章: 物理层
物理层的主要特点:
传输数据的单位是 比特,任务就是透明的传输比特流。
物理层的四大特性:
- 机械特性: 指明接口所用接线器的尺寸,大小和形状等。
- 电气特性: 指明接口电压的范围。
- 功能特性: 指明某一电平电压的意义。
- 过程特性: 指不同时间的出现顺序。
物理层中信号的分类:
- 模拟信号: 连续信号。
- 数字信号: 离散信号。不同的离散数值被称为码元。
物理层的传输媒介:
导引型传输媒介:
双绞线: UTP(无屏蔽双绞线) 抗干扰能力差,价格便宜。
STP(屏蔽双绞线) 抗干扰能力强,价格贵。
同轴电缆:
光缆:
非导引型传输媒介: 无线电波,微波…
四种复用方式:
时分,码分,频分,波分。
传输方式:
同时间传输数量:
并行传输,串行传输
通信时双方的反应:
同步传输,异步传输
通过传输的信号类型:
基带传输,频带传输
传输方向:
单工,半双工,全双工
传输对象:
单播,多播,广播
香农公式:
其中: C为信道的极限信息传输速率
S/N为信噪比,常用的单位为db(分贝)
第三章: 数据链路层
信道类型:
点对点信道: 使用一对一的点对点通信方式。
广播信道: 使用的一对多的广播通信方式。
点对点协议PPP(Point to Point Protocol)
PPP协议的特点:
- 简单:PPP协议很简单,接收方接受到一个帧,就进行CRC检测,如果CRC检测正确,就收下这个帧,反之就抛弃掉这个帧。
- 封装成帧: PPP协议规定了特殊的字符作为帧定界符,以便接收方接受到这个比特流能够准确找到帧的起始位置和结束位置。
- 透明性: PPP协议保证了传输的透明性,当数据中碰巧出现了和帧定界符一样的符号时,PPP采用了转义字符解决了这一问题。
- 支持多种网络层协议: 支持IP和IPX等…
- 支持多种类型链路: PPP能够在多种类型的链路上运行,如并行,串行。同步,异步。低速,高速。
PPP协议适合在线路质量不是太差的情况下。
CSMA/CD协议
多点接入(MA): 多个主机在一条主线上,竞争使用总线。
载波监听(CS): 发送数据前先检测总线(“先听后说”)
若总线空闲,则立即发送。
若总线忙,则持续检测总线直到总线空闲时立即发送。
碰撞检测(CD): 边发边检测碰撞(“边听边说”)
若检测到碰撞则立即停止发送,退避一段随机时间后再重新发送。
退避时间的算法(截断二进制指数退避算法):
退避时间 = 2ε × 随机数 随机数 0 ~ 2的k次幂-1,k为重传次数。
ε = 25.6微秒 2ε = 51.2微秒
帧发送流程:
帧接收流程:
数据链路层的三个基本问题:
封装成帧: 就是在数据的前后分别添加首部和尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是帧定界。
一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。
透明传输: 当传送的帧是文本文件的帧,数据部分不会出现SOH,EOT这样的帧定界控制字符。这样的传输就是透明传输。
具体方法: 在出现控制字符的前面加上转义字符“ESC”,在接收端的数据链路层再把数据送到网络层之前删除这个插入的转义字符,这种方法被称为字符填充,字节填充。
★★★差错检测(CRC检验):
在数据链路层仅仅是使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,不能提供可靠的传输。想要实现可靠传输需要加上确认,重传和序号功能。
第四章: 网络层
网络层设计思路:
网络层设计的尽可能简单,向上层只提供简单的,灵活的,无连接的,尽最大努力交付的数据报服务。 这里的数据报也被常称为**“分组”**。
网络层提供的两种服务:
虚电路服务和数据报服务
补充:
网络层的两个层面: 数据层面和控制层面
具体区别见下图:
与IP协议配套的三个协议:
- ARP地址解析协议
- ICMP网际控制报文协议
- IGMP网际组控制协议
- (RARP逆地址解析协议)
各层的中间设备:
物理层
- 中继器(Repeater):中继器用于扩展以太网或其他有线网络的传输距离。它接收来自一个端口的数字信号,经过放大和再生处理,然后通过另一个端口重新发送信号。中继器只是简单地将信号放大,不能处理逻辑或解决网络冲突。
- 集线器(Hub):集线器也是用于扩展以太网的传输距离。它类似于中继器,但它具有多个端口,可以将多个设备连接到同一个集线器上。然而,集线器工作在物理层上,它会将接收到的信号广播到所有连接的设备,因此缺乏智能路由功能。
- 网桥(Bridge):网桥用于连接两个以太网段,并在这两个网段之间转发数据。网桥工作在物理层和数据链路层之间,可以学习和维护连接到不同网段的设备的MAC地址,并根据目标设备的MAC地址进行转发决策。
- 交换机(Switch):交换机是现代网络中最常用的物理层中间设备之一。它类似于网桥,但通常具有更多的端口,并且具有更高的性能和更复杂的功能。交换机能够在局域网内建立虚拟连接表,并根据目标设备的MAC地址将数据包转发到正确的端口,实现更高效的数据传输。
数据链路层
- 网桥(Bridge):网桥在数据链路层上工作,用于连接两个局域网(LAN)并转发数据帧。网桥可以学习和维护连接到不同网段的设备的MAC地址,并根据目标设备的MAC地址进行转发决策,以实现局域网之间的通信。
- 交换机(Switch):交换机是现代网络中最常用的数据链路层中间设备之一。它类似于网桥,但通常具有更多的端口,并且具有更高的性能和更复杂的功能。交换机能够在局域网内建立虚拟连接表,并根据目标设备的MAC地址将数据包转发到正确的端口,实现更高效的数据传输。
- 桥接器(Bridge/Router):桥接器是一种具有网桥和路由器功能的中间设备。它可以根据需要在数据链路层和网络层之间进行数据转发和转换。桥接器可以连接不同的网络类型,例如以太网和无线局域网(WLAN),并提供数据链路层和网络层之间的转换。
网络层
- 路由器(Router):路由器是网络层中最常见和重要的中间设备之一。它根据目标IP地址和路由表中的路由信息,将数据包从源网络转发到目标网络。路由器能够选择最佳的路径并进行数据包的转发和路由决策,以确保数据包能够按照正确的路径到达目的地。
- 网关(Gateway):网关是连接不同网络之间的中间设备。它可以将一个网络的数据包转换为另一个网络所需的协议和格式,以实现异构网络之间的通信。网关通常位于网络边界,将私有网络与公共网络(例如互联网)连接起来
IP地址:
IP地址是由32位的标识符组成的,通常采用点分十进制表示。
IP地址: < 网络号 > + < 主机号 > 因此当网络号为n时,主机号就为32-n。
补充: IP地址指明了连接在某一网络上的一个主机。
不连网的主机就没有IP地址
IP地址的分类(重点在ABC类):
-
A类地址:类A地址是用于大型网络的地址范围,其高位比特为0。一个类A地址由一个网络部分和三个主机部分组成,可以支持最多16,777,214个主机。类A地址范围从1.0.0.0到126.0.0.0,其中1.0.0.0是网络地址,126.0.0.0是保留地址。
-
B类地址:类B地址用于中等规模的网络,其高位比特以10开头。一个类B地址由一个网络部分和两个主机部分组成,可以支持最多65,534个主机。类B地址范围从128.0.0.0到191.255.0.0,其中128.0.0.0是网络地址,191.255.0.0是保留地址。
-
C类地址:类C地址用于小型网络,其高位比特以110开头。一个类C地址由一个网络部分和一个主机部分组成,可以支持最多254个主机。类C地址范围从192.0.0.0到223.255.255.0,其中192.0.0.0是网络地址,223.255.255.0是保留地址。
注意: A B C类地址都是单播地址
-
D类地址:类D地址是用于多播(Multicast)的地址范围,其高位比特以1110开头。多播地址用于将数据包同时传输给一组特定的目标设备。类D地址范围从224.0.0.0到239.255.255.255。
-
E类地址:类E地址是保留地址范围,其高位比特以1111开头。这些地址保留供将来使用或特殊目的使用,不用于一般的网络通信。类E地址范围从240.0.0.0到255.255.255.255。
CIDR:
CIDR斜线记法: 斜线后面是网络前缀所占的位数。
例如: 128.14.35.7/20 表示的是二进制IP地址的前20位是网络前缀,剩下的12就是主机号。
最小地址: 将二进制IP地址的主机号全变为0
最大地址: 将二进制IP地址的主机号全变为1
地址掩码:
地址掩码又称为掩码,是由一连串1和接着的1连串0组成,而1的个数就是网络前缀的长度。同时地址掩码也被称为子网掩码。
如何计算网络地址:
将二进制的IP地址和地址掩码进行按位AND运算 即可得出网络地址。
补充: AND运算只有1 AND 1 = 1,其余情况全为0。
IP地址的特点:
- 每一个IP地址都有网路前缀和主机号两部分组成。
- 实际上IP地址就是标志一台主机和一条链路的接口。
- 用转发器或交换机连接起来的若干个局域网仍为1个网络。
- 在IP地址中,所有分配到网络前缀的网络都是平等的。
IP地址和MAC地址:
MAC地址为物理地址,已经固化到网卡上了。
IP地址为逻辑地址,网络层及以上层使用的地址。
ARP:
ARP地址解析协议是在主机的ARP高速缓存中存入一个从IP地址到MAC地址的映射表,并且这个映射表经常动态更新。
当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的MAC地址,再把这个MAC地址写入MAC帧,然后通过局域网把该MAC帧发往此MAC地址。
也有可能查不到主机B的IP地址。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机其高速缓存还是空的.在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机。
- ARP进程在本局域网上广播发送一个ARP请求分组。
- 在本局域网上的所以主机上运行的ARP进程都会收到此ARP请求分组。
- 若主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP分组,并向A发送ARP响应分组,同时在这个ARP响应分组中写入自己的MAC地址。
- 主机A收到主机B的ARP响应分组后,就在ARP高速缓存中写入B的IP地址到MAC地址的映射。
IP数据报格式:
其中标志在IP数据报分片的时候要用到 MF(More Fragment)。MF = 1即表示后面还有分片。MF = 0 表示这已经是若干数据报的最后一片。DF(Don‘t Fragment)。意思是不能分片 只有当DF = 0的时候才允许分片。
小技巧:MF位只有最后一个为0,其他全为1。
★★★IP层转发分组:
将目的网络和子网掩码进行AND运算,根据最长前缀匹配将结果去查找路由表,即可找到下一跳。
(2) 128.96.40.12
(3) 128.96.40.151
(4) 192.4.153.17
题解:
IPV6:
由于IPv4地址的耗尽,我国在2014年至2015年开始部署IPv6。
IPv6的主要变化:
- 更大的地址空间:从IPv4的32位增大到4倍,及增大到128位。
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用
- IPv6首部改为8字节对齐。原来IPv4首部是4字节对齐。
ICMP:
终点不可达:当路由器或主机不能交付数据报就向源点发送终点不可达报文。
时间超时:当路由器收到生存时间为0的数据报时,除丢弃该数据报外,还要向源点发送时间超时报文。
参数问题:当路由器或目的主机收到数据报的首部中有字段不正确时就会丢弃该数据报,并向源点发送参数错误报文。
改变路由(重定向):路由器把改变路由的报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
RIP和OSPF:
RIP是基于距离向量的路由选择协议,RIP允许一条路径最多可以包含15个网络,当距离等于16时,视为不可达。
OSPF是基于链路状态的路由选择协议,使用了迪杰斯特拉的SPF最短路径算法。
RIP与OSPF的区别:
- RIP是基于距离向量的协议,OSPF是基于链路状态的协议。
- RIP适用于中小型网络,OSPF适用于大规模网络。
- OSPF的收敛速度比RIP更加迅速。
- OSPF防环,RIP不防环。
★★★子网划分:
题解:
其中的最小地址就是将主机号全部变为0,最大地址就是将主机号全部变为1。
★★★IP数据报分片:
解题:
注意题目上给的数据报长度是否包含头部的20字节。
片偏移字段 = 起始数据位/8 第一片数据报的起始数据位为0。
第五章: 传输层
传输层主要是提供端到端的一个服务,并且向上层提供通信服务。
新概念 端口: 一个服务器有很多的端口,每个应用程序对应一个端口号。
常用的端口号(牢记):
- SMTP(电子邮件传输协议): 25
- HTTP(超文本传输协议): 80
- HTTPS(超文本传输安全协议): 443
- DNS(域名系统): 53
- TFTP(简单文件传输协议): 69
- SNMP(简短网络管理协议): 161
- FTP(文件传输协议) 21(20)
传输层就围绕着两个协议展开: TCP UDP
TCP(传输控制协议):
TCP是TCP/IP体系中较为复杂的协议,是传输层最重要的协议。
TCP 连接的端点是套接字
TCP协议的特点:
- TCP是面向连接的传输层协议。
- TCP只能有两个端点,每一条的TCP连接只能是点对点的。
- TCP提供可靠的交付服务。
- TCP提供全双工通信
- TCP是面向字节流的
- TCP的首部开销相比于UDP要大,TCP首部占20个字节。
- TCP具有拥塞控制和流量控制。
TCP首部格式:
TCP可靠传输的实现:
- 对要发送的数据进行按字节的编号
- 确认序号
- 超时重传
- 滑动窗口
流量控制和拥塞控制:
流量控制是指让发送方发送数据不要过快,要让接收方来得及接收。
拥塞控制是指防止过多的数据注入到网络中,这样就可以使网络中的路由器和链路不至于过载。
TCP的滑动窗口:
1.凡是已经发送的数据在未收到确认之前都必须保留,以便在后面超时重传中使用。
2.发送窗口大小往往是根据接收窗口大小而改变的。
3.发送窗口一定不能超过接收窗口。
4.窗口越大,发送方就可以在对方确认前连续发送多个数据,因而获得更高的传输效率。
5.发送窗口的后沿不可能向后移动,但有可能不移动:
- 没有收到新确认信息,对方的通知窗口大小也不变。
- 收到了新的确认但对方通知的窗口缩小了。
窗口内有3个指针 p1 p2 p3
p1之前的数据是已发送并收到确认的部分。
p2是允许发送但尚未发送的部分。
p3之后的数据是不允许发送的部分。
B接收窗口只能对按序收到的数据中的最高序号给出确认。
TCP拥塞控制:
解读:
慢启动:就是在一定的时间内cwnd成指数增长的过程。
拥塞控制: 就是在一定的时间内cwnd成+1增长的过程和cwnd降为1的过程。
快恢复: cwnd降为1半,收到了3个重复的ACK报文。
拥塞控制超时: cwnd降为1。
UDP(用户数据报协议):
UDP协议的特点:
- UDP在传输数据前不需要建立连接(即UDP是无连接的)。
- UDP使用尽最大努力去交付,即不保证可靠交付。
- UDP是面向报文的。
- UDP没有拥塞控制(因此网络出现拥塞不会使源主机的发送速率降低)。
- UDP支持一对一,一对多,多对一,多对多的交互通信。
- UDP首部开销小,首部占8个字节。
UDP的首部格式:
★★★TCP的三次握手和四次挥手
建立连接:
文字讲解:
当客户端向服务端发起连接时,客户端会先向服务端放送1个SYN包,表示能否与它建立连接。如果服务端同意连接,会回复一个SYN+ACK包。客户端收到之后会回复一包ACK包,连接建立。总共发了3包数据,所以被称为三次握手。
问题一: 为什么不是两次握手而是三次握手?
答: 这是为了防止已经失效的请求报文,突然又传到服务端导致服务端错误。
断开连接:
文字讲解:
假设客户端发起连接关闭请求,客户端需要向服务端发送一包FIN包,表示要关闭连接,自己则进入终止等待1状态。服务端收到FIN包同时回复一包ACK包,表示自己进入了关闭等待状态,客户端则进入终止等待2状态。服务端此时还可以发送未发送的数据,而客户端还可以接收数据。最后服务端发送1包FIN包,进入最后确认状态。客户端收到之后回复1包ACK包,自己进入超时等待状态,过一段时间关闭连接。服务端收到ACK包后立即关闭连接。
问题一: 为什么客户端需要等待超时时间?
答: 因为假设客户端发送完ACK包后就直接释放连接。一旦ACK包在网络中丢失,就会一直停留在最后确认状态。
第六章:应用层
应用层是最接近于用户的一层。 为用户提供应用服务。
DNS(域名解析协议):
域名: 因特网使用的命名系统,用含有特定含义的主机名映射主机的IP地址。
例如: www.baidu.com ----> 百度的IP地址
DNS所作的事就是将域名解析成IP地址。
顶级域名: cn/us/uk;com/net/org/gov/int/aero
二级域名: ac/com/edu/gov/mil/net/org
三级域名: www/mail/ftp
四级域名: www/mail/ftp
根域名服务器: 并不负责解析,当域名传到根域名服务器,根域名服务器会查找这个域名的顶级域名并转发到对应的顶级域名服务器。
顶级域名服务器: 解析二级域名并进行分发。
权限域名服务器: 查找到对应的IP。
本地域名服务器: 当本地存储的有域名对应的IP,就回去查找对应的本地域名服务器,相当于一个高速缓存。
谁放在最后一个谁就是顶级域名;
FTP(文件传输协议):
提供不同系统之间的文件传输能力
以用户权限管理的方式提供用户对远程FTP服务器的文件管理能力。
万维网和Http协议(Http: 超文本传输协议):
请求资源的方式:
自行输入URL
点击超链接
共进行三步:
1.建立TCP连接
2.HTTP请求报文
3.HTTP响应报文
4.释放TCP连接
Http特点:
简单快速,灵活,无连接,无状态。
无连接:
限制每次连接只处理一个请求,处理完请求,得到客户端的应答,就断开连接,节省传输时间。
无状态:
指对事务的处理没有记忆功能,服务器不知道客户端是什么状态,发送完请求,不会记录客户端任何信息。
Http的报文结构:
共两种报文结构:
请求报文 : 客户端 -> 服务端
响应报文 : 服务端 -> 客户端
面向文本,传输的是ASCII码串
报文格式:
开始行(请求行/响应行)
首部行(请求头/响应头)
实体主体
Http请求方式:
补充: GET请求与POST请求的区别:
- Get请求在浏览器回退时是无害的,POST会再次提交一次请求。
- GET请求会被浏览器主动cache,POST不会。
- GET请求只能进行url编码,POST支持多种编码。
- GET请求参数会完全保存在浏览器的浏览记录中,而POST请求的请求参数不会保存。
- GET请求的url长度是有限制的,POST没有。
- GET只接受ASCII字符,POST没有限制。
- POST比GET安全,因为GET的请求参数是直接拼在url上的,不能传递敏感信息。
- POST参数是放在请求体中(Request Body),GET放在url。
Http常用的状态码:
301: 永久重定向
302: 暂时重定向
200: OK表示客户端发来的请求在服务端被正确处理。
400: bad request 请求报文存在语法错误。
403: forbidden 表示对请求资源拒绝访问。
404: Not Found 表示在服务器没有找到请求的资源。
500: 表示服务端发生错误。
503: 表示服务器暂时不能处理请求。
补充:Http和Https的区别:
1.Https协议需要申请CA证书,需要一定费用。
2.Http是超文本传输协议,信息都是明文传输的。Https是具有安全性的,信息是经过SSL加密传输的。
3.端口不一样,Http端口是80,Https是443。
4.Http的连接十分简单,无状态。Https是由SSL+Http协议构建的可进行加密传输,身份认证的网络协议,比Http更安全。
因为博主目前大二,可能等到我(可能)考研的时候,当再次回头看,会不断完善计算机网络的内容的。(最近主要在面对四六级+期末考试) 感谢支持!!!
GET请求的url长度是有限制的,POST没有。
- GET只接受ASCII字符,POST没有限制。
- POST比GET安全,因为GET的请求参数是直接拼在url上的,不能传递敏感信息。
- POST参数是放在请求体中(Request Body),GET放在url。
Http常用的状态码:
[外链图片转存中…(img-tUKX2LjS-1686149987574)]
301: 永久重定向
302: 暂时重定向
200: OK表示客户端发来的请求在服务端被正确处理。
400: bad request 请求报文存在语法错误。
403: forbidden 表示对请求资源拒绝访问。
404: Not Found 表示在服务器没有找到请求的资源。
500: 表示服务端发生错误。
503: 表示服务器暂时不能处理请求。
补充:Http和Https的区别:
1.Https协议需要申请CA证书,需要一定费用。
2.Http是超文本传输协议,信息都是明文传输的。Https是具有安全性的,信息是经过SSL加密传输的。
3.端口不一样,Http端口是80,Https是443。
4.Http的连接十分简单,无状态。Https是由SSL+Http协议构建的可进行加密传输,身份认证的网络协议,比Http更安全。
因为博主目前大二,可能等到我(可能)考研的时候,当再次回头看,会不断完善计算机网络的内容的。(最近主要在面对四六级+期末考试) 感谢支持!!!