网络初识-

网络的相关概念

一、局域网和广域网

将各种计算机、外部设备等相互连接起来,实现在这个范围内数据通信和资源共享的计算机网络。它的覆盖范围通常在几百米到几公里之内。例如,一个小型企业的办公室,通过交换机将多台电脑连接在一起,这些电脑可以共享打印机、文件等资源,这个网络就是一个局域网。就像是一个网吧,就是一个局域网

是一种覆盖范围很广的网络,它可以跨越城市、国家甚至全球。广域网是通过电信运营商的网络设施,如电话线、光纤电缆、卫星通信等来连接不同地理位置的网络或计算机系统。像互联网就是最大的广域网,它连接了全球各个国家和地区数以亿计的计算机和网络设备,使得人们可以在世界各地访问网站、发送电子邮件等。

二、路由器和交换机

更多组建局域网的方式是通过路由器和交换机

交换机 是一种常见的 网络设备 ,它主要用于局域网内的设备通信
路由器是一种用于连接多个网络的设备,它在网络之间起到了桥梁的作用.

路由器上的接口分为LAN口和WAN口,WAN口用来接运行商的网线.LAN口用来接入设备.路由器的LAN口也可以接入交换机,交换机还可以接交换机,基于上述结构就构成了庞大的网络结构.

路由器和交换机的区别:

每一台路由器,他实现了网络层到物理层,也就是TCP/IP的下三层,路由器工作在网络层

每一台交换机,实现了从数据链路层到物理层,也就是TCPP/IP的下两层,交换机工作在数据链路层

IP地址

IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。

就像是我们发快递一样,必须要知道对方的收货地址,快递员才能将包裹送达

计算机上则是通过数字来描述一个设备的地址

为了方便表示,往往IP地址采用"点分十进制"的方式,用三个 . 把这4个字节分为4个部分,每部分一个字节,取值为0-255.

端口号

具体描述了一个主机上的哪个应用程序.

有了IP可以确定主机,但是主机上有很多程序都在使用网络,主机收到网络数据后就要分辨是交给哪个程序使用数据.

每个程序在进行网络通信中都有一个端口号(可以自己定义,也可以系统分配).同一个主机上端口号不能重复.

网络通信中的IP和端口号

网络通信中的IP地址和端口号其实是有两个的

其实和快递一样,记录了收发地址,以及收发人的联系方式

源IP :相当于发件人地址
源端口 :发件人手机号
目的IP :收件人地址
目的端口:收件人手机号

描述了"从哪里来,到哪里去"的问题.

协议[重要]

协议就是一种通信过程中的约定.

通信双方需要制定好数据的格式,才能确保双方进行正常沟通.

通信双方的计算机可能来源于不同的厂商,为了确保两个计算机中的网络通信,就需要计算机遵守相同的网络协议.

网络通信过程中,其实有很多的细节需要注意,如果只是靠一个协议来完成的话,就需要面面俱到,这样就导致了协议非常复杂不利于维护.

于是我们把协议拆分成了很多层,把功能定位相似的放在同义词,上层协议调用下层功能,下层协议为上层服务.

只有相邻层次之间可以进行沟通,不能越级沟通.

就像是在公司中,我们完成任务只需要向自己的上一级交代,不需要直接向老板汇报.

协议分层的其他好处

1.上层协议可以直接调用下层协议,而不用关心具体的实现细节.

就像打电话,我们不用关心电话是怎样实现双方沟通的

2.某一层协议进行替换时,对其他应用也不会有什么影响.

OSI七层网络协议

我们并不常用OSI七层网络协议,这里只是给大家简单介绍,有兴趣的可以在挖掘~~

接下里我们重点介绍下TCP/IP五层网络协议.

TCP/IP五层网络协议

网络编程主要就是针对应用层,因为剩下的都是操作系统内核封装好的,我们没办法干预.

应用层:程序拿到数据之后,要解决什么问题,用来做什么

传输层:传输层执行进程到进程的端到端通信,关注的是数据的起点和终点(类似关注收件人发件人以及他们的信息).

网络层:网络层负责将数据从一个节点传输到另一个节点,主要进行寻址.将数据从源机器传送至目的机器的数据路径

数据链路层:相邻节点的之间的传输.通过检测、纠正数据包错误来建立可靠的邻接网络节点之间的数据传输

物理层:网络通信的硬件设备.

封装和分用(网络传输数据最核心的流程)

假设A给B在QQ上发了一个hello的消息.

封装

1.应用层

QQ从输入框获取到这个消息,就要把这个字符串封装成一个应用层的数据包.

QQ这样的程序就内置了一个应用层协议,用来构造应用层数据包.(就是利用字符串拼接的方式)

假定约定的格式是:

发送方QQ号;接收方QQ号;发送时间;消息正文

构造成数据包:

构造完成之后应用层就会调用系统的api,将数据包传给传输层

2.传输层

传输层就会把上述数据作为一个整体,构造成一个传输层数据包

传输层涉及到最主要的两个协议:TCP,UDP

这里我们假定使用UDP进行通信,就会构成一个UDP数据包

形如上述,添加报头的过程就叫封装,其实就是字符串的拼接,但是报头有一定的数据结构

对于UDP报头来说,承载的最重要的信息就是记录了源端口和目的端口

UDP报头虽然不能起到保护数据的作用但是能用来承载关键的用来转发的信息

拼接好传输层数据包后,就可以将他传给下层(网络层)继续封装

3.网络层(涉及到最核心的IP协议)

网络层IP协议,将传输层的UDP数据包作为一个整体再次进行封装,再拼上IP协议的报头,构成了IP数据包

IP协议,就是把整个UDP数据包视为一个整体.

IP报头也会保存一些关键的信息,这里保存的就是源IP和目的IP

网络层封装完成之后会继续调用api,将IP数据包传输到 数据链路层.

4.数据链路层 涉及到的核心协议:以太网

以太网数据帧.就是把IP数据包作为一个整体,在这个基础上加上帧头和帧尾

封装好后继续往下走交给物理层.

5.物理层

把上面的以太网数据帧,二进制结构(一串0101),转换成光信号/电信号/电磁波.发送出去.

经过上述过程,就算是把消息发送出去

分用

假设数据包已经到达了B的网卡,B的处理过程就叫分用

1.物理层

B的物理层接收到了信号并且将他转换成数字信号,得到一个以太网数据帧,进一步将以太网数据帧传输给数据链路层.

2.数据链路层

按照以太网数据帧的格式来解析,取出其中的载荷,交给上层协议

3.网络层

按照IP协议的格式来解析,取出其中的载荷,交给上层协议

4.传输层

按照UDP协议的格式来解析,取出其中的载荷,交给上层协议

5.应用层

根据 应用层协议来解析数据

路由器和交换机对上述封装分用同样适用

对于交换机来说,只需要封装到数据链路层即可

而对于路由器来说则是要封装到,网络层.

下一篇我们分享下网络编程,这里介绍一些前置知识.

网络编程中的一些概念

客户端/服务器

在网络中,主动发起请求的一方就是客户端,被动接受的一方就是服务器.

客户端发送给服务器的数据,叫做请求(request)
服务器返回给客户端的数据,叫做响应(response)

客户端-服务器之间的交互:

1.一问一答

2.一问多答

3.多问一答

4.多问多答

TCP/UDP

进行网络通信,需要调用系统的api,本质上是传输层提供的

传输层涉及到的协议主要是TCP和UDP

TCP和UDP区别:

连接 :网络上的连接是抽象的,本质上就是通信双方保存了对方的相关信息.

就像客户端,有一些数据结构,记录了谁是他的服务器.

服务器,有一些数据结构,记录了谁是他的客户端.

可靠传输:这里的可靠传输就是发的数据到没到,发送方能够清楚的感知到

面向字节流:网络中传输的数据的基本单位是字节

面向数据报:每次传输的基本单位是数据报

全双工 :一个信道可以双向通信,就像公路一样是双向车道
半双工:只能单向通信,就像过独木桥

相关推荐
真正的醒悟25 分钟前
H3C交换机&路由器&防火墙FTP/TFTP服务器搭建。
服务器·网络·智能路由器
春生黎至100544 分钟前
路由基本配置
网络·智能路由器
Hacker_LaoYi1 小时前
x安全服务 y安全体系 z网络安全模型 网络安全体系设计
网络·安全·web安全
一ge科研小菜鸡2 小时前
DeepSeek 与网络安全:AI 在网络安全领域的应用与挑战
网络
渗透测试老鸟-九青3 小时前
HW面试经验分享 | 北京蓝中研判岗
网络·经验分享·安全·网络安全·面试·渗透·代码审计
shaoin_23 小时前
网络协议相关问题
网络·网络协议
LUCIAZZZ4 小时前
简单说一下什么是RPC
java·网络·网络协议·计算机网络·spring cloud·rpc
一勺菠萝丶4 小时前
计算机专业知识【深入理解子网中的特殊地址:为何 192.168.0.1 和 192.168.0.255 不能随意分配】
网络·智能路由器
s_fox_4 小时前
Nginx Embedded Variables 嵌入式变量解析(4)
java·网络·nginx
etcix5 小时前
实现一个简单的拉取网络todo app
网络