网络原理——基础概念(端口号、分层、封装和复用)、各层协议(TCP/IP协议)(详细图解)

news2025/1/19 11:31:57

目录

一、基础概念 

1、 IP地址

(1)点分十进制

2、端口号

3、协议

(1)协议的 组成部分

(2) 协议的 作用

4、五元组

5、协议分层

(1)分层的 好处

(2)OSI 七层模型

(3)TCP/IP 五层模型

6、封装和分用

 (1)封装

 (2)分用


一、基础概念 

1、 IP地址

   IP地址是指互联网协议地址(网际协议地址)。是 IP 协议提供的一种同一的地址格式。描述了网络上一个主机的位置(收货地址)

   IP地址本质上是一个 32 位的整数,但是由于 32位的整数不方便人们来读和记忆,所以采用了 “点分十进制”。

  (这部分只简单介绍,是为了更好的理解后面的内容,详细的 IP地址 的内容在 IP协议部分)

(1)点分十进制

   将 32位的 IP地址(4个字节),按照每个字节,分成四个部分,这四个部分中间用 . 隔开。

例如: 123.139.170.255

   因为一个字节8个比特位,因此每一部分的取值范围:0~255。

注意:127.0.0.1 是一个特殊的IP地址,叫 环回IP,表示自己这个主机。

2、端口号

   IP地址表名了哪个主机,但是主机上还有很多进程,因此要通过端口号来确定是哪个进程。

   端口号描述了一个主机上的某个应用程序(收件人电话)。

   端口号本质上是一个 2 个字节(16位)的无符号整数,范围是 0 ~ 65535 。

   使用时,两个进程不能绑定同一个端口号,但是一个进程可以绑定多个端口号。(当服务器程序启动时,就需要绑定一个端口号,以便客户端程序来访问)

例如: 3306:mysql 默认的端口号

3、协议

   协议是 网络协议 的简称,本质上就是 “约定”(发出来的数据是啥样的格式,接收方按照对应的格式来进行解析)。要想进行有效的通信,就需要明确通信协议。

   协议 最后再网络通信中,表现为网络上传输的数据报的格式

(1)协议的 组成部分

① 语法:数据和控制信息的 结构 或 格式 。(打电话:约定都说普通话)

② 语义:需要发出某种控制信息,完成某种动作 以及 做出某种响应。(双方怎么做,打电话我问:在吗,对方回答:在)

③ 时序:事件实现顺序的详细说明。(打电话先讲什么后讲什么)

(2) 协议的 作用

   网络通信的时候,本质上传输的是 光信号 和 电信号,通过光信号 的 频率(高频率 和 低频率)电信号 的 电平(高电平 和 低电平)来表示 0 和 1 。

   这些 0 和 1 组合起来到底是什么意思,协议就可以对这些进行规定了。

4、五元组

   在 TCP/IP协议(很重要的协议)中,用五元组来表示一个网络通信。

  • 源IP :标识源主机。
  • 源端口号 :标识源主机中进行这次网络通信中 发送数据 的 进程。
  • 目的IP :标识目的主机。
  • 目的端口号 :标识目的主机中进行这次网络通信中 接收数据 的 进程。
  • 协议号 :标识发送数据进程 和 接收数据进程 双方约定的 数据格式 。

   网络通信的过程,类似发快递的过程:

5、协议分层

   对于网络协议(协议)来说,往往分成几个层次进行定义。

   如果网络通信只通过一整个协议来进行规定,那么里面的细节就会很多,会很庞大复杂。因此更好的方法就是,把一个大的复杂的协议,拆分成多个小的更简单的协议,每个协议仅仅只负责它那部分的工作。(类似于将一个复杂程序代码,分成很多小的部分代码,让他们实现其各自的功能,最后再进行汇总)

(1)分层的 好处

① 每层协议不需要理解其他层的协议

   打电话的人,不需要理解电话的工作原理,就可以完成打电话的操作。

   制造电话的人,不需要考虑打电话的人说英语还是汉语。

② 可以把对应层的协议换成其他协议

   打电话的人,可以使用有线电话,也可以使用无线电话。可以使用英语,也可以使用汉语

(2)OSI 七层模型

   OSI 七层模型(Open System Interconnection 开放系统互连)是指 把网络从逻辑上分了 7 层。

    OSI 七层模型 虽然实现了分层,但还是比较复杂,并且不实用。因此在实际组建网络时,使用的是 TCP/IP 五层 模型。

(3)TCP/IP 五层模型

   TCP/IP 是一组协议的代名词,它包括了很多协议(有了TCP/IP协议栈)。它采用了 五层结构。

  • 应用层:负责说明传递的这个数据是干嘛的。
  • 传输层:负责 端 到 端 之间的通信,即 起点 -> 终点。(进程 -> 进程)
  • 网络层:负责 点 到 点 之间的通信,即路线规划。(全局)
  • 数据链路层:负责两个相邻的设备之间的通信。(相邻:同一根网线)(局部)
  • 物理层:负责网络通信的硬件设备。网线、网卡......针对硬件设备进行的约定。

 类似:

  • 应用层:买的喷壶,这个喷壶是用来浇花?还是消毒?
  • 传输层:我负责下单,商家负责发货,我们都只关心货到了没有。
  • 网络层:快递公司选择路线:①广州 -> 西安 ; ②广州 -> 郑州 -> 西安。
  • 数据链路层:若网络层选择了 广州 -> 郑州 -> 西安,这里就只负责  广州 -> 郑州 这一小部分。
  • 物理层:运输用 飞机?火车?火车?

6、封装和分用

   封装和分用是在网络传输中对数据的操作。因为分层的原因,所以每层只看得懂它负责的数据,而我们在实际传输时(在网线中),是整个数据进行传输的。因此要用到封装(快递打包)和分用(快递拆包)。

 (1)封装

   主要用在发送数据的过程中。

   假设现在要 QQ发送数据 (使用 TCP/IP 五层模型):   

   上图中,在主机上发送数据,就是从应用层开始,逐层进行封装的过程。

 (2)分用

   主要用在接收数据的过程中。

   以另一台主机接收 QQ 消息 为例:

 注意:在整个网络通信的过程中,还要经过交换机和路由器,经过时,也需要进行封装和分用。

唯一的区别是:

  • 交换机有两层:物理层、数据链路层
  • 路由器有三层:物理层、数据链路层、网络层

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Overleaf中Latex问题——控制文本分两列显示(分栏布局)

文章目录 需求描述相关介绍实现代码实现效果参考和总结 需求描述 要写论文,需要分两列进行显示文本。但是默认都是单列展示,并且自动换行。 需要实现一下的效果 相关介绍 在$LaTeX 中,你可以使用 中,你可以使用 中&#xff0c…

Tokenview上线BRC-20浏览器,支持Ordinals API数据服务

5月20日,Tokenview团队宣布正式推出BRC-20代币浏览器,同时支持BTC Ordinals API数据服务。作为通用多链区块链浏览器,Tokenview以最快的速度推出了BRC-20浏览器,Ordinals API旨在为所有面向比特币的普通用户和开发者提供数据支持&…

追寻篮球梦想 点燃希望之光 2023年海彼特全国幼儿篮球联赛·总决赛圆满落幕

5月21日,由北京海彼特教育科技院主办的“2023年海彼特全国幼儿篮球联赛总决赛”。在河北体育馆隆重举行,精彩的比赛效果使体育馆顿时成为幼儿篮球界最高端、大气的舞台。 本次盛会联合举办方有: 河北体育馆 亚洲少儿体育协会 北京海彼特文…

组件123456789

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

G企孵化-千趣生活项目,10年互联网经验专业策划商业模式

G企孵化-千趣生活项目,10年互联网经验专业策划商业模式 背景:现在许许多多的项目,首先对外呼吁的口号就是“上市”但真正能做到上市的企业,确实没有几个,10年互联网经验的微三云胡佳东,给大家详细聊聊&…

【卡尔曼滤波的学习,以及一些理解】

卡尔曼滤波的一些理解 优秀的博客推荐直观理解卡尔曼滤波核心算法举个例子 最近两个多月在实习,做的是GPS定位相关的一些工作,同时也简单做了一下组合导航。卡尔曼滤波是组合不同传感器比较核心的算法,应用也比较广泛,也有很多文章…

电子数据保全及数据恢复

目录 一.创建虚拟磁盘 系统操作 1.创建虚拟磁盘文件 2.完成低级格式化——分区——高级格式化 3.虚拟磁盘创建完成 用winhex做 2. 镜像: 克隆: 计算分区的hash值: 二.FAT32文件系统 1.认识FAT32文件系统 三.NTFS文件系统 认识NTFS文…

数字信号处理5

好长时间没有更新了,一是这段时间事情比较多,另外一个,我觉得抄书其实意义不大,不如先看书,一个章节看完之后,再写,那样子的话,会效果更好一些,所以我就花了一段时间去把…

chatgpt赋能Python-python_chia

简介:什么是Python Chia? Python Chia是一种加密货币,它的挖矿过程使用Python编程语言。Python Chia是开源的,任何人都可以参与挖矿。 Chia使用绿色挖矿的方式,这意味着Chia的挖矿过程对环境没有任何负面影响。此外&…

typeScript开发

typeScript开发 1.TypeScript简介2.TypeScript 安装3.TypeScript 基础语法3.TypeScript 基础类型4.TypeScript 变量声明5.TypeScript 运算符6.TypeScript 条件语句7.TypeScript 循环8.TypeScript 函数9.TypeScript Number10.TypeScript String(字符串)11…

使用github CICD 简单部署vue项目

1.首先先创建一个github访问地址,关于Github Pages的域名访问地址,在github上新建一个以域名为名称的仓库即可,一般都是githubname.github.io 2.首先创建vue项目,这里我就使用自己写的前端项目脚手架来创建vue项目 这里顺便把图标…

立创梁山派学习笔记——GPIO输入检测

按键检测 前言按键的硬件电路BOOT选择复位按键唤醒按键GPIO输入框图软件配置寄存器简介1.端口控制寄存器(GPIOx_CTL, xA..I)2.端口上拉/下拉寄存器(GPIOx_PUD, xA..I)3.端口输入状态寄存器(GPIOx_ISTAT, xA..I&#xf…

cs109-energy+哈佛大学能源探索项目 Part-2.2(Data Wrangling)

博主前期相关的博客见下: cs109-energy哈佛大学能源探索项目 Part-1(项目背景) cs109-energy哈佛大学能源探索项目 Part-2.1(Data Wrangling) 这次是将数据整理的部分讲完。 Data Wrangling 数据整理 Weather data 天…

chatgpt赋能Python-python_changeint

Python中changeint函数介绍:将浮点数转换为整数 Python是一种高级编程语言,众所周知,它非常强大且易于学习。在Python中,有一个很有用的函数,名为changeint,它可以将一个浮点数转换为整数。在本文中&#…

进程间通信—进程池设计

进程池设计 文章目录 进程池设计代码目的头文件 对子进程操作建立子进程对象并把子进程对象放进数组里建立子进程需要执行的任务表创建子进程和父进程通信的管道,并且让子进程阻塞读取对父进程操作回收子进程整体代码子进程具有读端未关闭的bug 代码目的 创建一个父…

【libdatachannel】1 :cmake+vs2022 构建

libdatachannel libdatachannel 是基于c++17实现的cmake 链接openssl 可以参考【libcurl 】win32 构建 Release版本 修改cmakelist 链接openssl1.1.*构建 OpenSSL 找不到 Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.22621. The CXX compiler identifi…

机试打卡 -01 字母异位词(滑动窗口)

算法小白的代码如下↓ class Solution(object):def findAnagrams(self, s, p):""":type s: str:type p: str:rtype: List[int]"""# 输出列表answer_list[]# p的长度p_lenlen(p)# 索引遍历s的子串for i in range(len(s)):# 最后一次循环if ip_le…

Python对大量表格文件加以数据截取、逐行求差、跨文件合并等处理的方法

本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,首先依据某一列数据的特征截取我们需要的数据,随后对截取出来的数据逐行求差,并基于其他多个文件夹中同样大量的Excel表格文件&#…

【NeRF】(一)NeRF论文学习笔记

文章目录 NeRF学习笔记1 实现过程1.1 相机参数:如何通过不同角度的照片得出输入数据1.2 MLP1.3 体积渲染及离散化1.4 优化点 NeRF学习笔记 概述: 重建:根据目前有的不同角度二维图片,重建三维物体。 用 MLP 网络学 Scene Represe…

《WEB安全漏洞30讲》(第5讲)任意文件上传漏洞

1.任意文件上传漏洞原理 文件上传漏洞,指攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意程序上传到服务器并获得执行服务器端命令的能力。 这个漏洞其实非常简单,就是攻击者给服务器上传了恶意的木马程序,然后利用此木马程序执行操作系统命令,从而获得服务器权…