Linux网络编程1(网络基础定义)

news2025/1/9 13:05:14

网络早已成为我们日常生活的一部分,经常使用互联网的人很难长时间内离开互联网。你是否好奇你的电脑仅仅插上一根网线,你发给朋友的聊天信息就能准确无误的到达朋友的手机或者电脑上,你是否好奇为何你仅仅在浏览器输入一个网址,点击一下enter,网页图片和视频就展现在你的眼前,这一切的背后究竟是什么原理?在网络编程的系列学习中,我们将逐渐揭开网络神秘的面纱,不仅要懂网络,还知道如何编写网络程序

网络的起源

网络最初是美国军方用来通信的一种手段,后来逐渐下放在民用市场被广泛使用,一开始的网络是由美国政府掌管,后来逐渐分配给各大运营商(ISP)来管理,随着越来越多的人加入互联网,互联网的规模也变得越来越大。网络的出现是一种必然的趋势,随着人们逐渐依靠计算机来解决问题,就暴露出很多问题

 

某人用计算机A得出计算结果,要记下数据,来到计算机B把A的数据结果输入进去,然后再把计算机B的结果输入到计算机C中得出最终结果,这个过程中虽然计算机解决了计算问题,但是各个计算机之间相互独立,还是很不方便

如果计算机A和计算机B,C之间能够互相连接起来,A计算完把结果传送给B,B再传送给C这样不就不需要人跑来跑去,如下图

 

要是此时计算机C想直接从A拿到数据,直接在A,C之间接线单这一个还好,如果接入更多的计算机呢?难不成每个计算机之间都接一条线吗?成本太高了,怎么更好的解决呢?我们可以引入第四台计算机,如下图

A把运算结果上传到服务器上,B和C可以访问这个服务器获取A的数据,并且以后再接入更多的计算机也不怕了,这是服务器的用法之一,现在的服务器有着更丰富的功能,是撑起互联网大厦的支柱

那么计算机A该如何找到服务器又成了一个问题,可以让A在这个局域网内进行广播,当服务器收到了广播,发现是在找自己,于是应答,建立A与服务器之间的通信,这样做会带来一系列的问题。首先A是广播,只要A发送消息,那么局域网内的所以机器都能收到消息,如果有非法计算机监听通信信息,会很危险,并且A发送消息时,整个局域网的信道都被占用,B和C都不能发送消息,否则就会产生信息碰撞,种种的不方便催生了交换机的诞生

交换机的原理是所有局域网内的主机都连接到交换机上,当计算机A想要给服务器发送信息时,只要发给交换机,交换机会自动找到服务器把信息转交,这样避免了信息泄露和碰撞

  

路由器又是个什么东西呢?假设现在成都有一个局域网A,上海有一个局域网B,现在A和B想要进行通信,两个局域网之间的互相连接就是靠路由器来实现的,把一个局域网比作一个山村的话,那么路由器就是离开这个山村去往外面世界唯一的通道,世界上的各个路由器互相连接就构成了庞大的互联网世界

 

网络分层模型 

上面仅仅是对互联网的一个简单描述,如果仅仅是科普程度也差不多了,但是作为程序编写人员,我们对互联网的了解要更加深刻,深入到具体的实现细节中,那么首先得明白互联网的层次模型,互联网共有两种层次模型,一种是OSI模型,一种是TCP/IP的模型

分层的目的是什么?要知道在主机上随手点击一下的网络请求具体实现要经过很多层次,假设你在使用浏览器,输入网址后点击访问,那么浏览器这个软件会将请求信息转交给OS,OS会对转交信息进行一定层度的包装,然后再转交给网卡,网卡将请求信息转换成模拟或者波信号发送出去

在这个过程中,浏览器软件负责请求网络通信,OS负责将信息包装,网卡负责传播信号,任何一个环节出了问题,就体现出分层解耦的作用了,当浏览器请求出了问题,并不会影响到OS和硬件,每一层都有自己的工作要做,当然刚学理解不了这些很正常,随着对每一个层次的深入学习后,再次看这个分层模型就能理解为何要这么做

实际上我们并不使用OSI模型,因为在实际的程序编写上发现应用层,表示层,会话层之间的联系很紧密,即耦合度高,不便于分开处理,因此TCP模型将这三个模型压缩成一个应用层,我么实际上使用的就是TCP模型,因为我们主要负责软件方面的,因此最底层的硬件部分我们并不怎么关心,所以TCP模型又可以看作是只有四层

网络的信息传送过程 

网络信息传送就是指一个请求信息是如何通过层次模型,层层包装最后传输给目的主机的,这个过程用语言描述并不直观,大家可以观看相关的视频来理解,例如在b站上搜计算机网络,就可以查看到相关的内容,建议大家去看看,找不到可以联系笔者

 

 协议

上面那张分层图,每一个分层都有对应的协议,那么什么是协议呢?大家都是明白协议的意思的只是不好口述出来,协议说简单点就是通信双方互相约定以某一种方式进行通信,以日常生活中的快递公司为例

常见的快递公司有邮政,京东,顺丰等,当我们在网上购物,商家会选择一个快递公司将货物递送出去,那么快递小哥如何知道要送达到哪里呢?快递公司会专门定制它们公司的快递送达协议,快递小哥只要根据这个协议执行,那么就能够把快递送给用户,这个快递协议具体就是体现在快递单上,快递单记录了该快递公司名称,用户地址,用户姓名,用户号码等等必要信息,所以快递协议是体现在快递单上的

同样的,我们后面会学习TCP协议,IP协议等,然后你会发现这些协议都有一个报头,TCP报头,IP报头等,和快递单是类似的,协议的内容体现在报头上的

 

上图就是IP协议的报头,每个字段的具体内容大家可以搜索查看,我们这里看看这个报头内部有一个协议字段,这个是什么意思?这个字段是记录的是当前信息的上一个协议用的是哪个?是TCP还是UDP,还是OSPF协议等等

为什么当前协议还有记录上一层使用的是什么协议呢?如果你看了网络信息传送过程视频你应该能想明白,当目的主机收到分组信息,会逐层向上传递,传到IP层时,它的上层有很多协议,有udp,有tcp,那么该传给谁呢?这个时候就提现到这个协议字段的作用了,协议字段里记录的是哪一个协议就传给哪一个协议

以太网名称由来 

平时主机上连接的网线而形成的局域网络被称为以太网,那么为什么叫以太网这个奇怪的名字呢?早期的物理学家发现声音的传播是依靠介质的,在真空状态下无法传播声音,于是就推测光的传播肯定也是要依靠介质的,于是把光的传播所依靠的介质称为以太,并做了大量实验想找到这种介质。后来有人科学的证明了,光的传播是不需要介质的,前面的实验就成了笑谈,网络祖师爷起这个名字是对物理界的一种调侃或致敬,不必奇怪,大佬嘛,能成为大佬,基本很多圈子都有身影

IP和MAC地址 

在网络上如何查找到具体的一台联网主机呢?这就靠IP地址了,IP地址就相当于主机的门牌号,唯一的标识网络上的一台主机

你可能会疑惑,32位的整数,2的32次方也不过才40亿多,怎么能满足全球50多亿的上网需求呢?我们将在后面解释这部分内容,不过未来的趋势是使用IPv6协议,共有128位,几乎可以给地球每一个沙子都分配一个ip地址,不过现在IPv6的普及还需要一段时间

MAC地址唯一的标识了一台网络硬件设备,MAC地址有48位, MAC地址一般是写死到网络硬件设备上的

MAC地址能标识唯一,IP地址也能标识唯一,那么为何还要IP地址呢?直接统一用MAC地址不就好了,有时候一台主机不止有一个网卡,如果有多个网卡,那么就会有多个MAC地址。在网络信息传输过程中,IP地址是不变的 ,一旦确定了目的主机的IP地址,就不会更改,MAC地址是动态变化的,每经过一个新的路由就要更新一跳的MAC地址,MAC地址常用来局域网内搜寻某个主机,随着对网络学的加深,大家会对这两个地址有更加深刻的理解 

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

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

相关文章

动态不确定性的动态S过程(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 7 Function callers标签页介绍

不知不觉这个code-mapping专题已经写了6篇文章了,今天是我们这个专题的最后一篇文章了介绍Function callers 这个其实很简单,以前的文章里也有提到CS接口实现两个SWC之间的CS调用,我们在从Code-mapping的角度在说下 首先还是看下模型 我们还记得在simulink里我们用function…

选择排序:用C语言打造高效的排序算法

本篇博客会讲解如何使用C语言实现选择排序。 下面我来画图讲解选择排序的思路。 假设有一个数组,其初始状态如下,我们想把这个数组排成升序。 首先我们标明范围,即[begin, end],一开始begin(b)和end(e)分别表示数组的第一个位置…

【黑马头条之热点文章kafkaStream】

本笔记内容为黑马头条项目的热点文章-实时计算部分 目录 一、实时流式计算 1、概念 2、应用场景 3、技术方案选型 二、Kafka Stream 1、概述 2、Kafka Streams的关键概念 3、KStream 4、Kafka Stream入门案例编写 5、SpringBoot集成Kafka Stream 三、app端热点文章…

验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品

验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字,识图DLL,比如Opencv,Labview机器视觉找物品之类?

数据库第十五课-------------非关系型数据库----------Redis

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

第三方软件测试都有哪些?

第三方软件测试 第三方软件测试是一种软件测试活动,旨在确保软件的质量、功能、性能和安全性等方面符合预期要求。 一、以下是一些常见的第三方软件测试类型: 兼容性测试:测试软件在不同操作系统、浏览器、数据库等环境下的兼容性。 功能测…

计费时间与非计费时间:工时表如何帮助你平衡两者?

正确分配时间是企业管理员工的必要条件,这意味着了解并了解如何管理计费时间和非计费时间。更重要的是,需要能够在两者之间找到适当的平衡,这样才能最大限度地提高生产力、消除业务中的低效率并提高利润。 什么是计费时间和非计费时间&#x…

Python“牵手”天眼查、企查查、启信宝企业数据API接口运用场景及功能介绍

天眼查企业信用查询app是一款企业数据信息查询软件,专注服务于个人与企业信息查询,是人人都在用的商业安全工具。本软件整合了国内所有企业数据信息,用户可以使用这款软件查询企业单位相关信息,只要在线输入企业名称,就可以为您搜…

网络互联与互联网 - TCP 协议详解

文章目录 1 概述2 TCP 传输控制协议2.1 报文格式2.2 三次握手,建立连接2.3 四次挥手,释放连接 3 扩展3.1 实验演示3.2 网工软考 1 概述 在 TCP/IP 协议簇 中有两个传输协议 TCP:Transmission Control Protocol,传输控制协议&…

每日后端面试5题 第八天

1.UDP和TCP协议的区别 1.UDP无连接,速度快,安全性低,适合高速传输、实时广播通信等。 2.TCP面向连接,速度慢,安全性高,适合传输质量要求高、大文件等的传输,比如邮件发送等。 (还…

C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】

文章目录 一、概述二、qsort函数参数介绍三、qsort实现排序3.1 qsort实现整型数组排序3.2 qsort实现结构体数组排序 四、模拟实现qsort函数 一、概述 对数组的元素进行排序 对数组中由 指向的元素进行排序,每个元素字节长,使用该函数确定顺序。 此函数使…

Vue中ElementUI结合transform使用时,发现弹框定位不准确问题

在近期开发中,需要将1920*1080放到更大像素大屏上演示,所以需要使用到transform来对页面进行缩放,但是此时发现弹框定位出错问题,无法准备定位到实际位置。 查看element-ui官方文档无果后,打算更换新的框架进行开发&am…

学校宿舍门禁:如何做好考勤管理?

随着科技的不断发展,传统的考勤方式逐渐显现出其局限性,而人脸识别技术作为一种快速、准确、无需直接接触的身份验证手段,为宿舍管理带来了全新的可能性。 宿舍管理能够让管理员随时通过系统监控宿舍内的人员流动情况,当系统检测到…

【Nginx】Nginx 简介

Ngnix 特点 模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。高可靠性:主控进程和 worker 是同步实现的,一个 worker 出现问题,会立刻启动另一个 worker。内存消耗低:一万个长连接(kee…

ASE 基础知识

笔记: 1,颜色,贴图 2,加减乘除 3,菲涅尔、sin,float、vector、time 4,漫反射,法线,自发光,金属度,反射,AO明暗,折射&#…

[保研/考研机试] KY190 查找第K小数 北京邮电大学复试上机题 C++实现

题目链接: 查找第K小数_牛客题霸_牛客网查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/437195121692786918857 描述 查找一个数组的第K小的数,注意…

正中优配:创业板一天最多涨多少?

创业板是我国股票商场的一个特定板块,它首要涵盖了草创公司、小微企业和新型产业的股票买卖。作为股票商场的重要组成部分,创业板的涨跌对于投资者和商场参与者来说具有必定的影响力。那么,创业板一天最多能够涨多少呢?本文将从多…

2023年机遇与挑战:裁员速度逐渐趋缓 | 百能云芯

随着2023年已经过半,美国湾区的科技公司仍在进行着内部结构的调整,以适应不断变化的市场环境。然而,从裁员人数来看,这一调整似乎已经进入了一个步伐逐渐放缓的阶段。 根据公开文件显示,英特尔、SPT MicroElectronics和…