网络编程:了解网络模型|学习笔记

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 快速学习网络编程:了解网络模型

开发者学堂课程【大数据 ZooKeeper 快速入门网络编程:了解网络模型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7578


网络编程:了解网络模型


目录:

一、网络模型图

二、七层参考模型分层

 

一、网络模型图

1.计算机之间何种规则进行通信?就是网络模型所研究的问题。

2.网络模型一般有一个参考标准,最常见的叫做 OSI 层参考模型,这个七层参考模型,是有一个国际化的标准组织,叫做 ISO 来制定的,他把网络通信从用户接触到的应用层最上面一层,一直到最下面的物理层划分了七层,每一层都有各自的功能和协议有的资料上也会把网络模型的划为所谓的 TCP/IP 的五层模型,还有什么四层模型的,不管怎么划分,可以发现这些五层模型还是四层模型,它都是来自于七层参考模型,只不过把它上面的当中的某一层做了一些分装。因此,重点来看这个七层参考模型是一个什么意思.

3.因为网络通信成了七层,因此,在每一层都有各自的功能以及各自的意义,并且最重要的是每一层都会为它相邻的两层提供一个业务的支持,因此在这种七层参考模型下,网络通信变成了这种形式,由它的本质变成这种形式。

image.png

4.现在有两台机器在两台机器之间进行通信意味着每台机上都有一个所谓的七层参考模型那么用户能够接触到的是哪一层呢?是应用层,那应用层上面会运行着很多的程序,比如说你的聊天软件,浏览器。以一个聊天软件来举例,左边这台机器上有一个聊天软件,这聊天软件可以进行一个聊天的通信边这台机上也一个聊天软件,为了表示区分开,这两边都给他表示是两台不同的机器两个聊天软件进行通信,实际上是这两个聊天软件直接建立一个通信发送消息实际上是在两个应用之间建立了个连接。发送消息两方都可以接收。当在左边发送数据的时候,在应用层输入数据的时候,不是直接发送到对面的应用层,是经过了一个从上往下逐级封装的过程,就是说应用层的数据对于左边来说,首先流转到表示层,在表示层当中,它会把数据做一些封装,加入一些自己相关的信息,因此这里可以写一个专业的数据,数据的封装。

5.在左边这边,数据经过每一层都会经历一个封装,封装这一层相关的一些信息,然后当数据封装之后逐级往下铲,最终依旧来到了物理层。在物理层它的数据是一个什么格式呢?就是常见的0101就是这种形式。那么这一层的数据在物理层,是不是到这一层数据最终是要在物理层做传输。比如物理层,在两台机器之间通过光纤做一个连接,因此,最终在物理层传输的数据都是01的标志,那么右边传输的标识,在左边就可以接收到这种数据。接收到这个数据的话,如果直接表示传送给应用层,应用层也解决不了。因此在左边这里通信也经过一个逐级封装,逐级上传的过程。也就是说,物理层这条数据传输单层数据电路层,左边进行逐级的分装,右边就是相反的过程,数据的拆分。在左边这里,从应用层数据传输到物理层的时候呢,逐级进行一些封装,那么反之,在同方向的另一个机器上呢,就会进行一个逐级数据的拆分。方向的另一个机器上呢,就会进一个逐级数据的拆分,那么传一下左边数据链路层数据链路层封装的信息,对于右边来说,当然能够解析到,因此逐级分装,逐级解封,那解封之后传给上一层,然后上一层再进行解封,一直解析到聊天应用层。

6.在数据传输参考模型下,在网络模型中。数据的传输经历了逐级分装的过程,反方向反方向上经历了逐级拆分的过程。这才是数据传输的本质。

 

二、七层参考模型分层

1. 物理层:

主要去定义一些物理设备的标准,比如网线的接口类型,光纤的结构类型,以及各种传输介质的传输速率是多少。这一层最终会将数据编码为用0101标识的比特流,然后通过定义的这些物理介质进行传输,因此在这一层传输的数据叫什么?比特。这一层可以说是整个网络层当中最底层了,因为它已经编码为0101了,这一层的数据一般也不是所关心的,编程不会达到最底层,这是叫做物理层。

2. 数据链路层数:

主要将接收到的数据进行一个 MAC 地址,就是网卡地址的封装,因为涉及到两个方向在一边进行,封装在另一边就要进行解封装。那么这一层工作的数据把它叫做帧。这一层常常工作的设备是一个交换机,交换机主要就在这一层的工作,叫做数据电路层。

3. 网络层:

网络层主要是将接收到的数据进行 IP 地址的封装与解封装,那么同样可以发现,不管是封装还是什么操作,都是一个方向性的。左边进行封装,在右方进行解封装,左边进行拆分,右边进行反拆分啊,这就是一个所谓的一个方向的操作。网络层这一层工作的数据叫做数据包,这一层工作的设备常常是路由器。

4. 传输层:

主要去定了一些数据传输的协议和端口号。这一层主要将接收的数据进行一个分段和传输,在一边进行分段,到达目的地后,在另一边就要进行一个数据的重组,因此把这一层的数据叫做段。

5. 会话层:

会话层主要是通过传输层建立数据传输的通道,在系统之间发起会话请求和接收会话请求。

6. 表示层:

表示层主要进行接收数据的解释,一边加密一边解密,这是一个双向性的,一边数据压缩,一边就要解压缩。它主要表示在确保一个系统的应用层发送的数据能被另一个系统的应用层识别。可以把它理解为应用的秘书,在这一层进行了加密,解密压缩解压缩。

7. 应用层:

这一层主要是为一些终端的应用程序提供服务,比如聊天软件,浏览器,这一层是直接面对用户的是能够接触到的。

这七层参考模型,每一层都有不同的协议,那么要理解什么?要明白当前是开发在哪一层,工作在哪一层,比如是从事 Java 的开发,或 Java web 的开发,使用最多的是 HTTP 协议,那么应该开发在应用层?因此把 java 叫做企业级应用开发,因为使用最多的是 HTTP 协议,那么要想进行网络通信编程?使用最多的是一个 TCP 和 udp 协议,因此是在传输层进行开发,这就是所谓的网络模型。

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
8天前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
105 58
|
4天前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
22 2
|
4天前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
20 1
|
2月前
|
域名解析 网络协议 安全
计算机网络TCP/IP四层模型
本文介绍了TCP/IP模型的四层结构及其与OSI模型的对比。网络接口层负责物理网络接口,处理MAC地址和帧传输;网络层管理IP地址和路由选择,确保数据包准确送达;传输层提供端到端通信,支持可靠(TCP)或不可靠(UDP)传输;应用层直接面向用户,提供如HTTP、FTP等服务。此外,还详细描述了数据封装与解封装过程,以及两模型在层次划分上的差异。
441 13
|
2月前
|
网络协议 中间件 网络安全
计算机网络OSI七层模型
OSI模型分为七层,各层功能明确:物理层传输比特流,数据链路层负责帧传输,网络层处理数据包路由,传输层确保端到端可靠传输,会话层管理会话,表示层负责数据格式转换与加密,应用层提供网络服务。数据在传输中经过封装与解封装过程。OSI模型优点包括标准化、模块化和互操作性,但也存在复杂性高、效率较低及实用性不足的问题,在实际中TCP/IP模型更常用。
274 10
|
8天前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
136 60
|
8天前
基于Reactor模型的高性能网络库之Channel组件篇
Channel 是事件通道,它绑定某个文件描述符 fd,注册感兴趣的事件(如读/写),并在事件发生时分发给对应的回调函数。
124 60
|
8天前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
108 57
|
8天前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
100 57
|
5月前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
144 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络

热门文章

最新文章