【达哥讲网络】第1集:网络体系结构中的功能模块

2023-11-23 02:59

本文主要是介绍【达哥讲网络】第1集:网络体系结构中的功能模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    大家好,经过公司缜密的思考和策划,【达哥讲网络——只讲你不知道的】系列连载今天正式与大家见面了。经过深入考虑,本系列只对一些重要的网络技术原理、网络功能实现原理及配置进行连载,其中会穿插一些实战案例,以帮助大家消化。为了便于学习,提高学习效率,决定采用图文方式,每集阅读时间在10分钟左右。今天是第1集,专门就网络体系结构中的功能模块进行介绍,下一集专门介绍一下许多朋友还不是很清楚的各类型网络中的数据封装和解封装原理。

    学网络的,一开始都要学习OSI/RM和TCP/IP网络体系结构。大家也都知道OSI/RM参考模型划分了7层,TCP/IP模型划分了5层,且大致也知道各层的主要功能,但却很少人从宏观上深入分析网络体系结构中的整体功能模块划分。

1. 体系结构的功能模块

     其实TCP/IP体系结构与OSI/RM的设计原理基本上是一样的,可以把TCP/IP模型看成是OSI/RM中专门针对TCP/IP网络的一种优化特例。在TCP/IP体系结构中,各层中所用的协议均为TCP/IP网络中支持的协议,且把OSI/RM中最高三层合并成一层,因为OSI/RM中的“会话层”和“表示层”功能少且简单,合并在“应用层”更便于网络软/硬件开发,无需单独划分层次。

    TCP/IP体系结构中的5层各司其职,但我们不能孤立地看问题,不能单独看某一层的功能。其实总的来说,这五层分成了三大功能模块:最低“网络通信模块”,中间的“数据传输模块”,最高的“网络应用模块”。

 1. 网络通信模块

     “网络通信模块”包括了TCP/IP体系结构中最低的三层,即“物理层”、“数据链路层”和“网络层”,解决的是网络通信中最基础的通信平台建设的问题,使网络通信中传输的数据有“路”可走,还可选择走什么“路”。所谓的有“路”可走,是指通信两端有可供数据转发的路径(包括“线路”)。至于采用什么样的线路,那就是走什么“路”的问题了。

     现在的网络通信线路有许多种,在有线网络中,最常见的就是双绞线线路、光纤线路,在WLAN无线网络中的线路则是看不见的电波。不同的线路特性不同,性能也不同,架设的成本也不同,当然也各有自己的优势和适用的场景。在这里我们立马会联想到现实生活中的一个实例,那就异地货物运输。当你有货物要运输到外地客户时,你肯定首先要根据运输成本、货物特点、客户所在地等因素决定采用什么运输方式,是陆运、水运,还是空运,其实也是走什么“路”的问题。不同的运输方式有不同的特性,成本也大不一样,当然也有各自不同的优势和适用的货物、客户类型。只有网络建设好了,才有后续的网络通信事件的发生,就像只有运输方式确定了,才能有后续的货物运输事件发生一样。

     “网络通信模块”中的三层也有高低之分,既各司其职,又相互协作,下层通过SAP(服务访问点)为相邻的上层服务。“物理层”是最低层,可以看成是用来实现网络设备之间的物理和电气连接,这是网络通信平台建设的最基本前提。“数据链路层”是第二层,实现的是同一IP网段中设备之间的网络通信,其功能实现前提仅是网络中各设备已实现了物理和电气连通,所以它在“物理层”之上,共同构建同一IP网段的网络通信平台。

    “网络层”是第三层,实现的是不同IP网段(跨网段)中设备之间的网络通信,需要借助路由来选择在不同IP网段间进行数据转发的路径。但跨网段的网络通信通常也包括同一IP网段内设备之间的通信,因为数据从一个IP网段进入另一个IP网段后,又会按照同一IP网段的中“数据链路层”转发规则进行寻址和转发,所以“网络层”又位于“数据链路层”之上,再加上实现网络设备物理和电气连通的“物理层”共同构建不同IP网段的网络通信平台。

2. 数据传输模块

    “数据传输模块”仅包括“传输层”这一层,实现的就是在已搭建好的网络通信平台中进行数据传输,即把数据从源端传输到目的端,实现真正的“端到端”的数据传输。就像货物运输中,确定了运输方式后,就要根据所选定的运输方式,以及所装载的货物类型、特性等与收货方共同商定选择适当的货物装载容器、装载工具,然后与运输商签定运输协议,通常是选择把货物从发货方直发收货方。传输层中的功能类似,不同的上层应用协议选择不同的传输层协议(如TCP和UDP),如果选择的是TCP,则需要事先在源端和目的端之间建立一个专门的连接,然后才能正式进行数据传输。就像货物运输时,如果选择空运,则先要向民航管理机构申请使用专门的航道一样。

3. 网络应用模块

    “网络应用模块”对应的就是网络体系结构中的最高层——应用层。这是用户应用数据的真正始发层,也相应于货特运输中要真正运输的货物。网络通信的最终目的就是实现一个个具体的网络应用,如通过HTTP实现远程的Web服务器访问,通过DHCP实现对远程客户端的IP地址分配,通过Telnet实现对远程设备的登录和管理等。

    在应用层,不同的应用所选择的数据传输方式有可能不同,也就是对应不同的传输层协议。而不同的应用又有不同的特性,如有不同的应用参数,不同的数据保护方法(如加密方式),不同的数据格式等。就像不同货物在装载时要选择不同的加固/ 保护方式,不同的包装/保鲜方式等一样。

    在源端用户要发送的数据必须经过对应的应用层协议封装(会加装对应的应用层协议的头部)后才能发往下面的传输层,选择对应的传输层协议进行传输,否则数据到达对端后无法交由对应的应用程序模块进行恰当的处理(如是否需要解除密,是否需要对数据进行完整性验证,是否需要对发送方身份进行认证等)。就像货物在运输前,必须采用相应的包装、标识方式对货物进行标识,否则接收方收到货物后不能从包装、标识上获知货物的类型、数量等,也就很难对货物进行完整的验收,做出恰当的货物接收(由哪个部门接收)、处理(是直接交付使用,还是先放入仓库暂存等)方式。

这篇关于【达哥讲网络】第1集:网络体系结构中的功能模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依