网络中的基本概念

网络初识


局域网:把若干个电脑组成在一起,通过路由器进行组网。

广域网:把局域网进一步的连接,构成更复杂的网络体系。

IP地址:区分主机。

端口号:区分主机上不同的程序。

协议:是一种约定,通信双方,对于通信规则的约定,一定是通信双方都得认可。


协议分层


协议分层就是把很多的协议,按照功能分成不同的层级,每个层级都有对应的主线任务(目标要解决问题),上层协议会调用下层协议的功能,下层协议会给上层协议提供服务。

那么协议分层有什么好处呢?

1)起到封装的效果,某一次的协议,不必知道其他协议的细节,降低学习使用成本。

2)任意层次的协议,都可以灵活的替换。


TCP / IP 五层或四层 模型

关于五层协议具体有哪五层:

1)物理层 :硬件层次上的相关约定。如:网线,网口.....

2)数据链路层:关注的是,两个相邻节点之间的通信。

3)网络层:关注的是通信中,通信路径的规划,数据要经过哪些节点,点到点的传输。

4)传输层:关注双方的 起点和终点。端到端的传输。

5)应用层:和具体的应用程序直接相关。传输的数据是干啥的,有什么意义?等。

上述是TCP的5层,如果是IP的4层,就少了一个物理层。


协议的层与层之间是如何配合工作的呢?

上层协议会调用下层协议的功能,下层协议会给上层协议提供服务。

具体怎么实现:

1)封装。这里的封装和java面向对象的封装是不一样的。

2)分用。

这里我会举个例子来解释这两个。 A通过QQ发送hello给B。

1. A通过窗口输入hello,点击发送给B。QQ应用程序就要通过实现上述的逻辑,上述的逻辑都需要网络进行传输,QQ首先呢会把这些数据组成一个应用数据包,QQ里的应用层就会有一个协议,来约定数据的格式。

**2.**应用层数据包,已经有了QQ 程序, 就要调用系统的 api,,来进行传输。应用层接下来要把数据交给,传输层怎么交给传输层?

传输层 (操作系统内核) 提供了 api, 让应用程序去调用。

调用这样的 api,,就会把刚才的应用层数据交给传输层(进入到系统内核了)。

传输层拿到应用层数据包之后,就会把这个数据包进行进一步的封装,构造成 传输层数据包。

如图:

3.到了网络层,最典型的协议就是IP协议,他会对UDP数据包进一步的封装成IP数据包,包含发送人的IP地址和收件人的IP地址。然后调用数据链路层的api,发送给数据链路层。

如图:

4.数据链路层,最典型的协议,以太网,通过以网线的传输,就叫做以太网协议。

以太网也有自己的数据格式,会对IP数据包进行封装。

如图:

5.物理层,硬件设备,对上述的二进制的数据,转换成 电信号或光信号等。


上述层层的包装数据,层层的对数据包增加包头的过程,称为封装。


B这边接受到数据,就是逆过程,进行分用,拆快递。

相关推荐
星恒随风1 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
无足鸟ICT2 小时前
【RHCA+】IO调度算法
linux·服务器
打工仔折腾 AI2 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理2 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
wacsii2 小时前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下2 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
如夏倾城2 小时前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http
fengkai45453 小时前
Prometheus+K8s弹性伸缩综合项目
运维·kubernetes·k8s·prometheus·hpa·vpa
科研邪修法3 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络
分布式存储与RustFS4 小时前
镜像仓库的层别只堆本地盘:用 RustFS 给 Harbor 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准