news 2026/4/19 14:34:23

初始网络原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初始网络原理

理论知识

网络的发展历程

单机时代->局域网->广域网->移动互联网时代(国内的网络发展相对较慢,2000年前后,才真正的进入了网络时代)

组建网络的核心设备

路由器和交换机是组建网络的核心设备(交换机可以认为是对路由器的接口进行拓展)

网络通信

基础知识

网络互联的目的是为了网路通信,也就是传输数据,那么是如何进行通信的,我们需要了解一下知识

1.IP地址

IP地址是用来定位主机的网络地址,我们可以在cmd通过ipconfig来看主机的ip地址

2.端口号

一台主机上可能有多个程序同时使用网络,端口号是用来区分一台主机上多个程序的

3.协议

协议是网络协议的简称,网络协议是网络通信(即网络数据传输)经过所有网络设备都必须遵从的一组约定/规则,比如怎么样建立连接,怎么样互相识别等.只有遵守这个约定,计算机之间才能互相通信交流,通常是有三要素组成:1.语法 数据与控制信息的结构或格式; 2.语义: 需要发出何种控制信息,完成何种动作以及做出何种响应等 3.时序:即时间实现顺序的详细说明

协议(protocol)最终体现为网络上传输的数据包和格式

进行一次网络通信,涉及到五个非常关键的信息--五元组

源IP,源端口,目的IP,目的端口,协议类型

网络同时是一个非常复杂的过程,为了保证这一过程的顺利进行我们的协议非常复杂,因此我们会对协议进行分层

协议分层

小的协议归类,只有相邻两层的协议之间可以进行交互,上层可以调用下层,下层可以给上层提供服务

协议分层的好处 1.上传协议不需要了解下层协议的细节(进行了封装) 2.分层之后,灵活的替代了其中的某一层,对整个工作过程的影响较小(解耦)

真实互联网的分层方式

OSI七层网络模型

分层名称功能每层功能概览
7.

应用层

针对特定应用的协议

针对每个应用的协议

eg:电子邮件<->电子邮件协议

6.表示层设别固有数据格式和网络标准数据格式的转换接受不同形式的信息,如文字流,图像和声音等
5.会话层通信管理,负责建立和断开通信连接(数据流动的逻辑通路),管理传输层以下的分层

何时建立连接,何时断开连接以及保持多久的连接?

4.传输层管理两个节点之间的数据传输,负责可靠传输(确保数据可靠地传送到目标地址)是否有数据丢失
3.网络层地址管理和路由选择经过哪个路由器传递到目标地址
2.数据链路层互联设备之间传送和识别数据帧数据帧与比特流之间的转换
1.物理层以"0""1"代表电压的高低,灯光的闪灭.界定连接器和网线的规格比特流和电子信号之间的转换

这一套分层体系只是理论,由于这种分层过于复杂,实际真实的网络分层方式更加简化(TCP/IP五层(四层)协议模型)

TCP/IP五层(四层)协议模型

应用层

如何使用

传输层是两个设别之间的通信,但不考虑过程,只考虑起点和终点
网络层两个任意设备之间如何进行通信,考虑的是过程
数据链路层完成两个相邻的设备之间如何进行通信的,通过网线,把电脑连接到路由器/交换机上
物理层

物理层规定了网络通信中的一些硬件设施符合的要求,网络/wifi/光纤

物理层的协议,就是约定这些硬件设施要符合的要求是怎么样的

为什么有些资料会把这种叫做四层呢?是把数据链路层和物理层看成整体了(这两层都是和硬件设备直接相关的)

主机 工作过程涉及到 物理层->应用层 通过该应用程序满足网络通信的需求

路由器 工作过程涉及到物理层->网络层 组建局域网,进行网络数据包的转发

交换机 工作过程涉及到物理层->数据链路层 对路由器的接口进行拓展,不需要考虑到组网问题

但真实情况不完全相同,现在路由器和交换机的功能更加丰富,更强大,现代的交换机很多都有路由器的功能,路由器也可以开启特殊的mesh模式,就可以起到"交换机"的效果

网络通信的基本流程

发送数据

1.应用程序获取到用户输入,构造一个应用层的数据包

这个应用层的数据包会遵守应用层协议->往往是有程序员自己定义的(应用层数据包是一种结构化数据,类似C中的结构体,有很多属性)

网络传输的数据本质上都是"字符流"或者"二进制的bit流"

发送数据的时候,把结构化数据->字符串/二进制bit流 序列化

接收数据的时候,把字符串/二进制bit流->结构化数据 反序列化

2.应用程序调用传输层提供的接口(api),把数据交给传输层

传输层拿到数据之后,构造出"传输层数据包"

传输层的协议主要有两个TCP/UDP

例如: TCP数据包=TCP报头(header)+TCP载荷(payLoad)

3.传输层构造好数据之后,继续调用网络层的api,把传输层的数据包交给网络层,网络层继续处理

网络层最主要的协议是IP协议

IP协议继续对上述数据包进行加工=>拼上IP报头

IP报头包含的信息很多,源IP/目的IP

4.IP协议继续调用数据链路层的api,把IP数据包交给数据链路层

数据链路层核心协议"以太网"

以太网也会在网络层数据包的基础上进一步加工,以太网数据帧=帧头+载荷+帧尾

ps谈到网络数据传输的"基本数据单位",涉及到多个术语~

网络数据包/帧/段/报

ps:无线网的协议是820.11,这个协议和以太网是并列关系,本质上是一样的,数据格式不一样,功能略有差异(无线衰减比有线快,但都会衰减)

段(segement)TCP 报(datagram)UDP 包(packet) IP 帧(frame)数据链路层 以太网数据帧

5.以太网继续把这样的数据交给硬件设备(网卡)

网卡会把上述的二进制数据最终以光信号/电信号/电磁波信号传播出去

从上层到下层,数据都要进行进一步加工(添加报头)

接受数据

封装(这里的封装和面向对象的封装是不一样的) 接受方法是反过来的

一般来说,一根网线连接的两个电脑之间是可以通信的,数据到达接收方主机,数据会被逐层解析

1.数据到达接受方的网卡 网卡把光电信号 还原成二进制,然后把数据上交给上层数据链路层

2.数据链路层按照以太网协议进行解析(把帧头帧尾取出来,剩下的载荷,往上传递给网络层)

3.网络层拿到这个数据之后,按照IP协议进行解析,然后再把载荷数据向上传递给传输层

4.传输层拿到数据之后,也是类似,按照TCP/UDP协议进行解析,取出载荷,交给应用层

5.应用程序,解析应用层数据,拿到关键信息,展示到界面上,给出提示

传输的中间过程,也是涉及到封装分用的

交换机只需要封装分用到数据链路层就可

主机的数据=>交换 ,交换机收到之后,物理层解析,数据链路层解析(没有网路层),重新构造出新的以太网数据帧,发送给下一个设备

路由器是工作在网络层(三层转发)

防火墙和网关工作在传输层

集线器/网络延长线 工作在物理层

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:33:36

【面试现场】谢飞机大战Java面试官:从基础到架构的爆笑面试实录

【面试现场】谢飞机大战Java面试官&#xff1a;从基础到架构的爆笑面试实录 第一轮&#xff1a;Java基础与集合框架 面试官&#xff1a;谢飞机同学&#xff0c;你好。我是今天的面试官&#xff0c;我们开始第一轮技术面试。首先问个基础问题&#xff1a;Java中ArrayList和Linke…

作者头像 李华
网站建设 2026/4/18 3:21:45

2025.12.11总结

工作日精进&#xff1a;明天版本过点&#xff0c;今晚每个人都搞得很晚&#xff0c;我也是晚上11&#xff1a;30才回到租房。每天就这么起床&#xff0c;上班&#xff0c;吃饭&#xff0c;下班。租房&#xff0c;工位&#xff0c;食堂&#xff0c;三点一线。下班后&#xff0c;…

作者头像 李华
网站建设 2026/4/18 3:28:08

C++提高编程学习(更新中....)

1 模板1.1 模板的概念模板是一种通用的编程工具&#xff0c;允许使用虚拟类型&#xff08;泛型&#xff09;定义函数或类&#xff0c;从而实现对不同数据类型的复用。通过模板编写的代码可以自动适应多种数据类型&#xff0c;减少重复代码。模板的特点&#xff1a;通用性&#…

作者头像 李华
网站建设 2026/4/17 18:08:51

编程范式悄然转舵:从“规则编织”到“模型生长”​

我们正站在编程史的拐点——从“基于规则编程”的精密齿轮时代&#xff0c;迈入“基于基础模型编程”的智能涌现纪元。过去&#xff0c;我们用代码刻写每一条逻辑边界&#xff0c;像搭积木般构建功能&#xff1b;如今&#xff0c;大模型成了“会学习的土壤”&#xff0c;高价值…

作者头像 李华
网站建设 2026/4/18 1:24:53

题目:二叉树的遍历

1. 题目描述给定一个非负二叉树&#xff0c;其节点以数组&#xff08;顺序存储/层序&#xff09;的形式给出。请分别求出该二叉树的前序遍历、中序遍历和后序遍历序列。2. 输入格式第一行&#xff1a;一个整数 N&#xff0c;表示节点的个数 (N < 100)。第二行&#xff1a;N …

作者头像 李华