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

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

网络早已成为我们日常生活的一部分,经常使用互联网的人很难长时间内离开互联网。你是否好奇你的电脑仅仅插上一根网线,你发给朋友的聊天信息就能准确无误的到达朋友的手机或者电脑上,你是否好奇为何你仅仅在浏览器输入一个网址,点击一下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地址常用来局域网内搜寻某个主机,随着对网络学的加深,大家会对这两个地址有更加深刻的理解  


目录
相关文章
|
3天前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
22 7
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
15 2
|
28天前
|
移动开发 网络协议 NoSQL
不为人知的网络编程(十七):冰山之下,一次网络请求背后的技术秘密
本文将抛弃千篇一律的计网知识理论,从现实的互联网技术实践角度,一步步为你分享一次网络请求背后的技术秘密。
47 0
|
15天前
|
域名解析 网络协议 安全
|
21天前
|
运维 监控 网络协议
|
7天前
|
存储 数据安全/隐私保护 云计算
多云网络环境:定义、优势与挑战
多云网络环境:定义、优势与挑战
21 5
|
6天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
21 3
|
16天前
|
存储 Ubuntu Linux
2024全网最全面及最新且最为详细的网络安全技巧 (三) 之 linux提权各类技巧 上集
在本节实验中,我们学习了 Linux 系统登录认证的过程,文件的意义,并通过做实验的方式对 Linux 系统 passwd 文件提权方法有了深入的理解。祝你在接下来的技巧课程中学习愉快,学有所获~和文件是 Linux 系统登录认证的关键文件,如果系统运维人员对shadow或shadow文件的内容或权限配置有误,则可以被利用来进行系统提权。上一章中,我们已经学习了文件的提权方法, 在本章节中,我们将学习如何利用来完成系统提权。在本节实验中,我们学习了。
|
25天前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
|
1月前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
31 1