网络中的基本概念

网络初识


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

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

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这边接受到数据,就是逆过程,进行分用,拆快递。

相关推荐
宁zz15 小时前
乌班图安装jenkins
运维·jenkins
无名之逆16 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
大丈夫立于天地间16 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
Dream Algorithm16 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手16 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
吴盐煮_16 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
rainFFrain16 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon16 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
hyshhhh16 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
Hellc00717 小时前
轮询、WebSocket 和 SSE:实时通信技术全面指南(含C#实现)
网络