【软设】计算机网络
一.OSI/RM七层模型
(七层模型还是要知道的,后面再去记一些协议,知道每一层应用在哪些方面,给你个东西或者协议你要能看得出来)
OSI/RM(Open Systems Interconnection Reference Model)是国际标准化组织(ISO)制定的网络通信模型,将网络功能分为七个逻辑层,方便不同设备和网络协议之间的互操作。每一层各自处理特定任务,并依赖下层来提供服务。以下是OSI七层模型的详细介绍及其在实际中的应用:
层次 | 名称 | 主要功能 | 实例(应用) |
---|---|---|---|
7 | 应用层 | 提供网络应用服务,直接面向用户 | HTTP、FTP、SMTP、DNS、Telnet、POP3 |
6 | 表示层 | 数据格式转换、加密、压缩处理 | TLS/SSL(用于HTTPS的加密)、JPEG、MP3 |
5 | 会话层 | 管理、建立和终止通信会话 | PPTP(虚拟专用网络),RPC(远程过程调用) |
4 | 传输层 | 端到端数据传输、流量控制、纠错 | TCP(面向连接)、UDP(无连接传输) |
3 | 网络层 | 数据包的路由和转发 | IP协议、ICMP、ARP、RARP |
2 | 数据链路层 | 组帧、差错检测、介质访问控制 | 以太网、MAC地址、PPP(点对点协议) |
1 | 物理层 | 定义物理设备的标准,传输比特流 | 光纤、电缆、集线器、交换机、无线电波 |
1.各层次的详细说明和应用
-
物理层(Layer 1)
- 功能: 负责比特流的物理传输,定义电气、机械、程序和功能规格,保障数据通过物理媒介进行传输。
- 应用示例: 以太网电缆、光纤、无线电波、集线器等设备属于物理层。在家用网络中,无线信号是通过Wi-Fi传输数据的,这些信号处理就属于物理层。
-
数据链路层(Layer 2)
- 功能: 负责将比特流组合成帧,并在物理链路上无差错传输。它还负责处理物理地址(如MAC地址)以及传输错误检测。
- 应用示例: 交换机、网桥设备通过MAC地址识别设备并传输帧。Wi-Fi协议和以太网(Ethernet)属于数据链路层。
-
网络层(Layer 3)
- 功能: 负责选择最佳路径,将数据包从源传送到目的地。使用逻辑地址(如IP地址)来决定路由转发。
- 应用示例: 路由器在网络层上工作,通过IP地址决定数据包的传输路径。互联网协议(IP)以及ICMP(用于Ping)都属于网络层。
-
传输层(Layer 4)
- 功能: 负责端到端的可靠数据传输,提供流量控制、数据分段及错误恢复。它确保数据无差错、有序到达目的地。
- 应用示例: 在网络上下载文件时,TCP协议(如HTTP)会确保文件的完整性和顺序。对于视频流服务(如Netflix),使用UDP协议提供实时、不可靠的数据传输。
-
会话层(Layer 5)
- 功能: 负责建立、管理和终止会话,维持应用间的对话,并控制会话间的通信。
- 应用示例: 网络会议工具(如Zoom)会使用会话层来保持语音和视频通信的会话。PPTP(点对点隧道协议)是会话层的一种典型应用。
-
表示层(Layer 6)
- 功能: 处理数据的格式化、加密、压缩等操作,确保发送端和接收端以相同格式理解数据。
- 应用示例: 当我们浏览HTTPS网站时,SSL/TLS协议在表示层上进行数据加密和解密。视频和音频编码格式(如MP3、JPEG)也属于表示层。
-
应用层(Layer 7)
- 功能: 面向用户直接提供应用服务,负责网络应用之间的通信。
- 应用示例: 电子邮件(SMTP)、文件传输协议(FTP)、网页浏览(HTTP/HTTPS)都是应用层的典型服务。在日常生活中,当你通过浏览器访问网站时,HTTP协议就是在应用层工作的。
2.实际应用示例
其实简单来讲就比如说你用微信给你朋友发消息,使用微信本身就是属于应用层,你要给你朋友发的这条消息会在表示层被打包加密,等这条消息打包加密好之后通过会话层建立你和你朋友之间的通道,通过传输层和网络层的配合准备发这条消息发出去,最后又数据链路层和物理层把你这条消息搬过去。
- 浏览网页: 当你输入网址并访问网页时,浏览器会通过应用层的HTTP协议请求网页数据。接着,表示层进行数据加密(如SSL/TLS),然后通过传输层(TCP)和网络层(IP)将请求包分段、传送到服务器。最终,数据通过数据链路层和物理层在网络设备中传递。
- 发送邮件: 当你通过电子邮件客户端发送邮件时,应用层使用SMTP协议发送邮件内容。传输层(TCP)确保邮件数据可靠传输,而网络层通过IP地址定位邮件服务器,直到邮件到达接收者的邮箱。
3.OSI七层模型的优势
- 模块化设计: 每一层的功能明确且独立,便于管理和开发。
- 灵活性强: 各层间松耦合,允许不同厂商开发的设备和协议之间互操作。
- 标准化通信: 不同设备和网络协议之间的通信可通过该模型标准化。
OSI七层模型提供了一种清晰的分层视角,帮助理解和诊断网络问题。例如,当网络连接出现问题时,网络工程师可以从物理层到应用层逐步排查问题所在。
总结
主要记一下下面这个图就可以了。
二.TCP/IP协议簇
(记一下这些协议大概都是干嘛的以及对应的端口是多少,如果你玩过云或者部署过应该对这些协议应该不陌生,以及七层模型归类成四层,四层模型和七层之间的一个关系以及知道数据传输机制)
TCP/IP协议簇(TCP/IP Protocol Suite)是互联网的核心协议,它提供了可靠的数据传输机制,并支持全球范围内的网络通信。TCP/IP协议簇采用分层结构,类似于OSI参考模型,但层次划分略有不同,通常分为四层:链路层、网络层、传输层和应用层。下面详细介绍每一层的功能及相关协议:
1. 链路层(Link Layer)
功能: 负责在物理网络上直接传输数据帧,处理硬件地址(如MAC地址)的通信。链路层是TCP/IP协议栈的底层,直接与硬件相关。
- 主要协议/技术:
- 以太网(Ethernet): 在局域网中使用最广泛的协议,负责数据帧的传输和接收。
- Wi-Fi: 无线局域网的标准,基于IEEE 802.11协议。
- PPP(Point-to-Point Protocol): 点对点协议,常用于串行链路或虚拟专用网(VPN)中。
应用示例: 当一台计算机通过以太网或Wi-Fi连接到路由器时,链路层负责确保数据帧在本地网络上被正确发送和接收。
2. 网络层(Network Layer)
功能: 负责在不同网络之间路由数据包,通过逻辑地址(如IP地址)选择最佳路径,将数据包从源端传输到目标端。
- 主要协议:
- IP(Internet Protocol):
- IPv4: 目前最常用的互联网协议版本,负责分配IP地址并进行路由选择。
- IPv6: 是IPv4的升级版,提供更多的地址空间和改进的网络功能。
- ICMP(Internet Control Message Protocol): 用于发送控制消息(如Ping),帮助诊断网络连接问题。
- ARP(Address Resolution Protocol): 用于将IP地址解析为MAC地址,以便在局域网中通信。
- RARP(Reverse ARP): 从MAC地址反向解析出IP地址。
- NAT(Network Address Translation): 将多个私有IP地址映射到一个公共IP地址,以减少IP地址的使用。
- IP(Internet Protocol):
应用示例: 当你在浏览器中输入网址访问某个网站时,网络层协议(如IP)负责将数据包从你的计算机路由到网站服务器的正确IP地址。
3. 传输层(Transport Layer)
功能: 提供端到端的数据传输服务,确保数据在源主机和目标主机之间的可靠传递或快速传递。传输层协议处理数据的分段、重组、流量控制和错误校验。
- 主要协议:
- TCP(Transmission Control Protocol): 可靠的传输协议,提供确认机制、重传机制,确保数据包按序无差错到达。
- UDP(User Datagram Protocol): 不可靠的传输协议,数据传输无需确认机制,适用于对实时性要求高的应用(如视频流)。
应用示例: 当你通过网页下载文件时,TCP协议确保文件的完整性,即使网络中出现数据丢包,TCP会重传丢失的数据,直到文件下载完成。而在进行视频会议时,UDP则适用于不需要等待确认的快速数据传输。
4. 应用层(Application Layer)
功能: 提供用户与网络交互的界面,支持不同类型的应用程序之间的通信。应用层包含众多高层协议,用户通过这些协议完成各类网络服务和操作。
- 主要协议:
- HTTP/HTTPS(HyperText Transfer Protocol / Secure HTTP): 用于浏览网页,HTTPS提供加密的安全通信。
- FTP(File Transfer Protocol): 用于文件传输,支持上传和下载文件。
- SMTP(Simple Mail Transfer Protocol): 用于电子邮件的发送。
- DNS(Domain Name System): 将域名解析为IP地址。
- DHCP(Dynamic Host Configuration Protocol): 动态分配IP地址。
- SSH(Secure Shell): 提供安全的远程登录服务。
应用示例: 当你在浏览器中访问一个网站时,应用层协议HTTP负责请求网页并获取数据。而当你发送电子邮件时,SMTP协议负责将邮件传递到目标服务器。
5.TCP/IP与OSI模型的比较
虽然OSI参考模型有七层,但TCP/IP协议栈采用四层模型。两者的层次结构有所不同,以下是TCP/IP与OSI模型的对比:
TCP/IP模型 | OSI模型 | 主要协议/技术 |
---|---|---|
应用层 | 应用层、表示层、会话层 | HTTP、FTP、DNS、SMTP、Telnet、SSH |
传输层 | 传输层 | TCP、UDP |
网络层 | 网络层 | IP、ICMP、ARP、RARP |
链路层 | 数据链路层、物理层 | 以太网、PPP、Wi-Fi |
6.TCP/IP协议簇的优势
- 全球标准: TCP/IP协议是互联网的基础,全球范围内使用最广泛的网络协议。
- 灵活性强: 可以在各种硬件和网络技术上工作,无论是以太网、Wi-Fi,还是蜂窝网络,TCP/IP都能适应。
- 可靠性高: TCP协议通过序列号、确认机制和超时重传来确保数据的可靠传输,而UDP则提供快速且低延迟的通信。
- 简洁明了: 通过将功能分层,TCP/IP使得协议设计与实现更加清晰,方便开发和维护。
7.实际应用示例
- 网页浏览: 访问网页时,浏览器通过应用层协议HTTP/HTTPS请求网页内容。传输层使用TCP协议确保数据包的可靠传输,而网络层通过IP协议负责将数据包路由到目标网站。
- 文件传输: 使用FTP协议进行文件传输时,传输层的TCP协议保证文件内容的完整性。即使网络中发生数据丢失或错误,TCP会重新传输丢失的数据。
- 在线游戏: 多数在线游戏使用UDP协议,它提供快速、低延迟的通信,即使偶尔数据丢失也不会影响游戏的整体体验。
8.各层协议归类
8.1 常见协议说明-基于TCP的应用层协议
协议名 | 默认端口 | 功能 | 特殊说明 |
---|---|---|---|
HTTP | 80 | 超文本传输协议,用于网页传输,现在基本都是用HTTPS了 | 单纯的HTTP并不安全,要结合SSL的HTTPS协议是安全的超文本传输协议,默认端口是443 |
Telnet | 23 | 远程协议 | 不安全,SSH是安全的远程协议 |
FTP | 20端口用于传输数据,21端口用来控制,先传输后控制 | 文本传输协议 | 不安全,结合SSL的SFTP是安全的文本传输协议 |
POP3 | 110 | 邮件收取 | 附加多媒体数据时需采用 MIME(MIME 不安 全,结合 SSL的 MIME/S 是安全的多媒体邮 件协议)。使用 WEB 方式收发电子邮件时必 须设置账号密码登录 |
SMTP | 25 | 邮件发送 | 同上,归属于邮件协议 |
8.2 常见协议说明-基于UDP的应用层协议
协议名 | 默认端口 | 功能 | 特殊说明 |
---|---|---|---|
DNS | 53 | 域名解析协议,记录域名与IP的映射关系 | 本地客户端主机首查本机的honsts文件域名服务器首查本地缓存,查不到再一级一级往上翻找 |
DHCP | 67 | IP地址自动分配 | 169.254.X.X和0.0.0.0是无效地址 |
SNMP | 161 | 简单网络管理协议 | 服务器仅发送消息当前团体 |
8.3 常见协议说明-网络层协议
协议名 | 功能 | 特殊说明 |
---|---|---|
ARP | 地址解析协议,IP地址转换为MAC地址 | ARP Request 请求采用广播进行传送 ARP Response 响应采用单播进行传送 |
RARP | 反向地址解析协议,MAC地址转IP地址 | 无 |
ICMP | 英特网控制协议 | PING命令来自协议 |
IGMP | 组播协议 | 无 |
8.4 TFTP和FTP
为什么要单独拎出来讲一下这个呢就是单纯举个例子,用我自己的理解讲一下一些关于TCP和UDP协议的大概区别,我个人感觉的话,TCP协议相对安全性比较高一点,适合用来发消息或者信箱什么的,当然速度可能就会慢一点,相对的UDP协议的东西比较"粗糙",但是速度什么的就会快很多的了,这只是我自己的一个理解,下面我会细致讲讲TCP和UDP协议之间的区别。
特点 | TFTP | FTP |
---|---|---|
功能 | 简单文件传输,主要用于小文件传输和网络启动 | 功能丰富,支持文件上传、下载、删除、重命名等多种操作 |
复杂度 | 简单,协议轻量级 | 复杂,协议相对较重 |
可靠性 | 低,无重传机制,容易丢包 | 高,有重传机制,保证数据传输的可靠性 |
速度 | 快,适合小文件传输 | 相对较慢,但功能更全面 |
安全性 | 低,无身份认证和加密 | 中等,支持用户名/密码认证,可通过SSL/TLS加密 |
应用场景 | 网络启动、配置文件传输、小型文件共享 | 大型文件传输、网站文件上传、FTP服务器 |
补充协议说明
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
DHCP 是一种网络协议,用于自动分配IP地址和其他网络配置参数(如子网掩码、网关地址和DNS服务器地址)给设备,使其能够在网络中进行通信。DHCP简化了网络配置的过程,设备连接到网络时,无需手动配置网络参数。常见应用场景:当一台计算机或移动设备连接到Wi-Fi时,DHCP会自动分配IP地址给该设备。
DNS(Domain Name System,域名系统)
DNS 是将域名(如 www.example.com)转换为IP地址(如 192.168.1.1)的系统。当我们在浏览器中输入域名时,DNS服务器会查找与该域名对应的IP地址,并返回给浏览器,使其能够与正确的服务器通信。DNS类似于网络中的电话簿,方便用户通过易记的域名访问网站,而不必记住难以记忆的数字IP地址。
ARP(Address Resolution Protocol,地址解析协议)
ARP 用于将IP地址解析为MAC地址。当一台设备知道目标设备的IP地址,但不知道其物理(MAC)地址时,它会通过ARP发送请求,以便获取该MAC地址。ARP在局域网中十分常用。
- 应用场景:当一台主机需要与同一局域网内的另一台主机通信时,它使用ARP获取对方的MAC地址。
RARP(Reverse Address Resolution Protocol,逆地址解析协议)
RARP 是 ARP 的反向版本,用于将MAC地址解析为IP地址。这通常在无盘工作站中使用,它们只有MAC地址,通过RARP请求服务器为它们分配IP地址。
- 应用场景:无盘工作站开机时使用RARP请求IP地址。
ICMP(Internet Control Message Protocol,互联网控制消息协议)
ICMP 用于在网络设备之间传递控制信息和错误报告。ICMP消息通常用于诊断网络问题或报告网络通信中的错误,如目标不可达或超时。常用的工具如 ping
和 traceroute
就是基于ICMP协议。
-
应用场景:
ping
命令用于测试两个网络设备之间的连通性,通过ICMP回显请求和应答。
IGMP(Internet Group Management Protocol,互联网组管理协议)
IGMP 用于在IPv4网络中管理组播组的成员关系。它使路由器知道哪些主机想要接收特定的组播数据,确保组播数据只发送给请求它的设备。
- 应用场景:IP组播技术常用于视频会议或流媒体服务,IGMP用于管理这些组播参与者。
SNMP(Simple Network Management Protocol,简单网络管理协议)
SNMP 是用于网络设备(如路由器、交换机、服务器等)的管理和监控协议。通过SNMP,管理员可以远程获取设备状态、性能数据,还能配置和控制设备。
- 应用场景:网络管理员使用SNMP监控和管理网络设备的运行状态,如查看CPU使用率、网络流量等。
补充题目
E1:DHCP客户端可从DHCP服务器获得()。
A1:DHCP客户端可从DHCP服务器获得本机IP地址、DNS服务器的地址、DHCP服务器的地址、默认网关的地址等,但没有Web服务器、邮件服务器地址。
E2:TCP使用的流量控制协议是()。
A2:在TCP的实现机制中,为了保障传输的可靠性,所以发送方每发送一个报文,接收方接到之后会回发确认信息。如果发送端的数据过多或者数据发送速率过快,致使接收端来不及处理,则会造成数据在接收端的丢弃。为了避免这种现象的发生,通常的处理办法是采用流量控制,即控制发送端发送的数据量及数据发送速率。流量控制的目的是在接收端有限承受能力的情况下,通过流量约束,减少接收端处的数据丢失,提高数据发送效率,充分利用接收端资源。可变滑动窗口流量控制的基本过程如下:
1.在建立TCP连接阶段,双方协商窗口尺寸,同时接收端预留数据缓冲区;
2.发送端根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认;发送端根据确认信息,改变窗口的尺寸。
3.注:窗口也就是缓冲区,发送方窗口大小决定了一次可以连续发送多少个数据。
E3:ICMP协议属于因特网中的()协议,ICMP协议数据单元封装在()中传送。
A3:ICMP是网络层协议,在IP数据报中传输ICMP数据单元。
E4:使用Web方式收发电子邮件时,以下描述错误的是()。
A.无须设置简单邮件传输协议
B.可以不设置账号密码登录
C.邮件可以插入多个附件
D.未发送邮件可以保存到草稿箱
A4:使用WEB方式收发电子邮件时必须设置账号密码登录。选B
三.(补充)TCP和UPD协议
(要我自己的还来说,TCP比较安全但是慢,UPD比较"粗糙"但是快,两者都是基于IP协议的传输层协议)
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是传输层的两种主要协议,它们各自提供不同的传输服务,适用于不同类型的应用场景。以下是关于TCP和UDP协议的详细介绍:
1. TCP(Transmission Control Protocol)
1.1 特点
- 面向连接: 在传输数据之前,TCP需要在通信双方之间建立一个虚拟连接(通过三次握手)。
- 可靠性高: TCP通过确认机制、序列号、重传控制、流量控制和拥塞控制等机制,确保数据包准确无误地传输到目的地。
- 有序传输: TCP确保数据按序传输,即使在网络中不同路径传输,接收方也会按照正确的顺序组装数据。
- 重传机制: 如果数据包在传输过程中丢失或出现错误,TCP会自动进行重传,确保所有数据都正确到达。
- 流量控制: TCP通过滑动窗口机制来动态调节发送方的发送速度,以防止接收方被数据包淹没。
- 拥塞控制: TCP有多种拥塞控制算法(如慢启动、拥塞避免等)来防止网络拥塞。
1.2 适用场景
- 文件传输: 需要可靠性和数据完整性的应用,如FTP(文件传输协议)、HTTP(网页传输)。
- 电子邮件: 通过SMTP协议发送邮件时,要求数据不丢失。
- 数据库通信: 数据库系统中的查询与数据交换通常使用TCP,以确保数据的正确传递。
1.3 应用举例
- 网页浏览(HTTP/HTTPS): 浏览器通过TCP连接到Web服务器,确保网页内容完整、准确地传输给用户。
- 文件下载(FTP): 通过TCP连接进行文件传输,确保文件完整性和正确性。
1.4 三次握手过程(连接建立)
- 客户端发送一个SYN(同步)报文段,表示希望建立连接。
- 服务器收到SYN后,发送一个SYN+ACK(同步+确认)报文段表示同意连接,并确认客户端的请求。
- 客户端收到SYN+ACK后,再发送一个ACK报文段确认,连接建立完成。
1.5 四次挥手过程(连接终止)
- 客户端发送FIN(结束)报文段,表示希望终止连接。
- 服务器收到FIN后,发送ACK确认报文段。
- 服务器再发送FIN报文段表示同意终止连接。
- 客户端收到FIN后,发送ACK确认报文段,连接终止。
2. UDP(User Datagram Protocol)
2.1 特点
- 无连接: UDP不需要建立连接,发送方直接将数据报文发送到目标主机。
- 不保证可靠性: UDP不提供确认机制、重传机制,因此数据包可能会丢失、重复或乱序。
- 数据包独立性: 每个UDP数据报是独立的,彼此之间没有依赖关系,传输顺序不受保证。
- 效率高: 由于UDP不需要建立连接、确认数据包或重传,传输效率比TCP高,适用于实时性强的应用。
- 较小的开销: UDP的头部开销比TCP小,数据传输更加轻量。
2.2 适用场景
- 实时应用: 对丢包不敏感、对延迟要求高的应用,如在线游戏、视频流、VoIP(网络语音通信)。
- 广播和多播: UDP支持广播和多播,适合多用户同时接收数据的应用。
- 简单查询: 如DNS查询,要求快速返回结果而不需要保证100%的数据传输可靠性。
2.3 应用举例
- 视频流(如YouTube、Netflix): 实时视频传输时,UDP可减少延迟,即使部分数据丢失也不会严重影响用户体验。
- 在线游戏: 在线游戏通常使用UDP传输游戏数据包,保证数据包的快速传递,适合快速反应的游戏场景。
- DNS查询: DNS协议使用UDP来快速发送和接收查询请求,即使数据丢失,客户端可以重新发送请求。
3.TCP与UDP的对比
特性 | TCP | UDP |
---|---|---|
连接机制 | 面向连接(三次握手) | 无连接 |
可靠性 | 可靠,提供确认机制与重传 | 不可靠,无确认机制与重传 |
有序性 | 保证数据按序传输 | 不保证数据按序传输 |
传输效率 | 较低,开销大 | 较高,开销小 |
数据完整性 | 确保数据完整 | 可能会丢包、重复或乱序 |
适用场景 | 文件传输、网页浏览、电子邮件 | 实时视频、在线游戏、DNS查询 |
流量控制和拥塞控制 | 支持 | 不支持 |
头部开销 | 较大(20字节) | 较小(8字节) |
总结
TCP与UDP均支持对具体指定端口号进行通信。但连接管理、差错校验、重传等能力只有TCP具备。
- TCP:面向连接、可靠、有序,适合需要数据完整性和可靠性的场景,如文件传输、电子邮件和网页浏览。尽管开销较大,但它的可靠性使其成为大多数非实时应用的首选。
- UDP:无连接、效率高、不保证可靠性,适用于实时性要求高但对丢包不敏感的应用,如视频流、在线游戏和DNS查询。UDP传输快速且开销小,是对实时性要求高的应用场景的理想选择。
四.网络诊断命令
(知道怎么查错,用什么命令,经常玩Linux应该不陌生)
网络诊断命令在日常网络故障排查和调试中非常重要,不同的命令有不同的应用场景。以下是一些常用网络诊断命令的分类、功能和应用示例。
1.网络诊断命令分类与应用
命令 | 分类 | 主要功能 | 应用场景 |
---|---|---|---|
ipconfig | DNS服务诊断 | 查看/刷新DNS缓存,显示当前网络的DNS服务器信息 | 当DNS解析错误时,使用ipconfig /displaydns 查看缓存,ipconfig /flushdns 刷新缓存 |
ipconfig | DHCP服务诊断 | 查看当前网络适配器的IP地址分配情况,包括DHCP服务器信息 | 使用ipconfig /renew 从DHCP服务器重新获取IP地址 |
ping | 网络连通性测试 | 测试主机与目标设备之间的连通性,通过ICMP发送回显请求 | 使用ping www.example.com 测试到目标网站的连通性 |
tracert | 路由追踪 | 追踪数据包从源主机到目标主机经过的路由 | 使用tracert 查找网络延迟或路径中的问题 |
nslookup | DNS服务器查询 | 查询DNS服务器解析某个域名的IP地址 | 使用nslookup example.com 查看DNS解析情况 |
netstat | 网络连接与端口状态 | 显示当前系统的网络连接及端口使用情况 | 使用netstat -an 查看当前活动连接 |
route | 路由表查看与管理 | 查看并编辑系统的路由表 | 使用route print 查看本地路由表 |
arp | ARP缓存查看 | 显示并管理地址解析协议(ARP)缓存 | 使用arp -a 查看本地ARP表 |
pathping | 路径延迟与丢包分析 | 结合ping 与tracert 功能,提供详细的路径延迟与丢包信息 |
使用pathping www.example.com 分析路径丢包率 |
netsh | 网络配置管理 | 管理网络接口、配置、DNS、DHCP等 | 使用netsh interface ipv4 show config 查看IP配置 |
2.具体命令应用示例
2.1 ipconfig在DNS服务中的应用
-
命令:
ipconfig /displaydns
- 功能: 显示本地DNS缓存,用于检查最近解析的域名和IP地址的缓存情况。
- 应用示例: 当你访问某个网站遇到DNS解析错误时,通过查看缓存可以排除本地解析问题。
-
命令:
ipconfig /flushdns
- 功能: 清除本地DNS缓存,强制计算机重新从DNS服务器获取解析信息。
- 应用示例: 如果DNS缓存中的解析已过期或错误,可以刷新缓存解决问题。
2.2 ipconfig在DHCP服务中的应用
-
命令:
ipconfig /release
- 功能: 释放当前分配的IP地址,使网络适配器放弃现有IP。
- 应用示例: 在更换网络环境时,可以释放当前的IP地址并从DHCP服务器重新获取新IP。
-
命令:
ipconfig /renew
- 功能: 从DHCP服务器重新申请一个IP地址。
- 应用示例: 当发现网络连接中断或无法获取IP地址时,使用此命令重新获取IP。
2.3 ping命令的应用
-
命令:
ping www.example.com
- 功能: 通过发送ICMP回显请求包来测试目标主机是否可达,以及计算往返时间。
- 应用示例: 测试与某个远程服务器(如网站)的连通性和网络延迟。
2.4 tracert命令的应用
-
命令:
tracert www.example.com
- 功能: 显示从本地主机到目标主机所经过的所有网络路由节点及延迟。
- 应用示例: 在网络速度缓慢时,可以用此命令检查是哪一跳节点导致的延迟。
2.5 nslookup命令的应用
-
命令:
nslookup example.com
- 功能: 查询域名的DNS解析结果,返回域名对应的IP地址。
- 应用示例: 如果网站访问异常,可以通过此命令确认DNS解析是否正确。
2.6 netstat命令的应用
-
命令:
netstat -an
- 功能: 查看当前主机的所有网络连接及其状态,显示正在监听的端口。
- 应用示例: 如果怀疑主机有恶意连接,可以通过此命令查看异常的连接。
2.7 route命令的应用
-
命令:
route print
- 功能: 显示主机的路由表信息,包含静态和动态路由。
- 应用示例: 查看网络数据包的转发路径,帮助排查路由问题。
2.8 arp命令的应用
-
命令:
arp -a
- 功能: 查看本地ARP表,显示IP地址和MAC地址的映射关系。
- 应用示例: 在排查局域网内通信故障时,检查ARP表是否有误。
3.通过图表进一步说明常见网络诊断命令
命令 | 功能 | 主要应用 | 使用示例 |
---|---|---|---|
ipconfig |
查看/配置IP地址、DNS缓存、DHCP等网络配置 | 网络配置诊断,DNS缓存清理,重新获取IP |
ipconfig /all ,ipconfig /flushdns
|
ping |
测试与目标主机的连通性,计算响应时间 | 判断网络是否连通、延迟高低 | ping 8.8.8.8 |
tracert |
跟踪到目标主机的路径,显示每一跳的延迟信息 | 定位网络中哪个节点延迟或中断 | tracert www.example.com |
nslookup |
DNS查询,获取域名解析的IP地址 | 检查DNS解析是否正常 | nslookup example.com |
netstat |
显示网络连接状态及活动端口 | 查看网络连接状态,识别可疑连接 | netstat -an |
route |
查看或修改本地路由表 | 调试网络数据包的转发路径 | route print |
arp |
显示和管理本地ARP缓存 | 查看或清除ARP缓存,解决局域网通信问题 | arp -a |
pathping |
结合ping 和tracert 的功能,显示路径延迟与丢包情况 |
分析网络中丢包率高的路径 | pathping www.example.com |
这些命令可以帮助诊断网络中的常见问题,具体的应用场景包括:确定是否有网络连通性问题、确认DNS解析是否正常、检测路径中的延迟与丢包率、检查网络连接状态及端口是否被正常使用等。
补充题目
E1:使用ping命令可以进行网络检测,在进行一系列检测时,按照由近及远原则,首先执行的是()。
A1:检查错误时,使用由近及远的原则意味着先要确认本机协议栈有没有问题,所以可以用ping127.0.0.1来检查本机TCP/IP协议栈,能PING通,说明本机协议栈无问题
E2:在Windows命令行窗口中使用()命令可以查看本机DHCP服务是否已启用。
A2:ipconfig /all 显示详细信息,可查看DHCP服务是否已启用。
E3:下列命令中,不能用于诊断DNS故障的是()。
A.netstat B.nslookup C.ping D.tracert
A3:netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。nslookup是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。ping命令常用于测试连通性,在此过程中可看出是直接ping的目标地址。
tracert是路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径。nslookup、ping、tracert都可以加上一个主机域名作为其命令参数来诊断DNS故障,nslookup还可以看到本地DNS服务器地址。 netstat命令一般用于检验本机各端口的网络连接情况,与DNS无关联。
五.IP地址,子网掩码,网关,MAC地址,DNS服务器(补充)
IP地址、子网掩码、网关、MAC地址和DNS服务器是计算机网络中的重要概念,它们协同工作,保证数据在网络中的正常传输。下面逐一介绍并说明它们之间的关系:
1. IP地址
IP地址是分配给网络设备(如电脑、手机、路由器等)的唯一标识符,用来在网络中进行设备间的通信。IP地址有两种类型:IPv4和IPv6。
-
IPv4 使用32位地址,通常用四组十进制数表示,如
192.168.1.1
。 - IPv6 使用128位地址,能够提供更多的地址空间。
作用:IP地址用于在网络层识别设备,使得设备能够与其他设备进行通信。
2. 子网掩码
子网掩码用于将IP地址划分为网络部分和主机部分。它帮助确定一个IP地址属于哪个网络,并区分子网中的设备。
-
格式:IPv4的子网掩码通常用与IP地址类似的点分十进制形式表示,如
255.255.255.0
。这个掩码表示前24位是网络地址,后8位是主机地址。
作用:子网掩码帮助确定网络范围,使得网络设备可以区分自己所属的网络和其他网络。设备通过子网掩码知道应该发送数据到同一网络内的设备,还是通过网关发送数据到其他网络。
3. 网关
网关是网络中设备与外部网络通信的出入口。如果某个设备发送数据的目标设备不在本地网络中,该设备会将数据包发送到网关,再由网关负责转发到外部网络(如互联网)或其他子网。
-
常见形式:在家庭网络中,网关通常是路由器的IP地址(如
192.168.1.1
)。
作用:网关连接不同的网络,使得设备能够与外部网络(如互联网)通信。网关充当网络的边界,负责将内部网络的数据转发到外部网络。
4. MAC地址
MAC地址(媒体访问控制地址)是网络接口卡(NIC)的物理地址,每个网络设备的网卡都有一个唯一的MAC地址。它在数据链路层工作,用于设备之间的物理通信。
-
格式:通常由6组十六进制数字组成,如
00:1A:2B:3C:4D:5E
。
作用:MAC地址用于在局域网内部标识设备,在局域网中进行数据包的转发和传递时主要依赖MAC地址。通过ARP协议,可以将IP地址解析为MAC地址,从而在物理网络中找到目标设备。
5. DNS服务器
DNS服务器(域名系统服务器)用于将用户输入的域名(如 www.example.com
)解析为对应的IP地址(如 93.184.216.34
)。因为人们更容易记住域名而不是IP地址,所以在访问网站时需要通过DNS服务器将域名转换为IP地址。
-
常见的DNS服务器:像
8.8.8.8
是谷歌提供的公共DNS服务器。
作用:DNS服务器负责域名解析,使得用户可以通过易记的域名访问服务器,而不必直接输入IP地址。
6. 各个组件之间的关系
- IP地址 和 子网掩码 共同决定设备所属的网络。子网掩码帮助设备区分哪些设备属于同一个子网,哪些设备需要通过网关来通信。
- 网关 充当设备与外部网络的桥梁。如果设备要与其他网络通信,就需要通过网关。
- MAC地址 和 IP地址 是不同层次的地址。MAC地址在数据链路层使用,而IP地址在网络层使用。它们之间的映射通过ARP协议实现,即通过IP地址找到对应的MAC地址,以便在局域网中发送数据。
- DNS服务器 将用户输入的域名解析为IP地址,使得设备能够找到目标服务器的IP地址,并通过IP地址进行网络通信。
示例
假设你的电脑要访问 www.example.com
:
-
DNS解析:首先,电脑会向DNS服务器(如
8.8.8.8
)查询www.example.com
的IP地址,DNS服务器返回对应的IP地址。 - IP地址与子网掩码检查:电脑检查该IP地址是否在同一子网内(通过子网掩码判断)。如果目标不在本地子网中,则使用默认网关发送数据。
-
通过网关发送数据:如果目标服务器在外部网络,电脑会将数据包发送到默认网关(如路由器的IP
192.168.1.1
),网关负责将数据包转发到外部网络。 - MAC地址解析:在局域网内部,电脑会通过ARP协议将目标IP地址解析为MAC地址,并将数据包发送到正确的物理设备。
这些网络组件协同工作,确保设备可以在本地网络以及广域网(如互联网)之间顺利通信。
六.IP地址
(这里面会牵扯到计算,弄清楚什么是IP地址,子网掩码,网关,MAC地址,DNS服务器先,不然很容易学到后面会乱,还有我在这里提一嘴,在算主机地址的时候记得减掉广播地址和网络号,也就是算出来的主机数-2)
1.IPv4 概述
IPv4(Internet Protocol version 4)是目前使用最广泛的互联网协议版本,采用32位地址长度,支持约43亿个唯一IP地址。IPv4的核心包括地址分类、地址结构、表示方式以及特殊IP地址。
1.1 IPv4 地址结构
IPv4地址是由32位二进制数组成,通常以四个十进制数表示,每个部分由8位(二进制)组成,称为“八位组”(octet),每个八位组的取值范围为0到255。例如:192.168.1.1
。
1.2 IPv4 地址分类
为了更有效地管理IP地址,IPv4地址按照规模和用途分为五类:A类、B类、C类、D类和E类。
地址类型 | 起始地址 | 结束地址 | 子网掩码 | 用途 |
---|---|---|---|---|
A类 | 0.0.0.0 | 127.255.255.255 | 255.0.0.0 | 大型网络,适用于大型企业和组织 |
B类 | 128.0.0.0 | 191.255.255.255 | 255.255.0.0 | 中型网络,适用于中型组织和机构 |
C类 | 192.0.0.0 | 223.255.255.255 | 255.255.255.0 | 小型网络,适用于小型公司或家庭网络 |
D类 | 224.0.0.0 | 239.255.255.255 | 不适用 | 组播地址,用于多播传输 |
E类 | 240.0.0.0 | 255.255.255.255 | 不适用 | 保留地址,用于未来或实验用途 |
1.3 IPv4 地址的表示方式
-
点分十进制:将32位的二进制地址按8位一组,转换成十进制表示。例如:
192.168.0.1
。 -
二进制表示:将地址表示为32位的二进制数。例如:
11000000.10101000.00000000.00000001
。 -
十六进制表示:每个八位组转换成2位的十六进制数,例如:
0xC0A80001
。
当然最简单来讲就是:网络号+主机号
1.4 特殊的IPv4地址
特殊IP地址 | 说明 | 示例 |
---|---|---|
环回地址(Loopback) | 用于测试本地网络堆栈,不会传输到网络 | 127.0.0.1 |
广播地址(Broadcast) | 将数据包发送到网络中的所有主机 | 255.255.255.255 |
网络地址 | 表示一个子网的起始地址,通常不分配给设备 | 192.168.1.0 |
本地链路地址(Link-local) | 用于无路由器时的本地网络连接自动配置,不能跨路由器使用,用于DHCP失效(linux是0.0.0.0) | 169.254.0.0/16 |
私有IP地址 | 局域网中使用的非公开路由的地址,不用于互联网上 |
192.168.0.0/16 ,10.0.0.0/8 ,172.16.0.0/12
|
1.5子网划分
子网划分是将一个大网络分成若干个小网络的技术。通过调整子网掩码,可以进一步划分网络。例如,在C类网络192.168.1.0/24
中,默认子网掩码是255.255.255.0
,它允许254个主机。
1.6 子网掩码
子网掩码的作用
子网掩码是一个32位的数,用来确定IP地址的哪一部分是网络部分,哪一部分是主机部分。子网掩码通常和IP地址一样,用点分十进制表示(如:255.255.255.0)。255 表示网络部分,0 表示主机部分。
子网掩码通过将IP地址的某些位固定为“1”表示网络部分,其余为“0”表示主机部分。常见的子网掩码格式:
- /24 = 255.255.255.0
- /25 = 255.255.255.128
- /26 = 255.255.255.192
为什么24是零,因为255(1111 1111).255(1111 1111).255(1111 1111).0(0000 0000),
25是128,255(1111 1111).255(1111 1111).255(1111 1111).0(1000 0000)以此类推下去。
1.7 子网划分示例
假设你有一个C类网络192.168.1.0/24
,想要划分为4个子网,每个子网最多允许62台主机(其中减去的2个主机号为全0和全1的情况,全0表示改网络的网络号,全1表示广播地址,二者都不能作为主机)。你可以将掩码调整为/26
,即255.255.255.192
。
- 子网1:
192.168.1.0/26
,范围192.168.1.0 - 192.168.1.63
,可用主机数为62(0和63为网络地址和广播地址)。 - 子网2:
192.168.1.64/26
,范围192.168.1.64 - 192.168.1.127
,可用主机数为62。 - 子网3:
192.168.1.128/26
,范围192.168.1.128 - 192.168.1.191
,可用主机数为62。 - 子网4:
192.168.1.192/26
,范围192.168.1.192 - 192.168.1.255
,可用主机数为62。
举个例子
A类地址子网划分示例
假设我们有A类网络地址 10.0.0.0/8
,我们想要进行子网划分。
- 原始A类地址:网络位为8位,主机位为24位。
-
子网划分:如果我们决定借用2位来进行子网划分,那么子网掩码将变为
10.0.0.0/10
。
计算子网数和每个子网的主机数:
- 子网位数:2位
- 子网数:2^2 = 4个子网
- 每个子网的主机位数:原来的24位减去借用的2位,剩下22位
- 每个子网的主机数:2^22 - 2(减去网络地址和广播地址)= 4,194,304 - 2 = 4,194,302个主机
子网如下:
- 子网1:
10.0.0.0/10
到10.63.255.255/10
- 子网2:
10.64.0.0/10
到10.127.255.255/10
- 子网3:
10.128.0.0/10
到10.191.255.255/10
- 子网4:
10.192.0.0/10
到10.255.255.255/10
B类地址子网划分示例
假设我们有B类网络地址 172.16.0.0/16
,我们想要进行子网划分。
- 原始B类地址:网络位为16位,主机位为16位。
-
子网划分:如果我们决定借用4位来进行子网划分,那么子网掩码将变为
172.16.0.0/20
。
计算子网数和每个子网的主机数:
- 子网位数:4位
- 子网数:2^4 = 16个子网
- 每个子网的主机位数:原来的16位减去借用的4位,剩下12位
- 每个子网的主机数:2^12 - 2 = 4,096 - 2 = 4,094个主机
子网如下(只列出前几个):
- 子网1:
172.16.0.0/20
到172.16.15.255/20
- 子网2:
172.16.16.0/20
到172.16.31.255/20
- 子网3:
172.16.32.0/20
到172.16.47.255/20
- …
C类地址子网划分示例
假设我们有C类网络地址 192.168.1.0/24
,我们想要进行子网划分。
- 原始C类地址:网络位为24位,主机位为8位。
-
子网划分:如果我们决定借用2位来进行子网划分,那么子网掩码将变为
192.168.1.0/26
。
计算子网数和每个子网的主机数:
- 子网位数:2位
- 子网数:2^2 = 4个子网
- 每个子网的主机位数:原来的8位减去借用的2位,剩下6位
- 每个子网的主机数:2^6 - 2 = 64 - 2 = 62个主机
子网如下:
- 子网1:
192.168.1.0/26
到192.168.1.63/26
- 子网2:
192.168.1.64/26
到192.168.1.127/26
- 子网3:
192.168.1.128/26
到192.168.1.191/26
- 子网4:
192.168.1.192/26
到192.168.1.255/26
2.IPv6 概述
IPv6(Internet Protocol version 6)是为了应对IPv4地址耗尽问题而设计的协议。IPv6地址长度为128位,理论上可支持的地址数量非常庞大。
2.1 IPv6 地址结构
.IPv6采用128位地址,通常以16进制数表示,每16位一组,共8组,中间以冒号分隔。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334
。
-
缩写规则:连续的零可以用
::
来表示。例如,2001:db8::1
表示2001:0db8:0000:0000:0000:0000:0000:0001
。
2.2 IPv6 地址类型
地址类型 | 用途 | 说明 |
---|---|---|
单播地址 | 用于发送给单个主机的通信 | 包含全球单播地址、本地链路地址等 |
组播地址 | 用于发送给一组主机的通信 | 替代IPv4中的广播 |
任播地址 | 将数据包发送给多个目的地中的最优选择的一个 | 通常用于服务选择 |
2.3 IPv6 特点
- 更大的地址空间:IPv6采用128位地址,几乎可以提供无限的IP地址。
- 自动配置:IPv6支持无状态地址自动配置(SLAAC),设备可以通过网络自动获取地址。
- 无需NAT:IPv6取消了NAT(网络地址转换)的需求,简化了网络结构。
2.4 组播,任播,单播地址
在IPv6中,地址的类型与IPv4有显著差异,IPv6为了提高网络通信效率和简化网络设计,采用了不同的地址类型。IPv6中常见的三种地址类型是单播地址(Unicast)、组播地址(Multicast)**和**任播地址(Anycast)。这些地址类型分别用于不同的通信场景。
2.4.1. 单播地址(Unicast Address)
单播地址用于将数据包发送到网络中的一个特定接口(即唯一主机)。每个单播地址标识一个单独的接口,数据包根据路由选择最优路径传递给该接口。
2.4.1.1 单播地址的分类:
-
全球单播地址(Global Unicast Address,GUA):
- 这是可路由的全球唯一地址,类似于IPv4的公共IP地址,用于互联网通信。
- 格式前缀为
2000::/3
。 - 例如:
2001:0db8::/32
是一个全球单播地址。
-
链路本地地址(Link-local Address):
- 仅用于同一链路上的通信,不会通过路由器转发到其他网络。
- 格式前缀为
fe80::/10
,常用于自动地址配置(SLAAC)和邻居发现协议(NDP)。 - 例如:
fe80::1a2b:3c4d:5e6f:7g8h
。
-
唯一本地地址(Unique Local Address,ULA):
- 类似于IPv4的私有IP地址(如192.168.x.x),仅在特定组织或站点内使用,不用于全球互联网通信。
- 格式前缀为
fc00::/7
。 - 例如:
fd00::/8
。
2.4.1.2 单播地址的应用:
- 全球单播地址用于互联网中的常规通信,例如访问远程服务器。
- 链路本地地址用于同一局域网内的自动化配置和邻居发现等服务。
2.4.2. 组播地址(Multicast Address)
组播地址用于将数据包发送到一个地址组中的多个接口,数据包会同时传输到多个接收设备,所有属于组播组的设备都会接收到数据包。与IPv4不同,IPv6取消了广播地址,而组播地址可以代替广播的某些功能。
2.4.2.1 组播地址的特点
- 组播范围可控:IPv6组播地址具有多个范围,如局域链路范围和组织范围,确保组播包不会无效地传输到整个网络。
-
组播地址前缀:
ff00::/8
用于IPv6组播地址,其中范围字段控制组播的传播范围。
2.4.2.2 常见的IPv6组播地址
-
节点本地组播地址(Node-local Multicast Address):
- 仅限于设备本身使用,数据包不出设备。
- 例如:
ff01::1
。
-
链路本地组播地址(Link-local Multicast Address):
- 数据包只能在同一链路上传输,常用于邻居发现和路由协议。
- 例如:
ff02::1
表示所有设备,ff02::2
表示所有路由器。
-
组织范围组播地址(Organization-local Multicast Address):
- 数据包可以在一个组织范围内传播。
- 例如:
ff08::1
表示一个组织内部的所有设备。
2.4.2.3组播地址的应用
- 视频会议、多媒体广播、路由协议(如OSPFv3、EIGRP)的组播通信。
- 链路本地组播常用于路由器之间交换信息。
2.4.3. 任播地址(Anycast Address)
任播地址用于将数据包发送到最接近发送者的一个接口。与单播地址不同的是,同一任播地址可以分配给多个接口,但路由器会根据路由协议将数据包发送到距离发送者最近的那个接口。
2.4.3.1 任播地址的特点
- 多设备共享同一地址:任播地址可以分配给多个节点,但只有一个最近的节点会接收数据。
- 基于路由的选择:当有多个设备共享同一任播地址时,路由器会根据当前网络拓扑的路由规则选择最近的目标节点。
2.4.3.2任播地址的应用
- 负载均衡:通过任播地址将用户的请求发送到最近的数据中心或服务器,减少延迟。
- 冗余和故障切换:任播可以用于服务的高可用性,确保在一台服务器不可用时,数据自动转发给另一台最近的服务器。
2.4.4. IPv6地址类型总结
地址类型 | 功能 | 应用场景 |
---|---|---|
单播地址 | 数据包发送到特定的一个接口或设备 | 全球单播地址用于互联网上的通信,链路本地地址用于局域网自动配置 |
组播地址 | 数据包发送到多个设备,接收组播数据包的所有设备都能接收 | 视频会议、多媒体广播、路由协议(如OSPFv3、EIGRP) |
任播地址 | 数据包发送到最近的一个设备,多个设备共享同一个地址,数据仅发送给其中最近的一个 | 用于负载均衡、故障转移和最近服务器的访问 |
实际应用示例:
- 单播地址的应用:
- 当用户在浏览器中访问网站时,浏览器会通过单播方式将请求发送到目标服务器的全球单播地址,例如:
2001:0db8::1
。
- 当用户在浏览器中访问网站时,浏览器会通过单播方式将请求发送到目标服务器的全球单播地址,例如:
- 组播地址的应用:
- 视频会议中,服务器会将视频数据通过组播地址发送给所有参与会议的设备,而这些设备只需监听特定的组播地址。
- 任播地址的应用:
- 全球内容分发网络(CDN)中,使用任播技术,用户请求自动路由到距离最近的服务器,从而加快响应时间。
IPv6 的三种地址类型通过合理的设计,为现代网络提供了更强大的通信能力,能够支持更广泛的应用场景,如流媒体、物联网和高可用服务等。
2.5 IPv6简要总结
IPv6:IPv6是设计用于替代现行版本IP协议(IPv4)的下一代IP协议。
(1)IPV6地址长度为128位,地址空间增大了296倍;
(2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPv4中可变长度的选项字段IPv6中选项部分
的出现方式也有所变化,使路由器可以简单路过选项而不作任何处理,加快了报文处理速度;
(3)IPv6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;
(4)提高安全性。身份认证和隐私权是IPv6的关键特性
(5)支持更多的服务类型;
(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展。
3.IPv4 和 IPv6 的过渡技术
由于IPv4和IPv6的并存,在从IPv4过渡到IPv6过程