THM学习笔记——OSI模型和TCP/IP模型

2024-01-26 08:44
文章标签 ip 学习 笔记 模型 tcp osi thm

本文主要是介绍THM学习笔记——OSI模型和TCP/IP模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全是文字

比较枯燥

建议视频

OSI模型由七个层次组成:

第7层 -- 应用层:

OSI模型的应用层主要为在计算机上运行的程序提供网络选项。它几乎专门与应用程序一起工作,为它们提供一个界面以用于传输数据。当数据传递到应用层时,它会被传递到表示层。

第6层 -- 表示层:

表示层从应用层接收数据。这些数据通常以应用程序理解的格式呈现,但不一定是接收计算机中应用层能够理解的标准化格式。表示层将数据转换为标准化格式,并处理数据的任何加密、压缩或其他转换。完成这些步骤后,数据传递到会话层。

第5层 -- 会话层:

当会话层从表示层接收到正确格式的数据时,它会尝试与网络中的另一台计算机建立连接。如果无法建立连接,则发送错误消息,过程就此中止。如果可以建立会话,则会话层的任务是维护连接,并与远程计算机的会话层合作,以同步通信。会话层特别重要,因为它创建的会话是与相关通信唯一对应的。这就允许你同时向不同端点发出多个请求,而无需混淆所有数据,当会话层成功记录主机和远程计算机之间的连接后,数据传递到第4层:传输层。

第4层 -- 传输层:

它的第一个目的是选择要传输数据的协议。传输层中最常见的两种协议是TCP和UDP;使用TCP时,传输是基于连接的,这意味着建立并保持了计算机之间的连接,以便在请求的整个过程中进行通信。这允许可靠的传输,因为连接可用于确保所有数据都到达正确的位置。TCP连接使两台计算机能够保持持续通信,以确保数据以可接受的速度发送,并重新发送任何丢失的数据。与之相反,使用UDP时情况正好相反;数据包基本上被抛给接收计算机 -- 如果它跟不上,那就是它的问题。这意味着TCP通常会用于对准确性更看重的情况(例如文件传输或加载网页),而UDP则用于更看重速度的情况(例如视频流)。

选择了协议后,传输层将传输分解成一小块一小块的部分(在TCP中称为段,在UDP中称为数据报),这使得成功传输消息变得更容易。

第3层 -- 网络层:

网络层负责找到请求的目标。例如,互联网是一个庞大的网络;当你要从网页请求信息时,网络层会获取页面的IP地址并找到最佳路由。在这个阶段,我们使用的是所谓的逻辑寻址(即IP地址),这仍然受软件控制。逻辑地址用于为网络提供顺序,对其进行分类并允许我们正确地对其进行排序。目前最常见的逻辑寻址形式是IPV4格式。

第2层 -- 数据链路层:

数据链路层关注传输的物理寻址。它从网络层接收一个包(其中包含远程计算机的IP地址)并添加接收端的物理(MAC)地址。每台启用网络的计算机内都有一张网卡(NIC),带有用于标识它的唯一MAC地址。

MAC地址由制造商设置,并被烧录到卡中;它们无法更改,尽管可以伪造。当信息通过网络发送时,实际上是物理地址用于标识从何处发送信息。

此外,数据链路层的任务还包括以适合传输的格式呈现数据。

当数据链路层接收数据时,它还扮演着重要的角色,因为它检查接收到的信息,以确保在传输过程中未损坏,而这在数据被传输的第1层:物理层时可能发生。

第1层 -- 物理层:

物理层涉及到计算机的硬件。这是数据在网络上传输时发送和接收的电脉冲所在的地方。物理层的任务是将传输的二进制数据转换为信号并将其传输到网络,以及接收传入信号并将其转换回二进制数据。

随着数据在模型的每一层传递下去,都会添加有关特定层的细节的信息到传输的起始位置。例如,网络层添加的标头将包括源和目标IP地址,传输层添加的标头将包括有关所选协议的信息。数据链路层在传输结束时还添加了一段用于验证传输时数据未被损坏;这也具有增加安全性的附加优势,因为数据无法在不破坏封套的情况下被拦截和篡改。整个过程被称为封装;这是从一台计算机发送数据到另一台计算机的过程。

请注意,在整个过程中,封装的数据在不同步骤中被赋予不同的名称。在第7、6和5层,数据简称为数据。在传输层,封装的数据称为段或数据报(取决于选择了TCP还是UDP作为传输协议)。在网络层,数据称为数据包。当数据包传递到数据链路层时,它变成了帧,到达网络时,帧已经被分解为位。

当消息被第二台计算机接收时,它会反转这个过程 -- 从物理层开始工作,直到达到应用层为止,并在过程中剥离附加的信息。这被称为*去封装*。因此,可以将OSI模型的各个层视为每台具有网络功能的计算机内的存在。虽然实际上并非如此清晰,但所有计算机都遵循相同的封装过程以发送数据,并在接收时进行去封装。

TCP/IP模型在许多方面与OSI模型非常相似。它比OSI模型早几年,并且是实际网络的基础。TCP/IP模型包括四个层次:应用、传输、互联网和网络接口。它们共同涵盖了OSI模型的七个层次的相同功能范围。

这两个模型大致如下匹配:

封装和去封装的过程在TCP/IP模型中与OSI模型完全相同。在TCP/IP模型的每一层,都会在封装期间添加标头,并在去封装期间删除标头。

分层模型作为一种视觉辅助工具非常好用 -- 它向我们展示了数据如何封装并通过网络发送的一般过程,但它实际上是如何发生的呢?

当我们谈论TCP/IP时,考虑到一个具有四个层次的表格是很好的 -- 它向我们展示了一个协议套件 -- 定义了如何执行某项操作的一组规则。TCP/IP的名称来自于其中两个最重要的协议:传输控制协议控制两个端点之间数据流的协议,以及互联网协议,它控制如何寻址和发送数据包。

如前所述,TCP是一种基于连接的协议。换句话说,在通过TCP发送任何数据之前,必须首先在两台计算机之间形成一个稳定的连接。形成这种连接的过程被称为三次握手。

当您尝试建立连接时,您的计算机首先向远程服务器发送一个特殊请求,指示它想要初始化一个连接。此请求包含一种称为SYN的位,它在启动连接过程中实质上是首次接触。服务器然后会用包含SYN位以及另一个称为ACK的“确认”位的数据包响应。最后,您的计算机将发送一个仅包含ACK位的数据包,确认连接已成功建立。通过成功完成三次握手,可以在两台计算机之间可靠地传输数据。任何在传输过程中丢失或损坏的数据都会被重新发送,从而导致看起来无损失的连接。

这篇关于THM学习笔记——OSI模型和TCP/IP模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646234

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首