Linux网络——从《计算机网络》到网络编程

news2024/9/21 10:43:15

文章目录

    • 从《计算机网络》到网络编程
      • 从计算机到计算机网络
      • 解决问题
      • 网络与计算机系统
      • 计算机网络的传输流程
      • IP地址与MAC地址

从《计算机网络》到网络编程

科班的同学大多学过计算机网络,而非科班的同学也多多少少听说过一些

计算机网络体系十分繁杂且精妙,这三四十年来计算机网络技术不断进步,但是核心是TCP/IP、UDP协议

从计算机到计算机网络

我们说一个计算机中的进程可以处理一定的任务

当他想与另一个进程进行通信时,就需要IPC的各种方式

但无论是管道、共享内存都是利用内存作为中转

如果想让另一台计算机的进程也能与这个计算机的进程进行通信呢

聪明的你肯定想到,把内存连起来呗,让他们都能访问到就行

诶,恭喜你,发明了计算机网络

所谓的计算机网络其实就是若干台计算机进程之间进行通信的一个过程

但是这里就有了很多问题

  1. 当时的计算机系统各异,Linux、MacOS、Windows,怎么样让他们也能进行通信,甚至同一个操作系统搭载在不同型号的计算机上都有可能不同
  2. 如果传输过程中出错了怎么办,要重传吗,还是将就着用
  3. 如果计算机之间怎么认得彼此,要知道计算机网络中可不止两台计算机,找到计算机了之后又要怎么找到你想找的进程呢
  4. 怎样让我在合肥的计算机访问到在北京的服务器
  5. 为什么无线网跟有线网都能进行通信呢

怪不得说计算机网络复杂呢,这些问题解决起来可是一点都不轻松

解决问题

大家其实都遇到了同样的问题,那么最好的解决方式就是开大会,定标准

这个标准我们就称之为协议,学过计算机网络的同学都懂,那些协议名字看起来就脑袋瓜疼

除此之外,我们在组织数据,处理任务的时候,从来都是将大问题化成小问题,解决了小问题再将各个模块拼起来,就成了如今庞大的知识体系

如果有过项目开发经验,会更有切身的体会

计算机网络也是如此,OSI标准将从下向上设计了七层网络模型,他设计的非常非常好,但是在实践中四层模型就能很好的解决问题,也称之为TCP/IP四层模型,在我们学习的过程中将物理层和数据链路层分开,变成五层模型

TCP和UDP是传输层协议,IP是网络层协议,TCP和IP都单独拿出来命名整个计算机网络协议,可想而知这两个协议簇对于计算机网络的重要性

我们这里简单介绍一下五层协议,并且说明一下这五层协议是如何解决那些个问题的

  • 物理层:规定了广电信号的传递方式,用什么线,以前用电缆,现在用双绞线,远距离会用光纤什么的,wifi的电磁波频率也算,主要是规定了传输距离、传输速率等等,集线器工作在物理层,稍后我们会讲这些网络设备有什么用
  • 数据链路层:这一层规定了设备之间数据的传送和识别,主要是让计算机分得清楚,什么样的01信号算这个数据包(数据帧)的开始,什么样的01信号算这个数据帧的结束,冲突检测(又冲突就自动重发),数据纠错,还有以太网、令牌环网、无线LAN的标准,交换机工作在数据链路层
  • 网络层:网络层主要负责地址管理和路由选择,数据走在大街上,他需要一个可以问路的人(路由器),才能知道自己下一步是直走还是左转,为了描述目的地,就需要一个地址,也就是ip地址,路由器工作在网络层
  • 传输层:主要负责主机之间的数据传输,如果传输出错了怎么办,是重传(TCP),还是放弃(UDP)
  • 应用层:负责应用程序之间的沟通,电子邮件传输协议SMTP,文件传输协议FTP,网络远程访问协议Telnet,还有耳熟能详的HTTP协议

下面是网络设备的介绍

  • 集线器:其实就是延长版的网线,解决了网线不够长的问题,三台计算机如何连接的问题,总不能用剥线钳吧
  • 交换机:交换机就稍微带点脑子了,他可以解决计算机互联时数据冲突的问题,一条线不能既往左发数据又往右发数据,就像一条路不能既有向左开的车又有向右开的车一样,数据也会发生碰撞,而交换机就能屏蔽两个接口的碰撞,把他们分为两个碰撞域,而上面的集线器就没有这个功能了,因为他的本质就是网线
  • 路由器:路由器就像是热心大叔一样,你想去哪里他都知道,你只管问,他不仅能让你不撞车,还能告诉你怎么走,让你不绕弯子,也就是路由器可以划分广播域,让你知道往这条路走一定是对的,而上面的交换机和集线器就没有这个功能,因为他们也不认识路

网络与计算机系统

除了上面说的搭积木原理,其实这些层次也对应着操作系统的层次

因为是计算机先生出来的,才有的计算机网络

如果计算机网络违背了计算机系统的设计原则,那还有什么用

仔细看其实就可以发现,网络和计算机的对应关系

物理层对应着计算机的硬件,各种接口、设备

数据链路层对应着驱动,网卡驱动、显卡驱动

传输层和网络层对应着操作系统,他们处理了来自各个设备的信息,让上层用户看起来并没有什么区别

应用层对应着各种库,shell,应用软件

计算机网络的传输流程

在这里插入图片描述

网络的每一层都有着自己的协议方案,因此也有着自己专门的标识(报头)

当应用层的两个进程想要通信时,实际上的数据是自己的电脑从应用层到传输层到网络层到链路层,层层套上自己的包头,让别人认识自己,让对方认识自己

通过以太网或者无线网传输

当对方收到之后,从下到上一层一层剥开,才能拿到最终的想要的报文数据

但是如果每一层对应着看,他们似乎都是和对面的同一层进行交流

在数据传输的过程中,可能经历了数个路由器,这是一个艰难的旅程

在这里插入图片描述

IP地址与MAC地址

IP地址有两个版本,IPv4和IPv6,是网络层协议的内容

6是4的升级版,但是还是以4为基础的,毕竟现在6还是推广阶段,4仍然在使用

一般我们常用的还是4,使用点分十进制来表示,例如,192.168.0.1、127.0.0.1等等,每一个数字是32位,取值从0到255

MAC地址也算物理地址

用来标识数据链路层的地址,一般来说,一个设备就有一个甚至多个MAC,长度是48位一共6字节,一般来说MAC地址是全球唯一的

从下一篇开始我们就着手实践,将从前学习的内容全部串联起来,C++、Linux系统编程、进程间通信

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

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

相关文章

毕业论文任务书怎么写?超详细指导带你轻松搞定!

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 毕业论文任务书是毕业论文的“指路明灯”,是论文写作的路线规划。很多同学把毕业论文任务书当作形式化的文件草草了事,其实不然。任务书不仅是你整个论文写作的起点,也是确…

艺术体操与骑行的完美协奏:维乐Angel Rise+坐垫,激情与力量的展现!

在艺术体操的赛场上,每一次旋转、每一次跳跃,都凝聚着运动员的力量与技巧。这不仅是一场速度与激情的碰撞,更是一次力量与技巧的交融。正如在骑行的领域里,VELO Angel Rise坐垫以它独特的一体成型设计和技术,为骑行者们…

【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs

今天在COMPASS分享了之前写的一个博客,做了进一步的提炼总结,大家可以看看原文~ 今天分享的论文《sNPU: Trusted Execution Environments on Integrated NPUs》来自2024年ISCA,共同一作为Erhu Feng以及Dahu Feng。并且, 这两位作…

《逆水寒手游》在苹果官网亮眼,国产武术游戏激起海外玩家热情

易采游戏网9月10日消息:《逆水寒手游》自上线以来,以其精致的画面、引人入胜的剧情以及创新的玩法,迅速在国内外游戏市场中占据一席之地。如今,这款备受期待的手游更是亮相全球科技巨头苹果公司iPhone16Pro的官网,为全…

lunix磁盘IO await until问题实战排查-实用命令集合

1、Linux查看磁盘读写次数 iostat -x 1 这个命令可以查询磁盘当前平均读写的次数、读写,以及是否await util严重。 2、查看磁盘TPS和读写数据量大小 iostat -d -k 1 10 这个命令可以查看磁盘的tps和读写数据量大小。 -d:显示某块具体硬盘&#x…

已知两圆的圆心半径,求交点坐标——CAD VBA 解决

如下图, dwg图中若干图形,运行代码后提示选择两个圆,然后判断两个圆位置关系和相交点坐标: 本例难点在于通过几何知识求出交点坐标。 几何背景 假设有两个圆: - 圆1:圆心 ( O_1(x_1, y_1) ),半径 ( r_1 ) …

关于支付宝小程序多规格选项的时候点击不起反应的原因分析及修改方法

解决方案: watch的时候,对于对象的赋值,最好用深拷贝,即如下图: watch:{ row: function (nv, ov) {var that this;that.indata.row JSON.parse(JSON.stringify(nv));//如果是对象,请用深入的for (va…

《使用 LangChain 进行大模型应用开发》学习笔记(二)

前言 本文是 Harrison Chase (LangChain 创建者)和吴恩达(Andrew Ng)的视频课程《LangChain for LLM Application Development》(使用 LangChain 进行大模型应用开发)的学习笔记。由于原课程为全英文视频课…

ReLU再进化ReLUMax:自动驾驶的瞬态容错语义分割

ReLU再进化ReLUMax:自动驾驶的瞬态容错语义分割 Abstract 度学习模型在自动驾驶感知中至关重要,但其可靠性面临着算法限制和硬件故障的挑战。我们通过研究语义分割模型的容错性来应对后者。使用已有的硬件故障模型,我们在准确性和不确定性方…

视频号接口列表

目前已有的接口列表: 账号搜索 视频搜索 直播搜索 获取作者信息和作品列表 视频解密并下载 获取视频详情 获取视频评论 获取视频评论的子评论 作品喜欢 作品点赞 作品评论 对作品评论进行评论 关注作者 加入直播间 获取直播间弹幕消息 发送弹幕消息 获取直播间商品…

力扣474-一和零(Java详细题解)

题目链接:474. 一和零 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包,所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话&#…

运维问题0002:SAP多模块问题-SAP系统程序在执行时,跳出“加急快件”窗口,提示:快件文档“更新已终止”从作者***收到

1、问题描述 近期收到2起业务报障,均反馈在SAP执行程序时,弹出“加急快件”窗口,导致操作的业务实际没有更新完成。 1)业务场景一:设备管理部门在操作事务代码:AS02进行资产信息变更时,保存正常…

面试官:为什么 Redis 6.0 之后引入多线程?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 回答 Redis 的性能瓶颈从来都不是 CPU,是网络I/O 和内存。 内存好解决,加机器内存和优化数据结构。 网路 I/O 的优化才是大头,因为读写网络的 read…

最新大厂薪资职级表,我酸了。。

大家好!我是鸭鸭! 又到周末,让我们轻松一下,来吃吃瓜! 大厂往往会提供具有竞争力的薪资和福利待遇,正值秋招,相关热帖也是又被翻了出来。鸭鸭今天就刷到一个帖子,据说是几家互联网…

基于构件开发-系统架构师(六十四)

1()常见的功能包括版本控制,变更管理,配置状态管理,访问控制和安全控制等。 A软件测试工具 B版本控制工具 C软件维护工具 D软件配置管理工具 解析: 软件过程工具分为:软件开发工具&#xf…

史上最全-经管类国家社科基金立项名单汇总 1991-2024

数据说明:本次数据包括以下内容: 1.国家自科基金立项名单(2022-2024) 2.国家社科基金立项名单(2008-2018) 数据简介:国家自然科学基金是中国支持基础研究的主渠道之一,面向全国&am…

容易中、见刊快的6本医学期刊推荐!

常笑医学整理了6本容易中、见刊快的医学期刊,以及期刊详细参数与投稿经验,供医生、医学生们在论文投稿时参考。投稿经历均来自常笑医学网用户真实分享,欢迎大家到常笑医学网分享自己的投稿经历和实用经验。 1.《中国医药科学》 (详…

两个月冲刺软考——校验码的三种类型;编译过程;翻译器与解释器的对比;补充CPU的内容

1.校验码 是通过扩大码距从而实现校验的。 那什么是码距呢?任何一种编码都由许多码字组成的,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。 对于这个概念可以这样理解:想象一个地图上的城市网络,每个城市代表一…

STM32时钟配置图详解

一图概述: 左侧输入时钟源 Input Frequency (LSE/LSI/HSI/HSE) LSE (Low-Speed External):外部32.768 kHz晶体振荡器,通常用于RTC(实时时钟)。LSI (Low-Speed Internal):内部低速时钟,频率为…

C# 混淆加密大师1.2.5更新功能介绍, 附CSDN下载链接

C#混淆加密大师支持 .Net Framework 2.0到.Net Framework 4.x,以及.NET Core 2.0至最新的.NET 8版本的C#程序, 包括Winform、WPF、Unity游戏以及控制台程序的混淆加密, 可有效保护C#程序代码,防止非法复制或篡改, 保护知识产权. 特性 1. 支持多种不同的…