WeSeong 登录
← 返回文章列表
网络

2. 网络类型、OSI 七层模型、协议(数据链路层、网络层、传输层)

网络类型、OSI七层模型、协议(数据链路层、网络层、传输层)

接下来,我们将从网络层中的 ICMP 协议开始讲解。


以下文章预告… 打算了解如何在VMware上更改Host-only、NAT和桥接网络。(顺便学习俄罗斯方块?)


一、概述

网络层 ICMP(互联网控制消息协议),IGMP(互联网组管理协议)存在着相应的协议。ICMP 协议用于处理数据包传输过程中出现的错误信息,而 IGMP 协议则与多播通信相关。 传输层主要 TCP(传输控制协议)鸡蛋 UDP(用户数据报协议)TCP 是一种基于三次握手的高可靠性面向连接的协议,而 UDP 是一种以快速传输为特点的非连接型协议。 网络服务 NAT(网络地址转换)然而,它定义了内部IP和外部IP。接下来 DHCP(动态主机配置协议)正如之前帖子所述,它定义了 IP 地址分配的方式。



Ⅱ. 协议(以网络和传输层为中心)

  1. 网络层协议

继之前的帖子,我们继续讨论网络层。 ICMP(互联网控制消息协议) 简单来说,协议的功能是在主机服务器和网关(路由器)之间控制消息,并报告错误。其中,ICMP 协议中常用的命令包括:

ping 10.10.10.2

上方 ping 我想知道,下一个指令是否指向某个特定的地址。(可以是 IP 地址,也可以是域名)在输入后,如果连接成功,界面会显示类似下图所示的状态。如果无法正常连接,则会显示错误信息。`ping` 命令可以发送临时数据包,从而了解服务器的响应状态。


IP由于它是非连接型协议,因此无法保证数据包一定会被传输。如果由于路由器或节点(主机)等出现错误,导致数据包无法到达目的地,则需要告知发送方当前的状态。因此, 分析接收到的来自多个路由器的 ICMP 协议信息,以及目标节点的状况。 ICMP 协议是位于 IP 协议之上的传输层协议,与 TCP 和 UDP 协议不同,但它们同样运行在 IP 协议之上,与之前的文章中提到的 IP 协议相同。 TTL(生存时间)与 ICMP 包的结构相关。在 ICMP 包的结构中,需要注意以下几点: 校验和校验和的作用是检测数据包中的错误。它通过计算一个补码,并考虑进位运算,最终计算出校验和。


※ 校验和的计算方法和 Carry 位的运算方法,目前我还没有完全理解,请参考其他帖子。



请参考 Linux 和网络课程的讲义。

ICMP 主要分为两种类型:一种是用于报告错误的错误消息,另一种是用于诊断和故障排除的问答消息。 ICMP 回显请求 这条消息用于确认发送方节点已将数据包发送到目标节点或路由器。发送方节点(发送请求的计算机)会向目标节点 “ICMP Echo 请求消息”并将数据发送到目标节点 “ICMP 回复消息”当收到回复时,系统会认为数据包已成功发送。 ICMP 目标不可达 当路由器无法将特定节点的包发送到目标地址时,这条消息会发送给发送节点。 “ICMP 目标不可达消息”发送给他们。 “这里包含了未能成功发送到目的地的原因。” 当路由器无法找到目标节点的 IP 地址,会将此消息返回发送方的路由器,从而使原始发送节点能够识别出该消息无法到达目标节点。


回声这是一个在 Unix 系统中用于在终端上输出字符串的命令。由于 Linux (Ubuntu) 也是 Unix 系统,因此也存在这个命令,但它不仅仅用于简单的字符串输出,在 shell 脚本中也经常被使用。


ICMP 重定向消息当路由器配置的路径不适合发送端节点时,它会发送一条消息,告知目标节点重新指定最佳路径。 ICMP 超时 这条消息之前,使用了 IP 协议的 TTL(时间到生命)来防止数据包在网络中无限循环。当 TTL 值为 0 时, “ICMP 超时消息”丢弃该包,并将其从网络中移除。每个包在经过路由器时,其数量会减少1。如果包在到达最终目标节点之前,数量变为0,则表示该包未能正确传递。


请参考 Linux 和网络课程的讲义。

ICMP 源请求 这条信息适用于使用低速广域网等连接方式时,需要在WAN(广域网)侧,使用特定的路由器。 瓶颈现象这种情况可能会发生,为了缓解这种情况,发送端队列的值保持为“0”,导致无法发送。 “ICMP 源请求消息”将此信息发送到发送端节点,发送端节点会解析此信息,从而判断线路是否拥塞,并根据情况调整发送的数据包数量。



请参考 Linux 和网络课程的讲义。

低速广域网络伊朗?WAN(广域网)是一种通信网络,主要用于传输语音数据。它通常用于VoIP(语音传输),建议您查阅相关资料以了解更多信息。


接下来 IGMP(互联网组管理协议)存在一套协议。 多播组在使用多播协议之前,我们需要先了解单播和广播。 单播这是一种一对一的传输方式,从一个服务器到另一个服务器。 常见的 IP 数据传输都是单播。 我们可以这样理解,当我们访问像网易或谷歌这样的网站,实际上也是单播。 广播它将数据从主机发送到整个 IP 网络中的所有主机。 回顾一下之前关于 IP 协议的“类”概念,我们可以看到,数据会被发送到所有属于同一类的“例如,连接到交换机的所有设备”的网络。 典型的广播 '255.255.255.255'以及向特定网络广播 直接广播据称,如果要将数据发送到“211.32.34.0”的网络段,只需将目标地址设置为“211.32.34.255”。这意味着,不是将数据发送到特定的单个IP地址,而是进行广泛的数据传输。主要用于 ARP(地址解析协议)在查找 MAC 地址时使用,而 DHCP(动态主机配置协议)则在动态分配 IP 地址时使用。 多播它是一种介于单播和广播之间的形式,将一个特定的目标地址绑定到一个发送的主机,然后一起发送。 这与特定的主机相关这是一个多播组,由于该组的所有主机都可以接收数据,因此效率很高。


2. 传输层协议

在这个层次中,最重要的协议是: TCP(传输控制协议)鸡蛋 UDP(用户数据报协议)我们可以设想一个场景:我们需要给住在乡下的爷爷奶奶写信。为了给住在乡下的爷爷奶奶写信,我需要写一封信。这封信最初可能只是在小纸上用笔写下的,但最终会被放入信封中,投入邮筒。这时,这封信就像一个“包裹”,包含了传递信息的各种细节,这正是 OSI 七层协议在各自层级上的作用。而邮筒可以被视为信件传递的第一个环节,就像数据包从最初的物理层(以太网卡)开始一样。这时,邮局就像一个“网关”,信件会通过不同的网关,最终到达目的地。在邮局,我们会选择信件的运输方式,例如普通邮件或挂号信,并贴上邮票。而邮票就相当于 TCP 和 UDP。


接下来,我们来解释一下TCP的工作原理。简单来说,TCP是一种机制,它确保发送方收到数据包后,能够确认接收方已经成功接收。(三方握手)这意味着通过这种方式进行通信。因此 面向连接 (Connection-oriented) 这种协议被称为“协议”,它负责管理数据流,验证数据的准确性,并进行通信。 优点包括:高可靠性、数据控制流程、数据校验和超时重传等。缺点是:速度可能较慢。 然而,UDP协议在发送数据后,不会进行确认,也就是说,它不会收到确认信息来验证数据是否成功到达。(虽然可以尝试提出问题,但无法保证一定能得到准确的回答。). 仅仅是发送,而没有后续行动,这是一种遗憾。 非连接式 这是一个协议。由于它不涉及发送系统和接收系统之间的互联互通,因此即使在传输过程中出现数据丢失,也不会要求重新传输。因为一开始就设计为非连接型,所以无法得知丢失的数据信息。相反, 其优点是速度非常快,并且可以减少网络负载。然而,缺点是数据可能会丢失,并且可能存在不可靠性。 由于TCP和UDP的速度各不相同,因此它们在不同的应用场景中各有优势。不能说哪种传输方式是绝对最好的。


※ 请选择您希望使用的传输方式 标题需要定义其工作方式。


TCP 协议中的一个重要概念: “三方握手”当客户端和服务器进行通信时,客户端需要向服务器询问是否可以连接。 同步向服务器发送。接收到的服务器会同时发送 SYN。 确认 (ACK)然后向服务器发送响应。 收到响应的客户端会向服务器发送确认(ACK),以表明连接成功。 整个过程包括三个步骤。 比如,打电话给朋友,确认他是否在家,这可以看作是第一步; 收到朋友的回复,这可以看作是第二步; 最后,当朋友接听电话并与我通话时,告知朋友我是谁,这可以看作是第三步。 之后,只要电话保持连接状态。 如果用图示来表示,


请参考 Linux 和网络课程的讲义。

就会发生这种情况。尝试断开连接时 完成客户端向服务器发送请求。服务器回复ACK,然后发送FIN。接收到的客户端再次向服务器发送ACK,这样连接就结束了。同样,我们可以用图来展示这个过程。


请参考 Linux 和网络课程的讲义。

这样就会发生。在这里,SYN 包含有关连接请求的信息,会被放入 TCP 协议的部分。如果值为 1,则表示连接请求和建立阶段,数值会相应增加。ACK 包含有关通信对方数据包顺序的信息。如果 FIN 的值为 1,则表示 TCP 连接即将结束,客户端和服务器会在数据包中包含这个数值。


人们可能会疑惑,为什么需要一个断开连接的流程。 像Naver这样的提供大规模服务的公司,拥有大量的服务器,可以为用户提供流畅的服务。然而,服务器的资源是有限的。如果一直保持所有连接的畅通,自然会... 服务器的资源是有限的。这些 因此,为了在需要时连接和断开,并有效地管理内存,我们需要在断开时进行操作。



用于在操作系统中查看进程或服务器状态的命令 “netstat”在那里。从上方 '-anp'这是一个可选方案 “a”指的是整个范围。 'n'“IP”代表互联网协议地址。 'p'这指的是一个过程。 在解释 TCP 的三次握手时,我们提到客户端和服务器之间的连接过程。 请听了解这一点很有帮助。 “LISTEN” 表示,当服务器处于运行状态,并接收来自“0.0.0.0:80”的请求时,服务器允许连接。 “0.0.0.0”“IP”代表所有互联网协议地址,其上方紧随其后的是“127.0.0.1'它通常被称为“本地主机”,使用自己的IP地址。在最左边,您可以看到熟悉的术语,如TCP和UDP。这里描述了服务器如何连接,虽然TCP和UDP比较熟悉,但可能不太熟悉带有数字6的格式。TCP和TCP6的区别在于,TCP是基于IPv4,而TCP6是基于IPv6。因此,TCP就是我们熟悉的“0.0.0.0' 虽然它显示为IP地址,但TCP6实际上是 “……”目前的状态是这样的。


“0.0.0.0”表示所有 IP 地址,类似于“:::”在 IPv6 中也表示所有 IP 地址。 并且,它位于“LISTEN”状态下。 成立“这表示连接成功,并且已经建立连接。此外,在 '0.0.0.0:80' 中,':' 后面跟着的数字 80 表示…” 端口号这表示端口号。端口号不能与当前正在运行的多个服务器中的任何一个重复。也就是说,一个服务只能有一个端口号。通常,网站的所有服务都使用默认的 80 端口,并且每个协议和服务器都有各自的默认端口,了解这些信息很有帮助。协议端口号的范围通常在 0 到 40 之间。客户端也会有端口号,浏览器在连接时会自动分配(避免冲突)。如果 IP 地址在最下面不显示,则表示该进程在操作系统内部运行。而在最左侧可以看到 "unix",这表明该进程是操作系统内部运行的。Linux 系统中,有很多以 "unix" 命名的进程,即使在 Windows 系统启动后,也会有许多内部运行的进程。如果了解这些启动程序,就能更好地理解。例如,一些程序用于共享文件夹功能、显示 Windows 界面,或通过鼠标和键盘进行操作,这些都是 Linux 系统中以 "unix" 命名的内部进程。


* 如果服务正常运行,并且使用了正确的端口号进行访问,但仍然无法访问服务器,请检查防火墙设置!



※ 这些命令与 Linux 系统的特性相关 “|” 通过这种管道符号,可以连续执行命令。因此,在 `netstat -anp` 命令后,添加管道符号 `|`,然后输入搜索命令 `grep` 和搜索关键词,就可以只输出正在运行的服务器或正在运行的进程中符合条件的项。


由于出现了关于流程的描述,以下是一些相关的命令,供您参考: `ps -ef`这里有选项“e”,它可以显示所有进程的信息;选项“f”则可以显示更详细的信息。


如果在这里可以看到 PID,就可以使用相应的命令来终止该进程。 “使用 kill -9 命令终止指定进程ID”输入“9”后,可以终止该进程。而“9”选项则可以强制终止。


“w” 您还可以通过命令来查看连接信息。



Ⅲ. 网络服务

  1. NAT(网络地址转换)

在之前,我们讨论过网络中内部IP和外部IP的概念。 内部 IP 地址这是一个通过路由器连接的相同设备之间共享的 IP 地址。 外部 IP 地址这是用于访问像Naver和Google等外部服务的必要IP地址。将此内部IP地址转换为外部IP地址 地图绘制有一种方式,就是直接安排 NATNAT(网络地址转换)是一种将一个内部 IP 地址与一个外部 IP 地址一一对应的方法。 静态 NAT并且能够动态地将多个内部 IP 地址和多个外部 IP 地址进行映射。 动态 NAT静态 NAT(Static NAT)的优势在于,一旦配置了要使用的外部 IP 地址,就可以明确知道“这个内部 IP 地址对应这个外部 IP 地址”,从而实现外部与内部的网络通信。因此,提供服务的方通常会采用这种方式,因为他们需要确保外部可以通过外部 IP 地址访问服务器,从而提供服务。 相反,动态 NAT(Dynamic NAT)则会创建一个外部 IP 地址池,然后动态地将未使用的 IP 地址映射到内部 IP 地址。当外部 IP 地址的数量少于内部 IP 地址的数量时,无法实现一对一的映射,因此会采用这种方式。然而,由于外部 IP 地址的数量少于内部 IP 地址的数量,如果外部 IP 地址已经被占用,就无法将外部传入的另一个内部 IP 地址进行映射。



2. 动态主机配置协议 (DHCP)

DHCP 服务器这已经有过解释,它负责让特定(或多个)设备在同一个网络段中,通过请求和分配 IP 地址来实现。例如,当您使用笔记本电脑连接到咖啡店的 Wi-Fi 时,连接过程中需要确认是否有 DHCP 服务器。 广播请问,当收到 DHCP 服务器的信息时,服务器会告知自己的 IP 地址,以及可以分配的 IP 地址。由于这是一个广播过程,因此同一网络区域的所有设备都可以收到此信息。当得知可以分配的 IP 地址时,设备会向 DHCP 服务器请求分配,DHCP 服务器会按照请求进行分配,并提供相关信息。 网络信息我们将向您提供相关信息。如果我们将这个过程用图表来表示,大致如下:




评论

我花了大约半天的时间,回顾了网络、网络类型、OSI七层、数据链路、传输层等内容。 尽管还有很多未涉及的方面,但我再次意识到网络是一个非常广阔的领域。 尽管有些遗憾,但我认为在有限的时间内,不可能完全掌握所有内容。 因此,我将先满足基本了解,然后通过进一步的学习来弥补。