【JavaWeb】计算机网络基础

计算机网络

一、概述

1、计算机网络

计算机网络是指两台或更多的计算机组成的网络。

在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。

2、网络拓扑图

在这里插入图片描述

  • 用户设备:Laptop,用于访问网络资源。
  • 网络交换机:Switch,用于连接局域网内的设备,例如 Laptop 和 Router。
  • 路由器:Router,用于连接不同网络,将 局域网 与 互联网 相连。
  • 防火墙:Firewall,用于保护网络内部资源,阻止未经授权的访问。
  • 互联网:Internet,提供连接到其他网络和全球信息资源。
  • 服务器:Server,用于托管网络应用程序和数据。

3、互联网

互联网(Internet)是计算机网络系统的集合,由许多通过网络互相连接的计算机组成,可以让这些计算机之间进行通信和数据交换。

以下是关于互联网的一些重要特点和组成部分:

  1. 全球性:互联网是全球范围内的网络系统,几乎任何地方只要有互联网接入设备,都可以连接到互联网。

  2. 分布式结构

  3. 全球性:互联网是全球范围内的网络系统,覆盖了地球上的大部分地区,几乎任何地方只要有互联网接入设备,都可以连接到互联网。

  4. 分布式结构:互联网采用分布式结构,由许多相互连接的网络设备(如计算机、路由器、交换机等)组成,这些设备可以在不同的地理位置、不同的网络提供商和不同的组织管理。

  5. 开放性和标准化:互联网是一个开放的平台,遵循一系列的通信协议和标准,其中最重要的是 TCP/IP 协议套件,它定义了互联网的基本通信规范。

  6. 多种服务和应用:互联网支持多种不同的服务和应用,包括万维网(World Wide Web)、电子邮件、文件传输、即时通讯、远程访问等。这些服务和应用可以通过互联网实现跨地域、跨国界的信息交流和资源共享。

  7. 公共资源:互联网是一个公共资源,任何人都可以通过互联网访问和发布信息,实现全球范围内的信息共享和沟通。

  8. 安全和隐私:随着互联网的发展,安全和隐私保护成为互联网运营和使用中的重要问题,需要采取各种安全措施和技术手段来保护网络和用户的数据安全和隐私。

二、网络分层模型

由于计算机网络从底层的传输到高层的软件设计十分复杂,因此采用 分层模型

  • 每一层都专注做一件事情。

  • 每一层都需要使用下一层提供的功能。

例如,传输层 需要使用 网络层 提供的路由和寻址功能,这样 传输层 才知道把数据传输到哪里去。

1、OSI 网络模型

OSI(Open System Interconnect)网络模型是 ISO 组织定义的一个计算机互联的标准模型,目的是为了简化网络各层的操作。

在这里插入图片描述

2、OSI 七层结构的作用

这个模型从上到下依次是:

OSI 七层结构作用常见协议协议数据单元设备
应用层提供应用程序之间的通信HTTP、FTP、DNS服务器
表示层处理数据格式,加解密等等JPEG、MP3、AVI编码/解码器
会话层负责建立和维护会话SIP会话控制器
传输层负责提供端到端的可靠传输TCP、UDP段(Segment)端口、防火墙
网络层负责路由与寻址(决定数据在网络的游走路径)IP、ARP、NAT数据报(Datagram)路由器
数据链路层封装数据帧、解析物理地址、传输和接收数据PPP、HDLC帧(Frame)网卡、交换机
物理层在物理媒介上传输原始比特流Wi-Fi、蓝牙、USB比特(Bit)网线、集线器

三、协议

0、TCP/IP 协议

  • TCP/IP 是Internet最基本、最广泛的协议,定义了计算机如何连入因特网,以及数据在计算机间传输的标准。

  • TCP/IP协议不光指 TCP 和 IP 两个协议,而是指 HTTPFTPDNSTCPUDPIPARP 等协议构成的协议族。

    只是因为在TCP/IP协议中,TCP协议 和 IP协议 最具代表性,所以被称为TCP/IP协议。

TCP/IP 四层模型 是目前被广泛采用的一种模型,与 OSI 七层模型 的对应关系大致如下:

在这里插入图片描述

1、HTTP 协议(应用层)

HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超文本(如 HTML)数据的应用层协议。

HTTP 协议定义了客户端和服务器之间数据交换的规则和格式,是 Web 服务的基础。

1)无状态性

HTTP 是一种无状态协议,即每个 请求 与 响应 之间是相互独立的,服务器不会在多次请求之间保留任何状态信息。

  • 这意味着每个请求都是独立的,服务器不会自动记录用户的会话状态。
  • 为了实现会话管理,通常需要使用 Cookie、Session 等机制来维护 客户端 和 服务器 之间的状态信息。

2)请求-响应模型

HTTP 协议基于请求-响应模型,客户端发送请求给服务器,服务器返回相应的响应。

  • 请求由客户端发起,包括请求方法(GET、POST、PUT、DELETE 等)、请求 URL、请求头、请求体等信息。
  • 响应由服务器返回,包括状态码(如 200、404、500 等)、响应头、响应体等信息。

3)数据格式

HTTP 协议支持多种数据格式的传输,包括文本、图像、音频、视频等。

  • 常见的文本数据格式包括 HTML、XML、JSON 等。
  • 图像、音频、视频等二进制数据,通常以二进制流的形式传输。

4)发展历程

1. http1.0 (1996) : 每次请求都有一个新的连接 (开销大, 比较慢)
2. http1.1 (1999) : 长连接,多个请求共用一个连接 (开销小一些, 比较快) 
					传输的数据都是文本(比较慢),不支持推送
3. http2.0 (2015) : 传输的数据经过压缩,效率很高,支持推送 (基于 TCP 协议)	
4. http3.0 (2020) : 基于 UDP 协议的 QUIC(Quick UDP Internet Connections)协议,
				    通过 QUIC 实现了更低的连接建立和断开延迟,以及更快的数据传输速度。

5)URI & URL

  • URI(Uniform Resource Identifier):统一资源标志符,可以唯一标识一个资源。(身份证)
  • URL(Uniform Resource Locator):统一资源定位符,可以提供该资源的路径。(家庭地址)

URI 是一个通用的概念,用于标识资源的抽象标识,而 URL 是 URI 的一种特定类型,提供了资源的位置和访问方式。

  • URL 去掉协议、IP 地址和端口号,剩下的部分就是 URI。

6)HTTP & HTTPS

  • 端口号:

    HTTP 默认是 80,HTTPS 默认是 443

  • URL 前缀:

    HTTP 是 http://,HTTPS 是 https://

  • 安全性:

    HTTP 是明文传输的协议,数据在传输过程中是不加密的,因此容易被窃听和篡改。

    HTTPS 在 HTTP 的基础上加入了 SSL/TLS 加密机制,通过使用 SSL/TLS 协议对数据进行加密和身份验证,更安全。

  • 证书:

    HTTPS 需要使用数字证书来进行身份验证和加密通信。

    服务器需要向证书颁发机构(CA)申请证书,并在每次通信时向客户端展示证书以证明身份。

    客户端会验证服务器的证书是否受信任,并且建立安全的通信链接。

总的来说,HTTPS 比 HTTP 更安全,但是 HTTPS 比 HTTP 耗费更多服务器资源。

2、FTP 协议(应用层)

FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准网络协议。

FTP 协议是 Internet 上最早的应用之一,被广泛应用于文件共享、网站维护、软件发布等场景中。

1)客户端-服务器模型

FTP 协议由两个主要部分组成:FTP 客户端 和 FTP 服务器。

它允许用户从一个计算机(客户端)向另一个计算机(服务器)传输文件,并且可以在文件传输的过程中进行目录操作、文件管理等。

客户端发起连接,并请求 从服务器下载文件 或 向服务器上传文件。

2)端口

  • FTP 使用两个 TCP 连接进行通信:控制连接(Control Connection)和数据连接(Data Connection)。
  • 控制连接 默认使用 TCP 端口 21,用于发送命令和控制操作。
  • 数据连接 使用动态端口(通常是端口 20),用于传输文件数据。

3)命令和响应

  • 客户端 通过 控制连接 发送各种命令给服务器,如登录、上传、下载、删除文件等。
  • 服务器 接收到命令后,会发送相应的 响应码 和 响应消息 给客户端,以指示命令执行的结果。

5)传输模式

FTP 支持多种传输模式,包括 ASCII 模式和二进制模式。

  • ASCII 模式 用于文本文件的传输
  • 二进制模式 用于非文本文件(如图像、音频等)的传输。

6)数据连接模式

FTP 可以使用被动模式(PASV)或主动模式(PORT)进行数据连接的建立。

  • 被动模式下,客户端 向 服务器 发起数据连接请求;
  • 主动模式下,服务器 向 客户端 发起数据连接请求。

3、DNS 协议(应用层)

DNS(Domain Name System,域名系统)是互联网中的一种分布式数据库系统,用于将域名转换为相应的 IP 地址。

DNS 协议定义了域名解析的过程和规则,使得用户可以使用易记的域名来访问互联网上的资源,而无需记住复杂的 IP 地址。

1)域名解析

DNS 主要任务是将用户输入的域名解析为对应的 IP 地址,客户端再根据 IP 地址访问服务器。

nslookup命令可以查看域名对应的 IP 地址:

$ nslookup www.baidu.com
Server:		192.168.0.1
Address:	192.168.0.1#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 180.101.50.188
Name:	www.a.shifen.com
Address: 180.101.50.242

有一个特殊的本机域名localhost,它对应的 IP 地址总是本机地址127.0.0.1

$ nslookup localhost    
Server:		192.168.0.1
Address:	192.168.0.1#53

Non-authoritative answer:
Name:	localhost
Address: 127.0.0.1

2)分层结构

DNS 数据库采用分层结构,每一级域名都有对应的 DNS 服务器,负责管理该级域名下的所有子域名

  • 根域名服务器:位于 DNS 层次结构的顶端,负责管理顶级域名服务器的信息。
  • 顶级域名服务器:管理顶级域名下的子域名,如 .com.org.net 等。
  • 权威域名服务器:存储特定域名下的所有资源记录(如 A 记录、CNAME 记录等)。
  • 本地域名服务器:位于 ISP 或组织内部网络中,负责 缓存域名解析结果 并 响应客户端的 DNS 查询请求。

3)域名解析过程

  1. 本地域名服务器会先查询自己的缓存,如果找到对应的解析结果,则直接返回给客户端。
  2. 如果本地域名服务器的缓存中没有,就会开始进行向下递归查询
    1. 首先,它会查询根域名服务器,获取顶级域名服务器的 IP 地址。
    2. 然后,他会查询顶级域名服务器,依次迭代查询,直到找到对应的权威域名服务器
  3. 权威域名服务器检查自己的数据库,找到相应的域名记录,并返回对应的 IP 地址。
  4. 最后,本地域名服务器将 IP 地址返回给客户端,并在自己的缓存中保存该解析结果,以备后续查询使用。

4、TCP 协议(传输层)

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。

它提供了在网络中可靠地传输数据的机制,确保数据能够按照正确的顺序、无丢失地传输到目标地址。

  1. 面向连接
    • TCP 是一种面向连接的协议,通信双方 在传输数据之前 需要先建立连接。
    • 连接的建立包括三次握手过程,用于确立双方的通信状态,以及确定连接参数。
  2. 可靠性
    • TCP 提供了可靠的数据传输机制,通过序列号、确认和重传机制,确保数据能够按照正确的顺序、无丢失地传输到目标地址。
    • 如果数据包在传输过程中丢失或者损坏,TCP 会自动重传数据,直到接收方正确地收到数据。
  3. 流量控制
    • TCP 使用滑动窗口(Sliding Window)机制进行流量控制,避免发送方发送过多数据导致接收方无法及时处理。
  4. 拥塞控制
    • TCP 提供了拥塞控制机制,用于控制网络中的拥塞情况。
    • 通过动态调整窗口大小和重传超时时间等参数,TCP 可以自适应地调整数据传输速率,避免网络拥塞。
  5. 字节流传输
    • 发送方将数据划分为合适大小的数据段进行传输,接收方根据序列号将数据段组装成完整的数据流。
    • TCP 不保留消息的边界,因此需要应用层协议来解析消息。
  6. 全双工通信
    • TCP 提供了全双工通信机制,允许 发送方 和 接收方 同时发送和接收数据,实现双向通信。

总的来说,TCP 是一种可靠的、面向连接的、全双工的传输协议,适用于对数据传输可靠性要求较高的场景,如文件传输、网页访问、电子邮件等。TCP 协议在互联网中得到广泛应用,是互联网通信的重要基础。

1)三次握手

TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。

  • 第一次握手(SYN)

    客户端 向 服务器 发送一个带有 SYN(同步)标志的数据包,表示客户端请求建立连接。

  • 第二次握手(SYN + ACK)

    服务器 接收到 客户端 的 SYN 数据包后,回复一个带有 SYN 和 ACK(确认)标志的数据包,表示收到并响应客户端的请求。

  • 第三次握手(ACK)

    客户端 接收到 服务器 的 SYN + ACK 数据包后,会回复一个带有 ACK 标志的数据包,表示收到服务器的响应。

至此,双方完成了连接的建立,可以开始进行数据传输。

思考:为什么要进行三次握手?

  • 为了实现可靠数据传输,防止失效的连接请求到达服务器,导致服务器开启无用的连接增加开销。
  • TCP协议的通信双方,都要维护一个序列号,标识发送的数据包中,哪些是已经被对方收到的。

2)四次挥手

  • 第一次挥手(FIN):

    客户端 发送一个带有 FIN(结束)标志的数据包,表示客户端不再发送数据,但仍然可以接收数据。

  • 第二次挥手(ACK):

    服务器 接收到 客户端 的 FIN 数据包后,会回复一个带有 ACK 标志的数据包,表示收到客户端的结束请求。

  • 第三次挥手(FIN):

    服务器 发送一个带有 FIN 标志的数据包,表示服务器也准备好断开连接,不再发送数据。

  • 第四次挥手(ACK):

    客户端 接收到 服务器 的 FIN 数据包后,会回复一个带有 ACK 标志的数据包,表示收到服务器的结束请求。

至此,连接断开。

3)目的

为什么要三次握手?

  • 同步初始序列号:确保双方都知道对方的初始序列号,从而可以正确地进行数据传输和确认。
  • 连接双方确认:保证客户端和服务器都准备好进行数据交换,避免数据丢失。
  • 实现可靠数据传输:防止失效的连接请求到达服务器,导致服务器开启无用的连接增加开销。

为什么要四次挥手?

  • 确保数据完整传输:客户端和服务器都能完整地传输所有数据后,才开始关闭连接。
  • 双向终止:每一方都能单独地关闭连接,以确保双方都准备好终止连接。

通过三次握手和四次挥手,TCP 协议能够确保连接的正确建立和断开,保障数据传输的可靠性和正确性。

5、UDP 协议(传输层)

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的,不可靠的,高效的传输层协议,用于在网络上传输数据。

  • 无连接
    • UDP 是一种无连接的协议,通信双方在传输数据之前不需要建立连接
    • 每个数据包都是独立的,独立发送,独立接收,没有状态信息的维护。
  • 不可靠
    • 发送一方可以直接发送数据,不用关心接收一方是否在线。
    • 如果对方在就可以接收数据,如果对方不在,这时数据就自动的被丢弃。
    • UDP 协议本身不提供数据包的重传机制,因此发送方无法知道数据包是否成功到达接收方。
  • 简单高效
    • 相比于 TCP 协议,UDP 不需要建立连接、维护状态,也不需要进行握手和挥手操作,开销更小,传输效率更高。
  • 使用场景
    • UDP 主要用于实时性要求较高,并且允许丢包的情况。
    • 例如音频、视频等流媒体传输,以及在线游戏、实时通信等场景。
    • 在这些场景中,一些数据包的丢失或者延迟是可以容忍的,而传输速度和实时性更为重要。

总的来说,UDP 协议是一种简单、高效、不可靠的传输协议,适用于一些对传输速度要求较高、对可靠性要求较低的网络应用场景。

6、IP 协议(网络层)

IP(Internet Protocol,互联网协议)是 TCP/IP 协议族中的核心协议之一,它定义了在网络中传输数据的基本规则和格式。

IP 协议负责实现 网络层 的功能,它主要解决了在网络中如何寻址和路由数据包的问题。

1)基本单元

IP 协议使用数据报(Datagram)作为数据传输的基本单元。

  • IP 数据报的格式包括报头部分和数据部分。
  • 报头部分包含了源 IP 地址、目标 IP 地址、协议版本、报头长度、服务类型、数据报长度等信息。

2)IP 地址

IP 地址是用于在网络中唯一标识主机和路由器的地址。

  • IPv4 地址是 32 位二进制数字,通常用点分十进制表示(如 192.168.1.1)。
  • IPv6 地址是 128 位二进制数字,通常用冒号分隔的八组十六进制数表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。

3)数据传输

  • IP 协议负责将数据报从 源主机 传输到 目标主机。它使用 路由器和交换机等网络设备 来 实现数据包的转发和路由。
  • 源主机 根据 目标主机 的 IP 地址和路由表 确定数据包的下一跳路由器,然后将数据包发送给下一跳路由器。
  • 路由器 根据 目标 IP 地址的前缀 匹配路由表,选择合适的接口将数据包转发给下一个路由器,直到达到目标主机。

4)数据报分片和重组

  • IP 协议支持将大的数据报分片成多个小的数据报进行传输,以适应不同的网络链路和设备的最大传输单元(MTU)。
  • 目标主机收到分片数据包后,会根据数据报的标识和偏移量将分片数据包重组成原始的大数据报。

5)无连接性

  • IP 是一种无连接协议,数据包在传输过程中不会建立连接,每个数据包都是独立传输的。
  • 这使得 IP 协议非常灵活,适用于各种类型的网络通信,但也增加了数据包丢失和乱序的可能性。

7、ARP 协议(网络层)

ARP(Address Resolution Protocol,地址解析协议)是一个用于在局域网中解析 IP地址 到 物理地址(MAC地址)的协议。

其作用是确保 网络层(IP地址)和数据链路层(MAC地址)之间能够正确映射,从而确保数据包能够正确地传输到目标设备。

1)Mac地址

MAC 地址(Media Access Control Address,媒体访问控制地址)是用于在网络中 唯一标识网络设备 的地址。

  • MAC 地址是一个由 48 位二进制数字组成的地址,通常以十六进制表示。

    格式为 6 组每组两个字符的十六进制数字,以冒号或短划线分隔,例如:00:1A:2B:3C:4D:5E

  • MAC 地址是由网络设备的制造商预先分配的,每个网络设备都有一个唯一的 MAC 地址

    这个地址通常是固化在设备的网卡(网络适配器)中,也称为硬件地址。

  • MAC 地址的 唯一性 和 固化性 使得网络设备可以被准确地识别和定位。

MAC 地址在网络通信中起着至关重要的作用,它用于在局域网中唯一标识设备,以便在 数据链路层 进行 数据帧 的传输和交换。当设备在局域网中通信时,数据链路层根据目标设备的 MAC 地址来决定将数据帧发送到哪个端口,从而实现了局域网中设备之间的直接通信。

MAC 地址有一个特殊地址:FF-FF-FF-FF-FF-FF(全 1 地址),该地址表示广播地址。

2)ARP 协议 的 作用

因为一个 IP 数据报在传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议就是用于在局域网中将 IP 地址 解析为 MAC 地址 的协议。

ARP 协议 解决的是 网络层地址 和 数据链路层地址 之间的转换问题。

3)ARP 协议 的 原理

  1. ARP请求

    当一台计算机(或设备)想要发送数据到一个已知的IP地址,但不知道目标设备的MAC地址时,它会广播一个ARP请求包到网络上。请求该 IP 地址对应的设备告知其 MAC 地址。(这个 请求包 包含了发送者的IP地址和MAC地址,以及目标设备的IP地址)

  2. ARP应答

    拥有该 IP 地址的设备收到 ARP 请求后,会发送一个 ARP 应答(ARP Reply)消息,将自己的 MAC 地址发送给请求者。

  3. 更新ARP缓存

    请求设备收到 ARP 应答后,会将目标设备的IP地址和MAC地址的映射存储到它的ARP缓存中,以便后续可以直接使用,不需要每次都进行ARP请求。目标设备也会更新它的ARP缓存以记录发送者的IP和MAC地址映射。

8、ICMP 协议(网络层)

ICMP(Internet Control Message Protocol,互联网控制报文协议)

ICMP 报文中包含了类型字段,用于标识 ICMP 报文类型。ICMP 报文的类型有很多种,但大致可以分为两类:

  • 查询报文类型 :向目标主机发送请求并期望得到响应。
  • 差错报文类型 :向源主机发送错误信息,用于报告网络中的错误情况。

PING 命令的主要原理就是通过在网络上发送和接收 ICMP 报文实现的。

  • PING 命令会向目标主机发送 ICMP Echo Request。
  • 如果两个主机的连通性正常,目标主机会返回一个对应的 ICMP Echo Reply。

PING 用到的 ICMP Echo Request(类型为 8 ) 和 ICMP Echo Reply(类型为 0) 属于查询报文类型 。

四、IP地址

IP 地址(Internet Protocol Address,互联网协议地址)是分配给计算机或网络设备的数字标识,用于在 Internet 上唯一标识每个设备。

IP 地址是 Internet 上数据传输的基础,通过 IP 地址,计算机可以相互识别和通信,从而实现数据的传输和交换。

1、 IPv4 和 IPv6

IP 地址分为 IPv4 和 IPv6 两种类型:

  • IPv4(Internet Protocol Version 4)

    • 是目前广泛使用的 IP 地址格式。
    • 由 32 位二进制数字组成,通常以点分4段的十进制形式表示。(例如:192.168.0.1)
    • IPv4 地址的总数量有限,约有 42 亿个可用地址,因此 IPv4 地址空间已经逐渐枯竭。
  • IPv6(Internet Protocol Version 6)

    • 是下一代 IP 地址标准,用来解决IPv4网络地址资源有限的问题。
    • 由 128 位二进制数字组成,通常以冒号分8段的十六进制形式表示。(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)
    • IPv6 地址空间极大,总数量为约 3.4 × 10^38 个,足够满足未来互联网的发展需求。

2、公有 IP 和 私有 IP

IP 地址有两种类型:公有 IP 地址 和 私有 IP 地址。

  • 公有 IP 地址

    由 Internet 运营商分配给网络中的设备,用于在 Internet 上进行通信。

    公有 IP 地址是全球唯一的,可以直接被 Internet 上的其他设备访问。

  • 私有 IP 地址

    在内部网络中使用的 IP 地址,不直接暴露在 Internet 上。

    私有 IP 地址通常在局域网内部使用,通过 NAT(Network Address Translation,网络地址转换)技术与 Internet 进行通信。

    私有 IP 地址范围由专门的地址段定义,例如 IPv4 的私有地址段为 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。

3、NAT

NAT(Network Address Translation,网络地址转换)是一种网络技术,用于将私有 IP 地址转换为公共 IP 地址,以实现局域网内部设备与外部网络之间的通信。NAT 技术通常应用于路由器或防火墙等网络设备上。

NAT 的主要功能包括:

  1. 地址转换:NAT 将 局域网内部设备使用的私有 IP 地址 映射为 路由器或防火墙的公共 IP 地址,从而使得局域网内的设备可以访问 Internet 上的资源。
  2. 端口转换:NAT 通过修改数据包的端口信息,实现多个设备共享同一个公共 IP 地址的功能。在 NAT 转换过程中,每个数据包都会被分配一个唯一的端口号,以便于在目标地址上正确路由到相应的设备。
  3. 网络隔离:NAT 技术可以隔离 内部网络 和 外部网络,有效地防止外部网络直接访问内部网络中的设备,增强了网络的安全性。
  4. 节省 IP 地址:NAT 技术可以让多个设备共享同一个公共 IP 地址,节省了 IP 地址资源的使用,尤其在 IPv4 地址资源紧缺的情况下,NAT 技术可以有效地缓解 IP 地址的枯竭问题。

NAT 技术的主要类型包括:

  1. 静态 NAT:将内部设备的私有 IP 地址与外部网络的公共 IP 地址一对一映射,通常用于服务器等需要对外提供服务的设备。
  2. 动态 NAT:根据内部设备的使用情况动态地分配公共 IP 地址,使得多个内部设备可以共享同一个公共 IP 地址。
  3. PAT(Port Address Translation):端口地址转换,通过修改端口号实现多个设备共享同一个公共 IP 地址。

4、IP地址 & MAC地址

IP 地址(Internet Protocol Address,互联网协议地址)和 MAC 地址(Media Access Control Address,媒体访问控制地址)是两种用于网络通信的地址标识,它们之间有以下几点区别:

  1. 作用范围
    • IP 地址是在网络层(OSI 模型的第三层)使用的地址,用于在 Internet 上唯一标识设备并进行数据传输。
    • MAC 地址是在数据链路层(OSI 模型的第二层)使用的地址,用于在局域网内唯一标识网络设备并进行数据帧传输。
  2. 层级关系
    • IP 地址是逻辑地址,用于标识网络中的主机或者路由器,具有层次性和分层路由特性。
    • MAC 地址是物理地址,是网络适配器(网卡)固定在硬件上的唯一标识,用于在局域网内直接通信。
  3. 格式
    • IP 地址是一个由四个字节组成的数字,在 IPv4 中通常以点分十进制表示(例如:192.168.0.1),在 IPv6 中以冒号分段的十六进制表示(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
    • MAC 地址是一个由六个字节组成的十六进制数字,通常以冒号或者连字符分隔(例如:00:1A:2B:3C:4D:5E)。
  4. 唯一性
    • IP 地址可以在全球范围内重复使用,但在同一个网络中必须是唯一的,以确保数据的正确传输。
    • MAC 地址是全球唯一的,每个网络设备的 MAC 地址都是唯一的,不会出现重复。
  5. 使用方式
    • IP 地址用于在不同网络之间进行通信,包括 Internet 上的通信和局域网之间的通信。
    • MAC 地址主要用于局域网内设备之间的通信,用于直接交换数据帧。

总的来说,IP 地址和 MAC 地址在网络中扮演不同的角色,分别用于在不同层级和范围内进行网络通信的标识和定位。

  • IP 地址在 Internet 上唯一标识主机和路由器,而 MAC 地址在局域网内唯一标识网络设备。

五、端口

  • 端口:用于标识进程应用程序之间通信终点的抽象概念。
  • 端口号:每个端口都有一个唯一的数字标识,范围从0到65535(16位无符号整数的范围)

端口分为两种类型:系统端口(Well-known ports)和动态端口(Ephemeral ports)。

1、系统端口

系统端口的范围是 0~1023,通常用于一些知名的网络服务和协议。

比较常见的系统端口包括:

  • 21:FTP 文件传输协议
  • 25:SMTP 简单邮件传输协议
  • 22:SSH 安全外壳协议
  • 53:DNS 域名系统
  • 80:HTTP Web 服务
  • 443:HTTPS 安全 Web 服务

2、动态端口

动态端口的范围是 1024~65535,用于临时分配给客户端程序。

  • 动态端口用于临时通信,以避免与系统端口冲突。
  • 当客户端应用程序需要与服务器应用程序进行通信时,操作系统会分配一个空闲的动态端口,并在通信结束后释放。

3、IP地址 + 端口号

通过IP地址可以找到网络中具体的计算机,而具体需要访问计算机中的哪个资源信息,就需要用到端口号了。

在这里插入图片描述

端口号IP地址共同构成了网络通信中的终点,可以唯一地标识一个网络上的进程或应用程序。

例如,在客户端和服务器之间的通信中,客户端通常会指定目标服务器的IP地址和端口号,以便与特定的服务器应用程序建立连接。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scj1022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值