当前位置: 首页 > article >正文

深入理解计算机网络:OSI 与 TCP/IP 各层结构与功能

目录

1. 引言

2. OSI 模型

2.1 OSI 各层的详细功能

2.1.1 物理层

2.1.2 数据链路层

2.1.3 网络层

2.1.4 传输层

2.1.5 会话层

2.1.6 表示层

2.1.7 应用层

3. TCP/IP 模型

3.1 TCP/IP 各层的详细功能

3.1.1 网络接口层

3.1.2 网络层

3.1.3 传输层

3.1.4 应用层

4. OSI 模型与 TCP/IP 模型的对比

5. 示例:数据在 TCP/IP 模型中的传输过程

6. 现实中的应用

7. 总结


1. 引言

在计算机网络中,OSI(Open Systems Interconnection,开放式系统互连)模型和 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)模型是最常用的两种参考模型。它们定义了网络通信的各个层次及其功能,帮助不同设备和系统之间实现无缝通信。本文将对两者的结构和功能进行深入分析,帮助理解其原理与应用。


2. OSI 模型

OSI 模型是国际标准化组织(ISO)提出的参考模型,分为 7 层,每一层都负责不同的功能:

层次名称功能描述
第7层应用层为用户提供直接的网络服务,如文件传输、电子邮件、远程登录等。
第6层表示层负责数据格式的转换、加密与解密、数据压缩等。
第5层会话层负责建立、管理和终止会话,实现通信的同步。
第4层传输层负责端到端的数据传输,确保数据完整性与可靠性。
第3层网络层负责路径选择、路由和逻辑寻址(如 IP 地址)。
第2层数据链路层负责物理地址寻址、数据帧的组装、错误检测与纠正。
第1层物理层负责比特流的传输,定义了硬件特性,如电压、电缆规格等。

2.1 OSI 各层的详细功能

2.1.1 物理层
  • 负责传输比特流(0 和 1)并提供硬件设备接口。
  • 设备示例:网线、光纤、集线器、调制解调器(Modem)等。
2.1.2 数据链路层
  • 将物理层的比特流组织成数据帧,负责差错控制和流量控制。
  • 提供介质访问控制(如 CSMA/CD、CSMA/CA)。
  • 设备示例:交换机、网卡等。
2.1.3 网络层
  • 负责逻辑寻址(如 IP 地址)和路由选择。
  • 通过路由协议(如 OSPF、RIP)决定数据的最佳传输路径。
  • 设备示例:路由器。
2.1.4 传输层
  • 负责端到端的可靠传输,控制数据的传输速度,确保数据完整性。
  • 主要协议:TCP(面向连接)、UDP(无连接)。
2.1.5 会话层
  • 管理会话的建立、维护和终止,支持数据的同步与恢复。
2.1.6 表示层
  • 负责数据格式转换、加密/解密、数据压缩等。
  • 示例:JPEG、ASCII、SSL/TLS 等。
2.1.7 应用层
  • 提供直接为用户服务的应用程序。
  • 典型协议:HTTP、FTP、SMTP、DNS 等。

3. TCP/IP 模型

TCP/IP 模型是因特网使用的标准协议模型,共分为 4 层

层次名称功能描述
第4层应用层直接与用户交互,提供高层服务。
第3层传输层提供可靠或不可靠的数据传输。
第2层网络层负责寻址和路由。
第1层网络接口层负责数据的物理传输。

3.1 TCP/IP 各层的详细功能

3.1.1 网络接口层
  • 等同于 OSI 的物理层和数据链路层,负责物理传输。
  • 示例协议:以太网、WIFI、PPP(点对点协议)。
3.1.2 网络层
  • 等同于 OSI 的网络层,负责 IP 地址寻址和路由。
  • 典型协议:IP(IPv4/IPv6)、ICMP、ARP。
3.1.3 传输层
  • 等同于 OSI 的传输层,负责端到端的数据传输。
  • 典型协议:TCP、UDP。
3.1.4 应用层
  • 合并了 OSI 的会话层、表示层和应用层,提供高层服务。
  • 典型协议:HTTP、FTP、SMTP、DNS 等。

4. OSI 模型与 TCP/IP 模型的对比

比较点OSI 模型TCP/IP 模型
层数7 层4 层
应用层功能区分了会话层、表示层、应用层将三者合并成一层
传输层协议仅概念定义,未指定协议明确规定了 TCP 和 UDP
网络层协议仅概念定义,未指定协议明确规定了 IP、ICMP、ARP
模型发展理论模型,实践较少实际应用模型,已广泛使用
使用场景学术研究与教学互联网的核心通信模型

5. 示例:数据在 TCP/IP 模型中的传输过程

假设一台主机向另一台主机发送一条 HTTP 请求,数据的传输过程如下:

  1. 应用层(HTTP 协议):将用户请求的数据封装成 HTTP 报文。
  2. 传输层(TCP 协议):将 HTTP 报文封装成 TCP 段,并为每个数据段添加序列号和校验和,确保数据可靠传输。
  3. 网络层(IP 协议):将 TCP 段封装成 IP 数据包,添加源 IP 地址和目标 IP 地址,实现路由寻址。
  4. 网络接口层(以太网协议):将 IP 数据包封装成帧,附加 MAC 地址并转换成比特流,通过物理介质传输。
  5. 接收端各层按相反的顺序解析数据,最终还原出 HTTP 请求。

6. 现实中的应用

  • Web 浏览器 使用 HTTP/HTTPS(应用层)进行网页访问。
  • 电子邮件系统 使用 SMTP、POP3、IMAP(应用层)传输邮件。
  • 文件传输 使用 FTP、SFTP(应用层)来传输大文件。
  • 视频通话 常用 RTP、RTCP(传输层)以实现实时音视频传输。

7. 总结

OSI 模型和 TCP/IP 模型是理解计算机网络的关键。OSI 模型结构更清晰,适合教学和理论研究,而 TCP/IP 模型更贴近实际应用,是现代互联网的核心。理解两者的区别和联系,有助于更深入地掌握网络协议,提高网络编程和故障排查的能力。

相关文章:

深入理解计算机网络:OSI 与 TCP/IP 各层结构与功能

目录 1. 引言 2. OSI 模型 2.1 OSI 各层的详细功能 2.1.1 物理层 2.1.2 数据链路层 2.1.3 网络层 2.1.4 传输层 2.1.5 会话层 2.1.6 表示层 2.1.7 应用层 3. TCP/IP 模型 3.1 TCP/IP 各层的详细功能 3.1.1 网络接口层 3.1.2 网络层 3.1.3 传输层 3.1.4 应用层 …...

Wi-Fi NAN 架构(Wi-Fi Aware Specification v4.0,第2章:2.3~2.6)

1. NAN 数据通信架构 1.1 单播支持 要在两个NAN设备之间启动单播数据通信,服务需发起一个NAN数据路径(NDP,NAN Data Path)请求。这对NAN设备之间会建立一个NAN设备链路(NDL,NAN Device Link)&…...

Arduino示例代码讲解:Multiple tone player 多音播放器

Arduino示例代码讲解:Multiple tone player 多音播放器 Multiple tone player 多音播放器代码功能代码逐行解释1. 注释部分2. `setup()` 函数3. `loop()` 函数硬件连接**扬声器连接**:**Arduino板**:运行结果修改建议关于`tone()`和`noTone()`函数视频讲解Multiple tone pla…...

Windows电脑 打开 Docker Desktop 提示的“Virtual Machine Platform not enabled”的问题解决

文章目录 问题来源解决方案 问题来源 因为要在本地推送 docker 镜像 到镜像库,所以安装了 Docker Desktop ,刚开始是好的,后来因为要调试 uniapp 安卓App,又装了雷电模拟器。然后就冲突了,打不开 Docker Desktop了&am…...

【愚公系列】《高效使用DeepSeek》020-专业术语解释

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

1.环境搭建VUE+Spring boot

一.vue 环境搭建 Spring Boot 和 Vue,可以实现前后端分离的架构,提高开发效率和应用性能。Spring Boot 负责后端逻辑和数据处理,Vue 负责前端展示和用户交互。 1.1安装node.js 这个是是安装在个人电脑上 直接在官网下载然后安装即可&…...

第二十七篇 数据仓库与维度建模指南:从理论到实战的进阶之路

声明:文章内容仅供参考,需仔细甄别。文中技术名称属相关方商标,仅作技术描述;代码示例为交流学习用途,部分参考开源文档(Apache 2.0/GPLv3);案例数据已脱敏,技术推荐保持…...

【Unity3D】Addressables使用流程

Package Manager - 搜索 Addressables 安装 Window -> Asset Management -> Addressables 打开窗口 New -> 新建Packed Assets 资源组 默认资源组Default xxx (Default) 将资源,如预制体直接拖拽进资源组 Build -> New Build -> Default Buil…...

在Oracle Linux 7上安装Oracle 11gr2数据库

好久没有安装Oracle 11g了,虽然是老版本,但是还是有很多公司在用,自从有了oracle linux感觉安装变简单了。 1.安装先决条件包,此包会配置系统参数,建立oracle用户等: yum install oracle-rdbms-server-11gR2-preinstall 安装完这个oracle自…...

python爬虫概述

0x00 python爬虫概述 以豆瓣的选电影模块为例,当查看源代码搜索猫猫的奇幻漂流瓶是搜不到的 这时服务器的工作方式应该是这样的 客户端浏览器第一次访问其实服务器端是返回的一个框架(html代码) 当客户端浏览器第二次通过脚本等方式进行访问时服务器端才返回的数据…...

Umi从零搭建Ant Design Pro项目(2)

文章目录 前言一、新增登录页面1.登录页面代码2.登录处理3.修改app.tsx 二、说一下逻辑1. 流程图2. 注意点 总结 前言 前面写了创建项目及修改一些配置。这一章写写登录页面。 一、新增登录页面 新增登录页面,会涉及Umi的目录结构。先看一下文档再动手。 1.登录页…...

nginx 配置ip黑白名单

配置ip白名单 nginx.conf内容,以server模块的配置为例。其中,allow和deny可以在http,server,location中配置。 server {listen 80;server_name localhost;# 白名单配置allow 192.168.3.7; # 允许单个IPallow 192.168.3.9…...

【C++】STL库面试常问点

STL库 什么是STL库 C标准模板库(Standard Template Libiary)基于泛型编程(模板),实现常见的数据结构和算法,提升代码的复用性和效率。 STL库有哪些组件 STL库由以下组件构成: ● 容器&#xf…...

Qt 控件概述 QWdiget 1.1

目录 qrc机制 qrc使用 1.在项目中创建一个 qrc 文件 2.将图片导入到qrc文件中 windowOpacity: cursor 光标 cursor类型 自定义Cursor font tooltip focusPolicy styleSheet qrc机制 之前提到使用相对路径的方法来存放资源,还有一种更好的方式…...

python 数据可视化matplotib库安装与使用

要使用 matplotlib 库进行数据可视化,首先你需要确保已经安装了该库。如果你还没有安装,可以通过 Python 的包管理器 pip 来安装它。在你的命令行工具中运行以下命令来安装 matplotlib: pip install matplotlib安装完成后,你就可以…...

C# Exe + Web 自动化 (BitComet 绿灯 自动化配置、设置)

BitComet GreenLight,内网黄灯转绿灯 (HighID), 增加p2p连接率提速下载-CSDN博客 前两天写个这个,每次开机关机后要重来一遍很麻烦的索性写个自动化。 先还是按照上面的教程自己制作一遍,留下Luck 以及 路由器相关的 端口记录信息。 (因为自…...

1-1 MATLAB深度极限学习机

本博客来源于CSDN机器鱼,未同意任何人转载。 更多内容,欢迎点击本专栏目录,查看更多内容。 参考[1]魏洁.深度极限学习机的研究与应用[D].太原理工大学[2023-10-14].DOI:CNKI:CDMD:2.1016.714596. 目录 0.引言 1.ELM-AE实现 2.DE…...

MyBatis源码分析のSql执行流程

文章目录 前言一、准备工作1.1、newExecutor 二、执行Sql2.1、getMappedStatement2.2、query 三、Cache装饰器的执行时机四、补充总结 前言 本篇主要介绍MyBatis解析配置文件完成后,执行sql的相关逻辑: public class Main {public static void main(Str…...

Java 大视界 -- Java 大数据中的知识图谱可视化与交互分析技术(141)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

万字长文详解|蚂蚁数据湖深度探索与业务应用实践

作者介绍:黄超傑,蚂蚁数据智能部实时数据团队数据研发工程师,致力于数据湖技术在蚂蚁落地应用、蚂蚁广告实时数仓建设、蚂蚁数据成本治理等工作。 在开始之前 如果: 你想要提升数据时效,能够接受分钟级延迟你好奇准实…...

网络空间安全(36)数据库权限提升获取webshell思路总结

一、获取数据库访问权限 寻找漏洞: SQL注入:这是最常见的方法之一。攻击者通过SQL注入漏洞,可以在数据库执行任意SQL语句,从而获取数据库中的数据,甚至可能获取数据库的访问权限。配置文件泄露:有时&#x…...

前端面经分享(25/03/19)

北京一家做协同办公软件出海的公司,技术一面,20k-40k,要求3-5年 详细聊了一下上家公司的项目上家公司的项目是不做了吗,离职原因是什么,你觉得公司的这个产品怎么样在做AI类的业务时,作为前端感觉跟常规业务…...

火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试

前言 在大模型的使用过程当中,Prompt的使用非常的关键。原来,我对Prompt的理解不深,觉得Prompt的产生并不是很有必要。但是,自从使用了火山方舟中的“Prompt优解”之后,感受加深了,觉得Prompt是我们和大模型…...

AI助力临床诊疗:AI工具帮助确认病情

在临床诊疗中,准确确认病情是治疗成功的关键。然而,传统的诊疗方法往往依赖医生的经验和有限的检查手段,容易出现误诊或漏诊的情况。随着人工智能(AI)技术的飞速发展,AI工具在临床诊疗中的应用逐渐崭露头角…...

【平台优化】大数据集群一个客户端参数引起的任务性能差的问题

大数据集群一个客户端参数引起的任务性能差的问题 背景介绍排查过程任务慢的具体原因Executor中数据内存往磁盘溢写结果数据写入分区路径 分析解决方案 结语&思考 背景介绍 随着业务量不断扩大,平台逐步发展成HDFS多联邦的架构,这个过程中&#xff…...

【OCR】总结github上开源 OCR 工具:让文字识别更简单

前言 在数字化的时代,光学字符识别(OCR)技术成为了我们处理文档、图像文字信息的得力助手。它能够将图像中的文字信息转换为可编辑和可处理的文本数据,极大地提高了信息处理的效率。今天,我要给大家介绍一些优秀的开源…...

为wordpress核心functions文件瘦身

在wordpress主题开发过程中,常会用到functions.php这个文件,通过这个文件,可以让wordpress主题变得很强大。但是随着,功能的越来越多functions文件也会变得越来越臃肿庞大。要修改起functions文件来,也就越麻烦。特别是…...

Jmeter使用之http请求默认值

一、添加【HTTP请求默认值】 1、添加方式 【线程组】---->右击【添加】---->【配置元件】---->【HTTP请求默认值】 2、作用 在发送http请求的时候,自带默认值设置的参数(常用:【协议】、【服务器名称或IP】、端口号、内容编码&…...

【QT】】qcustomplot的初步使用二

功能预期: 在简单显示曲线()基础上加功能: 1.在曲线区域里,X轴可以随鼠标滚轮变化将图像缩放、随鼠标左键进行曲线移动; 2.在曲线区域里,Y轴的量程可以随Y轴数据大小自适应; 3.可以…...

让 Google Play 成为助力 PC 游戏增长的最佳平台

作者 / Google Play 游戏副总裁兼总经理 Aurash Mahbod 我们正在加强多平台游戏产品,并将在今年的游戏开发者大会 (GDC) 上发布激动人心的消息。我们将为用户带来更多游戏,提供更多跨设备畅玩游戏的方式,并进一步优化游戏体验。在游戏开发者大…...