【Linux】网络编程网络基础(C++)

news2024/10/7 18:21:44

目录

一、计算机网络背景

二、认识 "协议"

三、网络协议初识

【3.1】协议分层

【3.2】OSI七层模型

【3.3】TCP/IP五层(或四层)模型

四、网络传输基本流程

【4.1】网络传输流程图

【4.2】数据包封装和分用

五、网络中的地址管理


一、计算机网络背景

【独立模式】计算机之间相互独立。

【网络互联】 多台计算机连接在一起, 完成数据共享。

【局域网LAN】 计算机数量更多了, 通过交换机和路由器连接在一起。

【广域网WAN】 将远隔千里的计算机都连在一起。

        所谓 "局域网""广域网" 只是一个相对的概念. 比如, 我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域网。

二、认识 "协议"

        "协议" 是一种 约定

        计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。

【思考】 只要通信的两台主机, 约定好协议就可以了么?

  • 计算机生产厂商有很多。

  • 计算机操作系统, 也有很多。

  • 计算机网络硬件设备, 还是有很多。

  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准,大家都来遵守, 这就是 网络协议

三、网络协议初识

【3.1】协议分层

        我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次分层最大的好处在于 "封装" . 面向对象例子

【3.2】OSI七层模型

        OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。

        把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;

        OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。

        它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

        但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解。

【3.3】TCP/IP五层(或四层)模型

        TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

        TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。

  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层。

  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。

  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机。

  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层。

        物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型。

一般而言:

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容。

  • 对于一台路由器, 它实现了从网络层到物理层。

  • 对于一台交换机, 它实现了从数据链路层到物理层。

  • 对于集线器, 它只实现了物理层。

四、网络传输基本流程

【4.1】网络传输流程图

同一个网段内的两台主机进行文件传输:

两台计算机通过TCP/IP协议通讯的示意图:

        跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

        协议报头:协议的每一层都有,里面每一个协议最终表现就是协议都要是有报头的,协议通常是通过报头进行表达的,每一份数据最终在被发送或者在不同的协议中,都要有自己的报头!

        局域网:两台局域网的主机能够直接通讯,每一台电脑都有自己的 名字,每一台主机都有自己的网卡每一张网卡都有自己的地址(MAC地址)。

        报文:报头 + 有效载荷。

        在网络协议中,我们可以认为同层协议在直接通讯,也可以理解成为向下交付,这是两种不同的认知。跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

【4.2】数据包封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)

  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。

  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。

五、网络中的地址管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/991528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python实现一个可定制风格的绘图系统

文章目录 调用绘图风格控件代码组织源代码base.pyaframe.pyalist.pyds.py Python绘图系统: 📈从0开始的3D绘图系统📉一套3D坐标,多个函数📊散点图、极坐标和子图自定义控件:📉绘图风格&#x1…

【精华】AIGC专栏-Text/Img/Video/audio

(一)LLM专栏 大模型相关技术原理以及实战经验:liguodongiot/llm-action 1 ColossalAI (1)参考资料:700 亿参数 LLaMA2 训练加速 195%,基础大模型最佳实践再升级 (2)开…

Linux常用命令——convertquota命令

在线Linux命令查询工具 convertquota 把老的配额文件转换为新的格式 补充说明 convertquota命令用于将老的磁盘额数据文件(“quota.user”和“quota.group”)转换为新格式的文件(“quota.user”和“quota.group”)。 语法 c…

Day59|leetcode 503.下一个更大元素II、42. 接雨水

leetcode 503.下一个更大元素II 题目链接:503. 下一个更大元素 II - 力扣(LeetCode) 视频链接:单调栈,成环了可怎么办?LeetCode:503.下一个更大元素II_哔哩哔哩_bilibili 题目概述 给定一个循环…

接口使用的最佳时机

1. 引言 接口在系统设计中,以及代码重构优化中,是一个不可或缺的工具,能够帮助我们写出可扩展,可维护性更强的程序。 在本文,我们将介绍什么是接口,在此基础上,通过一个例子来介绍接口的优点。…

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型 1 题目 构建以新能源为主体的新型电力系统,是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(…

微电网的概念

微电网分布式控制理论与方法  顾伟等 微电网的概念和作用 微电网是由多种分布式电源、储能、负载以及相关监控保护装置构成的能够实现自我控制和管理的自治型电力系统,既可以与电网并网进行,也可以以孤岛运行。 分布式发电是指将容量在兆瓦以内的可再…

Elsevier出版社 | 优质好刊合集

【SciencePub学术】 爱思唯尔(Elsevier)是一家全球专业从事科学与医学的信息分析公司作为出版公司,成立于1880年,其产品包括《柳叶刀》、《四面体》和《细胞》等学术期刊,ScienceDirect电子期刊集, “趋势”(Trends)系列和“新见…

uniapp项目运行Missing script: “dev“, To see a list of scripts, run:

webstorm 打开项目根目录不对,打开到了项目上一级。 另外一个原因是,当前项目是Hbuilder 可视化界面创建的,不能在terminal直接脚本指令启动。 可以webstorm 安装支持uniapp项目插件,然后创建一个运行器,运行h5。 安…

vue 验证码 图片点击

实现登陆验证 图片依次点击功能 demo &#xff0c;上图可以根据demo修改&#xff0c;直接拿用 <template><div><div class"big-box" id"BigBox" :style"background-image:url( imgCodeUrl )"><div class"click-box…

C#,《小白学程序》第十八课:随机数(Random)第五,方差及标准方差(标准差)的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十八课&#xff1a;随机数&#xff08;Random&#xff09;第五&#xff0c;方差及标准方差&#xff08;标准差&#xff09;的计算方法与代码 /// 方差 SUM(&#xff08;Xi - X)^2 ) / n i0...n-1 X Average of X[i] ///…

APP备案流程详细解读

背景介绍 2023年8月4日&#xff0c;工信部发布《工业和信息化部关于开展移动互联网应用程序备案工作的通知》。 在中华人民共和国境内从事互联网信息服务的APP主办者&#xff0c;应当依照《中华人民共和国反电信网络诈骗法》《互联网信息服务管理办法》&#xff08;国务院令第…

SpotBugs代码检查:在整数上进行没有起任何实际作用的位操作(INT_VACUOUS_BIT_OPERATION)

https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#int-vacuous-bit-mask-operation-on-integer-value-int-vacuous-bit-operation 在整数上进行无用的与、异或操作&#xff0c;实质上没有做任何有用的工作。 例如&#xff1a;v & 0xffffffff 再例如&…

如何处理异步编程中的回调地狱问题?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 解决回调地狱问题的方法⭐使用 Promise⭐使用 async/await⭐ 使用回调函数库⭐模块化⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端…

微软研究院团队获得首届AI药物研发算法大赛总冠军

编者按&#xff1a;AI 药物研发是人工智能未来应用的重要方向之一。自新冠病毒&#xff08;SARS-CoV-2&#xff09;首次爆发以来&#xff0c;新冠病毒的小分子药物研发备受关注&#xff0c;于近期举行的首届 AI 药物研发算法大赛便聚焦于此。在比赛中&#xff0c;来自微软研究院…

go语言基础操作---七

socket简单介绍—套接字编程 什么是Socket Socket&#xff0c;英文含义是【插座、插孔】&#xff0c;一般称之为套接字&#xff0c;用于描述IP地址和端口。可以实现不同程序间的数据通信。 Socket起源于Unix&#xff0c;而Unix基本哲学之一就是“一切皆文件”&#xff0c;都可…

【漏洞复现】天OA存在任意文件上传漏洞

漏洞描述 华天动力协同办公系统将先进的管理思想、管理模式和软件技术、网络技术相结合,为用户提供了低成本、高效能的协同办公和管理平台。睿智的管理者通过使用华天动力协同办公平台,在加强规范工作流程、强化团队执行、推动精细管理、促进营业增长等工作中取得了良好的成…

linux系统中驱动框架基本分析

大家好&#xff0c;今天分享一篇Linux驱动软件设计思想的文章。由于文章较长&#xff0c;可以先收藏后再慢慢看。 一、Linux驱动的软件架构 1.1 出发点 为适应多种体系架构的硬件&#xff0c;增强系统的可重用和跨平台能力。 1.2 分离思想 为达到一个驱动最好一行都不改就…

Spring全家桶相关注解总结

spring相关 Controller 【控制器】效验有效参数的合法性&#xff08;相当于安检系统&#xff09; Service 【服务】业务组装&#xff08;客服中心&#xff09; Repository 【数据持久层】实际业务处理&#xff08;实际办理的业务&#xff09; Component 【组件】工具类…

代码随想录 -- day42 -- 01背包问题、416. 分割等和子集

01背包问题 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大 416. 分割等和子集 思路&#xff1a; 前提条件&#xff1a; 我们要求的是让两…