当前位置: 首页 > news >正文

网络基本概念

一、IP 地址与端口号

1、IP地址

        IP地址⽤于定位主机的⽹络地址。就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。它是一串由数字组成的标识(如 IPv4 的 “192.168.1.1”),用于唯一确定网络中一台主机的位置。

2、端口号

       端口号⽤于定位主机中的进程。类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。一台主机可能同时运行多个网络程序(如浏览器、聊天软件、游戏客户端等),端口号(范围通常为 0-65535)用于区分同一设备上不同的网络应用。

二、协议与协议分层

1、协议
(1)概念:

协议即网络协议,协议是指网络中设备通信时共同遵守的规则集合,包括数据格式、传输速率、错误处理等内容。

比如 TCP 协议确保数据可靠传输,UDP 协议则追求传输速度。

(2)作用:

       网络协议是网络通信的“语言规范”,可以统一数据格式等通信语法;规范传输步骤,保证了通信的有序性;支持分层协作从而简化技术实现。 

2、协议分层
(1)概念

协议分层将网络通信过程划分为多个层次,每个层次专注于特定功能,并通过接口与上下层交互。

(2)作用

类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。

使用方:不关心提供方是如何实现的,只需要使⽤接⼝即可

提供方:利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可

3、OSI七层模型 

如下图所示:

4、TCP/IP 五层模型

(1)应用层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远 程访问协议(Telnet)等。应用层考虑的是东西拿到之后怎么使用。

(2)传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发 送到⽬标主机。任意两个设备之间的通信,不考虑中间过程,只考虑起点和终点。

(3)网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表 的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。与传输层不同的是,网络层需要考虑传输的中间过程。

(4)数据链路层:负责设备之间的数据帧的传送和识别,交换机(Switch)⼯作在数据链路层。考虑两个相邻的设备之间是如何通信的。

(5)物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。

 5、网络设备所在分层

(1)主机:传输层——物理层;

(2)路由器:网络层——物理层;

(3)交换机:数据链路层——物理层;

(4)集线器:物理层;

6、TCP/IP通讯过程

三、封装与分用

1、封装

数据从上层传递到下层时,每层都会在数据前添加该层的协议头部(有时还会添加尾部)。

例如,应用层的数据传递到传输层时,TCP 协议会添加 TCP 头部;再到网络层,IP 协议添加 IP 头部;最后到数据链路层,添加 MAC 头部和尾部。经过封装的数据单元在不同层次有不同名称,如传输层的段、网络层的分组、数据链路层的帧。

封装过程如下图所示:

2、分用

       目标设备从底层开始,逐层剥离对应的协议头部,最终将原始数据传递到上层的应用程序。分用过程依赖各层头部中的信息(如端口号、IP 地址),确保数据被正确分发。 

分用过程如下:

四、客户端、服务端,请求与响应

1、客户端与服务端

客户端通常是发起通信请求的设备(如你的手机、电脑)

服务器则是提供服务的设备(如网页服务器、游戏服务器),它会等待并处理客户端的请求。

2、请求与响应

客户端向服务器发送的需求信息称为请求。

比如打开某个网页时,浏览器会向网页服务器发送 HTTP 请求。

服务器接收到请求后,会进行处理并返回相应的结果称为响应。

例如,网页服务器会将网页数据作为响应返回给浏览器,浏览器再将其渲染成我们看到的页面。

3、关系如图所示:

 

五、两台主机的网络通信流程​

了解了上述概念后,我们可以梳理一下两台主机(假设为 A 和 B)的完整通信流程:​

1、发起请求:主机 A 的应用程序(如浏览器)生成请求数据,明确要与主机 B 的某个服务(通过端口号指定,如 80 端口的 HTTP 服务)通信。

2、​数据封装:请求数据从应用层开始,逐层经过传输层(添加 TCP/UDP 头部,包含端口号)、网络层(添加 IP 头部,包含 A 和 B 的 IP 地址)、数据链路层(添加 MAC 头部和尾部),最终封装成帧。

3、​物理传输:封装好的帧通过物理介质(如网线、无线信号)传输,可能经过路由器、交换机等网络设备转发,每台设备根据 IP 地址和 MAC 地址确定转发路径。

4、​数据分用:主机 B 接收到帧后,从数据链路层开始逐层剥离头部,依次经过网络层、传输层,最终将请求数据传递到对应的应用程序(根据端口号匹配)。​

5、处理与响应:主机 B 的应用程序处理请求,生成响应数据,然后按照与请求相同的封装和传输过程,将响应发送回主机 A。​

6、完成通信:主机 A 接收到响应后,分用数据并由应用程序处理(如浏览器显示网页),一次通信结束。 

 

http://www.dtcms.com/a/272293.html

相关文章:

  • Ubuntu22.0.4安装PaddleNLP
  • Android Coil 3 data加载图的Bitmap或ByteArray数据类型,Kotlin
  • Redis BigKey 深度解析:从原理到实战解决方案
  • arm架构,arm内核,处理器之间的关系
  • 【部分省份已考真题】备战2025全国青少年信息素养大赛-算法创意实践挑战赛c++省赛/复赛真题——被污染的药剂
  • 如何发现Redis中的bigkey?
  • Django中序列化与反序列化
  • Python(31)PyPy生成器优化深度解析:JIT加速下的Python性能革命
  • 查看已安装 Django REST Framework (DRF) 版本
  • 【提高篇-基础知识与编程环境:1、Linux系统终端中常用的文件与目录操作命令】
  • 力扣-54.螺旋矩阵
  • QT - 串口QserialPort应用
  • C语言——预处理详解
  • C#中异步任务取消:CancellationToken
  • 【C++详解】STL-list模拟实现(深度剖析list迭代器,类模板未实例化取嵌套类型问题)
  • 【TCP/IP】10. 引导协议与动态主机配置协议
  • prometheus+grafana接入nginx实战
  • 零成本实现商品图换背景
  • 静态路由实验(2)
  • Vue3 深度解析:渲染器与渲染函数的奥秘
  • 【PTA数据结构 | C语言版】链式栈的3个操作
  • linux 4.14 kernel屏蔽arm arch timer的方法
  • 网络编程与自动化
  • 高亚科技签约奕源金属,助力打造高效智能化采购管理体系
  • Flask 入门教程:用 Python 快速搭建你的第一个 Web 应用
  • 在 Ubuntu 上安装和配置 Kafka
  • 下一代防火墙-终端安全防护
  • 普林斯顿大学DPPO机器人学习突破:Diffusion Policy Policy Optimization 全新优化扩散策略
  • Eigen 几何模块深拆:Isometry3d vs Affine3d + 变换矩阵本质详解
  • OSPF协议:核心概念与配置要点解析