本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》
01 物理层
在网上看到其他人做了详细的笔记,就不再多余写了,直接参考着学习吧。
1
详解物理层-通信基础【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
2
相关补充
码元
几进制码元就有几种状态,然后看这几种状态能穷尽几个比特位,就是一个码元脉冲能携带的比特位数。
半功率点
模电——半功率点(-3dB)什么意思?_Xa_L的博客-CSDN博客
高频信号的特点
02 数据链路层
在网上看到其他人做了详细的笔记,就不再多余写了,直接参考着学习吧。
1
详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
2
详解数据链路层-介质访问控制【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
3
详解数据链路层-局域网&广域网【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
4
相关补充
隔离冲突域,只会将冲突限制在一个交换机内,如果有两台交换机,那么这台交换机的冲突并不会影响其他交换机;
隔离广播域,只会将广播限制在一个路由器内,如果有两台路由器,那么这台路由器的广播并不会送到其他路由器;
局域网(Local Area Network):简称LAN,是指在某一区域内由多态计算机互联成的计算机组,使用广播信道。
特点
覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内;
只用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s);
通信延迟时间短,误码率低,可靠性较高;
各站为平等关系,共享传输信道;
多采用分布式控制和广播式信道,能进行广播和组播。
以太网
以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。
以太网是一种基带总线局域网规范,使用CSMA/CD技术
以太网在局域网各种技术中站统治性地位
造价低廉(以太网网卡不到100块)
是应用最广泛的局域网技术
比令牌环网、ATM网便宜,简单
满足网络速率的要求10Mb/s~10Gb/s
以太网的两个标准
DIX Ethernet V2:第一个局域网产品(以太网)规约
IEEE 802.3:IEEE 802.3委员会802.3工作组制定的第一个IEEE的以太网标准(帧的格式有一点变动)
因此以太网也可以叫做802.3局域网
以太网提供无连接、不可靠的服务
无连接:发送方和接收方之间无握手过程
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
以太网协议介绍(ARP、UDP、ICMP、IP)_以太网传输协议是哪个协议-CSDN博客
适配器与MAC地址
计算机与外界局域网的连接通过通信适配器,是在主机箱内的网络接口板/网络接口卡(网卡),现在不再使用单独网卡,已经嵌入好了。
适配器上装有处理器和储存器(包括RAM和ROM),ROM上会有计算机硬件地址MAC地址。
在局域网中,硬件地址又称为物理地址或MAC地址(实际上是标识符)。
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21
广域网
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性远程网络。
广域网的通信子网主要使用分组交换技术(属于网络层)。广域网的通信子网可以利用公用分组交换网、卫星通信和无线分组交换技术,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网是世界范围内最大的广域网。
结点交换机的功能是用于转发分组,但是相比于路由器,结点交换机只能在单个网络中转发分组,路由器可以在多个网络之间转发分组。
广域网中可以有交换机、集线器、路由器等设备,广域网覆盖的网络体系结构层次包含物理层、链路层、网络层,局域网只覆盖物理层、链路层。广域网普遍采用点对点技术,局域网普遍采用多点接入技术,即逻辑上是总线型。广域网强调资源共享,局域网强调数据传输。
疑惑点:
局域网用MAC通讯为什么还要IP?_局域网内部是通过mac地址来转发,而不是通过ip地址-CSDN博客
网络是分层的,从应用层到物理层各层有各层的功能,如果一个层次没有配置就没法调用下一层的功能。因此,如果你没有配置网络层的IP地址,就没法调用数据链路层的MAC地址进行通信。
LAN中是采用MAC通信,但是上层协议没法直接调用MAC协议,必须使用ARP协议将IP地址转换为MAC地址才能通信。如果你自己写程序,可以直接调用MAC,这时就不需要配置IP地址了。
二层交换机之间通信是直接使用MAC地址通信的(通信原理是“转发已知帧,广播未知帧,丢弃同端口帧”),不需要进行转换。
在主机或路由器上要使用ARP协议进行IP到MAC的转换。两台电脑通讯的全过程为:1.根据子网掩码判断源IP与目标IP是属于同一网络;2.使用ARP协议找到相应IP的MAC地址;3.使用MAC地址在LAN内进行通信。
简单来说,局域网不直接用Mac地址是为了局域网广域网统一,不用单独写用局域网通信的协议。
局域网都在同一个网段下,广域网就是把局域网都连接起来形成互联网。
03 网络层
在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。
1
详解网络层-网络层概述和编址【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
2
详解网络层-网络层协议【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
3
静态路由:手动配置的路由信息;
动态路由:自动配置的路由信息。
网络层设备
路由器:一种具有多个输入端口和多个输出端口的专用计算机,任务是转发分组若收到RIP/OSPF分组等,把分组送往路由选择处理机;若收到数据分组,查找转发表并输出
输入端口:查找和转发功能在路由器的交换功能中最重要
输出端口:分组的速率赶不上分组进入队列的速率,会造成后进入队列的分组由于没有存储空间而丢弃,即路由器中输入或输出队列产生溢出是造成分组丢失的重要原因。4
本小节后续内容可直接观看原视频,或者查看网友的这篇笔记:
网络层只能确保数据到达某一个设备,网络层为主机间的通信提供服务,但是仅仅将数据传送到主机并没有通信结束,只有将数据送交到具体的进程或者进程中具体的线程才能实现通信的过程;因此网络层的通信并未完成,需要传输层实现进程与进程之间的逻辑通信。
网络层提供最大努力交付,是不可靠传输;因此需要上一层传输层担起可靠传输的职责;传输层有UDP、TCP两大协议;其中UDP不可靠,TCP可靠,因此网络层不能可靠传输的话,传输层就可以通过使用TCP协议保证可靠传输;如果传输层使用的UDP协议,就需要再最上一层应用层实现可靠传输。
每个路由器总是有两个或两个以上IP地址,路由器的每个接口都会有不同网络号的IP地址。
IPV4
IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。无论哪类IP地址,都由网络号和主机号两部分组成。一般将IP地址分为A、B、C、D、E 五类地址:
每一类IP地址,可以通过第一个字节的大小来判断,如上图中各类ip后的数字范围。
除了前面的固定几位,剩下的全为0即是范围下限值,剩下的全为1即是范围上限值。
以C类IP为例,范围是11000000b~11011111b,也就是192~223.
特殊IP地址
环回地址就是自己给自己发,检测设备是否可以正确的接受发送数据、网络层是否能正常工作等。
私有ip地址
在现在的网络中,IP地址分为公网IP地址和私有IP地址。
公网IP是在Internet使用的IP地址,而私有IP地址则是在局域网中使用的IP地址。
私有IP地址是一段保留的IP地址。只使用在局域网中,无法在Internet上使用。
当私有网络内的主机要与位于公网上的主机进行通讯时必须经过地址转换,将其私有地址转换为合法公网地址才能对外访问。
NAT-Network Address Translation 网络地址转换
所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址
更多参考:
私有IP地址定义、私有IP地址范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)内网ip地址范围、局域网ip范围、外网ip、互联网ip-CSDN博客
网络地址转换NAT
网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
子网划分与无分类编址
CIDR中已经废弃了IP地址的分类,无分类编址的命名也是由此得来的,所以目前基本已经不再采用所谓的A类、B类、C类的IP地址分类表示法,引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;但仍然是基于ABCD大类来进行子网划分。
IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_子网掩码计算例题和讲解-CSDN博客
地址解析协议ARP
ARP协议:Address Resolution Protocol(地址解析协议),完成主机或路由器IP地址到MAC地址的映射。解决链路层和物理层下一跳走哪的问题。
具体参考:ARP协议详解-CSDN博客
动态主机配置协议DHCP
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。
DHCP于1993年10月成为标准协议,其前身是BOOTP协议。DHCP协议由RFC 2131定义,采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,DHCP Server为网络上的每个设备动态分配IP地址、子网掩码、默认网关地址,域名服务器(DNS)地址和其他相关配置参数,以便可以与其他IP网络通信。动态主机配置协议DHCP是应用层协议,使用客户/服务器方式(即客户端和服务端交互),客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网机制(只要设备进入DHCP服务器管辖范围内),主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用(每一个DHCP服务器有自己的IP地址池,当一个设备进入服务器范围内,就给一个IP,做了以后就收回来,可以给其他设备用),支持移动用户加入网络,支持在用地址续租。
DHCP服务器聚合DHCP客户端的交换过程如下:
主机广播DHCP发现报文。一个主机连入局域网,广播给这个网络里所有设备,试图找到网络中的服务器;
DHCP服务器广播DHCP提供报文。如果网络内有DHCP服务器,且存在有空余IP地址的DHCP服务器,此时这些DHCP服务器就会拟分配给主机一个IP地址及相关配置,这个拟分配的信息主机会收到,但是还不能用。可能有多个DHCP服务器发来提供报文,但是主机只选择最先到的;
主机广播DHCP请求报文。主机向第一个发来提供报文DHCP服务器请求提供IP地址(这里还是用广播,告诉其他DHCP服务器已经有选中的服务器了);
DHCP服务器广播DHCP确认报文,服务器正式将IP地址分配给主机。如下电脑中自动获取IP等信息
更多参考:
路由选择
04 传输层
在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。
TCP三次握手建立连接,四次挥手释放连接。
端口号(port)
端口号(port)是传输层协议的内容。
端口号是一个2字节、16比特位的整数。
端口号用来标识一个进程,告诉操作系统当前数据要交给哪一个进程来处理。
IP地址 + 端口号能够唯一标识网络上的某一台主机的某一个进程。
一个端口号只能被一个进程占用。
任何的网络服务或网络客户端,如果要进行正常的数据通信,必须要使用端口号来唯一标识自己。一个进程可以与一个端口号绑定,再加上主机IP地址该端口号就在网络层面上唯一标识一台主机上的唯一一个进程。
这种IP+port标识的方案叫做socket通信。
PID vs PORT
一台机器上会存在大量的进程,为了区分所有的进程,设计了PID来加以区分(系统的概念);但是只有部分进程需要进行网络数据请求,所以用port来标识这些需要进行网络数据请求的进程(网络的概念)。
这类似于身份证号可以唯一标识每一个人,但是在学校里又用学号来唯一标识每一个人。身份证号可以看做PID,学号可以看做port,它们之间并不冲突,都是在各自场景下最合适的管理方案。
注意,端口是传输层才有的概念。
传输层用一个 16 位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和传输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。
UDP注意点
应用层给UDP多长的报文,UDP就会照样发送一整个完整的报文给网络层;
因此当报文长度过大时,网络层就需要对其进行分片,又因为接下来要传给链路层有MTU的限制,降低了网络层的效率。
TCP注意点
面向连接:使用TCP前必须先建立连接,传送数据完毕后再释放连接;虚连接表示表面上看上去是两个进程之间直接通信,但实际物理线路上需要从上而下封装再从下而上解封装。
每一个TCP连接只有两个端点,也就是每一个TCP连接都是点对点、一对一的。所以TCP协议无法广播、多播。
TCP提供可靠交付的服务,不丢不重,按序到达。
TCP提供全双工通信。两方可以同时发数据也可以同时接收数据,所以TCP连接的两端都会设置发送缓存和接收缓存。
TCP面向字节流:流是流入进程或从进程中流出的字节序列,虽然应用进程和TCP的交互是一次发送一个数据块,但是TCP会把交下来的数据仅仅看成一连串的无结构字节流。
05 应用层
在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。
DNS:指域名系统(Domain Name System)
HTTP:指超文本传输协议(Hypertext Transfer Protocol)
DNS协议
DNS域名详细解析过程(最全面,看这一篇就够)_dns解析-CSDN博客
FTP协议
【网络协议详解】——FTP系统协议(学习笔记)_ftp协议详解-CSDN博客
HTTP协议
Http和Https协议有何区别?
HTTP以明文方式发送内容且没有提供任何形式的数据加密功能,在涉及敏感信息(如信用卡号、密码等支付相关内容)时存在安全隐患。因此,我们应该使用另一种更为安全可靠的协议:HTTPS。HTTPS在HTTP基础上引入了SSL协议,并通过证书验证服务器身份以确保通信过程中数据得到合理保护和加密处理。
补充什么是SSL:SSL协议原理详解-CSDN博客
注意和SSH区分:SSH与SSL有什么区别? - 闪电博 (wbolt.com)
SSH与SSL之间的异同
此时,您知道SSH与SSL之间有很多相似之处:
两者都可以帮助您创建安全连接。
两者都对在两个设备之间传递的数据进行加密。
SSH与SSL之间的主要区别在于,SSH用于创建通往另一台计算机的安全隧道,您可以从中发出命令、传输数据等。
另一方面,SSL用于在两方之间安全地传输数据——它不允许您像使用SSH那样发出命令。
例如,假设您在使用笔记本电脑。以下是您何时会遇到每个协议的示例:
SSH – 如果您想安全地连接到您网站的服务器并使用WP-CLI来管理您的WordPress站点,您可以使用SSH。
SSL – 如果您想与网站上的前端表单交互以提交数据,您的服务器将使用SSL来加密表单数据,因为它在您的Web浏览器和您的服务器数据库之间传输。
只要您安装了SSL证书并启用了HTTPS,访问您网站的每个人都将使用SSL与您网站的服务器进行交互——他们无需进行身份验证即可访问您的网站。
但是,唯一与SSH交互的人将是您或其他应该可以直接访问您的服务器并且可以使用用户名/密码或加密密钥进行身份验证的技术用户。
应用层协议属于最上层的协议。
CRC校验
WIN10网络设置
VPN
到底什么是VPN?
9.2、VPN虚拟专用网详述_虚拟专用网关键技术-CSDN博客
VPN(虚拟专用网络)连接是通过公共网络(如互联网)进行加密通信,允许分公司的网络安全地连接到总部的网络。VPN 通过加密数据流,使其在公共网络中传输时变得安全,可以通过互联网以较低的成本建立连接。
防火墙 NAT 网关 路由器
路由器、交换机、集线器的区别_集线器交换机路由器三者区别-CSDN博客
【科普】为什么ip地址通常以192.168开头?-CSDN博客
什么是防火墙?它有什么作用?_出口安全防火墙的作用-CSDN博客
Nat和防火墙的概念和纠葛,谁先作用?_防火墙先匹配nat-CSDN博客
网络工程师必知:网关与防火墙有什么区别?_网关和防火墙-CSDN博客
原来路由器的主要功能是使用一系列算法决定网络间的最短路径。
两个网络的连接是通过网关。
只不过,现在的路由器都集成了网关,所以路由器也具有网关的功能。
详解网关和路由器的区别_设置网关和设置路由的区别-CSDN博客
1、对于家庭共享上网,只需要使用网关即可,所以在宽带路由器中选择“网关”选项。
2、对于大型企业网络内部,或大型企业网络连接Internet,由于网络中可能存在其他路由器,所以应当选择宽带路由器中的“路由器”选项,以决定网络间的最短路径。
PS:默认网关
有时在Windows中设置网络时,我们经常会看到“默认网关”的设置
默认网关指计算机所在网络边界的网关或路由器,因为只有网关和路由器才知道如何到达其他网络。
对于网络内部的计算机来说,只有知道了默认网关的位置才能和网络外部通信。
所以默认网关是一个很重要的设置。但大多数情况下不需要我们手动设置,因为网络中的DHCP服务器可以自动提供默认网关的位置。
对于使用宽带路由器共享上网,默认网关是宽带路由器。
对于拨号上网,默认网关是是运营商处的路由器。
对于网络中有启用了ICS(Internet连接共享)的计算机并共享上网,默认网关就是这台计算机。
网路通信的几种场景
不管是局域网还是多个局域网互联的广域网等等,最终都是两个应用进程之间的通信,否则没有意义,只要是符合TCP/IP协议的,都需要经过所有的主机层次,当然,中间设备最多只有三层,比如,交换机有两层或者三层(二层交换机和三层交换机),路由器有三层。
二层交换机和三层交换机到底有啥区别?如何为从二层切换到三层模式?-腾讯云开发者社区-腾讯云 (tencent.com)
当一个主机A和另一个主机B通信时,主机A的应用进程要发送一个数据报文,然后经过运输层加上TCP或者UDP信息,然后再经过网际层分组并加上ip信息,之后由链路层封装成MAC帧,再经物理层进行bit传输。主机B接收到数据后再逆向解析即可。
先宏观认识下主机通信的及几种情况:
这里啰嗦几句。有时候我们去记这些概念总会忘。主要还是没有深入了解他们的作用。
比如客户端给服务器发送请求。需要什么,需要目标IP地址(ip+端口号)和目标主机MAC地址。
为什么会需要IP地址和MAC地址?
1 通过目标IP地址能找到目标主机所在的子网络(局域网)
2 通过目标MAC地址(物理地址,写在网卡bios上)可以在目标子网络中找到目标主机
3 通过端口号可以在目标主机上找到目标进程(服务)
所以只有真正理解了概念在当前系统中所担任的角色和作用,才会真正的记住。
疑惑,难道不是通过ip里的主机号来识别主机吗?
几种表: