计算机网络基础:2.TCP/IP模型中的各层协议、IP地址

一、TCP/IP模型中的各层协议

        接着第一篇餐厅运营的例子来解释一下TCP/IP五层模型中的每一层协议:

1. 应用层(餐饮一体机)

        在TCP/IP模型中,应用层直接与用户交互,提供网络服务。这一层将OSI模型的应用层(点餐应用)、表示层(菜单)和会话层(预订系统)合并为一个应用层。具体的协议包括:

  • HTTP/HTTPS:用于网页浏览(类似于菜单展示和在线点餐)。
  • FTP:用于文件传输(像是顾客点的外带订单)。
  • SMTP:用于电子邮件传输(如餐厅的电子订餐确认)。
  • DNS:用于域名解析(类似于将顾客的名字转换为餐桌号)。

2. 传输层(调度员)

        传输层负责端到端的通信服务,确保数据完整性和顺序,类似于厨房的调度员,确保每道菜按顾客要求顺序送达。主要协议包括:

  • TCP(Transmission Control Protocol):提供可靠的、有序的数据传输(确保每道菜按顺序送达)。
  • UDP(User Datagram Protocol):提供不可靠但快速的数据传输(类似于不按顺序但快速送出的快餐)。

3. 网络层(前台)

        网络层处理数据包的路由和转发,类似于餐厅的前台,负责接收订单并分发到正确的厨房区域。主要协议包括:

  • IP(Internet Protocol):负责数据包的路由和地址识别(类似于前台根据订单内容分发到相应的厨房)。
  • ICMP(Internet Control Message Protocol):用于网络故障检测和报告(比如餐厅前台报告食材短缺或服务异常)。

4. 数据链路层(服务员)

        数据链路层确保数据在物理链路上的可靠传输,类似于餐厅的服务员,负责将订单从顾客传递到厨房。主要协议包括:

  • Ethernet:常用的有线网络协议(有线点餐设备的传输方式)。
  • Wi-Fi:常用的无线网络协议(无线点餐设备的传输方式)。

5. 物理层(设施)

        物理层负责传输原始比特流,类似于餐厅的物理设施,如餐桌、椅子、厨房设备等。它涉及实际的硬件连接和信号传输,相关协议包括:

  • 光纤:高效的物理传输介质(类似于高效的物流系统)。
  • 铜线:常见的电信传输介质(类似于常见的餐厅设施)。

二、IP地址

(一)概念

        在TCP/IP模型中,IP(Internet Protocol)地址就是餐厅的餐桌编号。每个餐桌(设备)都有一个唯一的编号,这样服务员(数据链路层)和前台(网络层)就能准确地将订单(数据包)送到正确的位置。

  1. 唯一性:每个IP地址在全球范围内都是独一无二的,就像每个餐桌在餐厅中都有一个唯一的编号。这确保了每个设备(餐桌)都能被准确识别和定位。

  2. 分层结构:IP地址通常分为网络部分主机部分,类似于餐厅的区域编号和具体餐桌编号。例如,一个IP地址可能表示“东区-3号桌”,其中“东区”是网络部分,“3号桌”是主机部分。

  3. 路由和转发:前台(网络层)根据IP地址将订单(数据包)分发到正确的厨房区域(目标网络),然后再由服务员(数据链路层)送到具体的餐桌(目标设备)。

  4. 动态和静态:IP地址可以是动态分配的,类似于餐厅临时为顾客分配的餐桌;也可以是静态的,类似于餐厅中固定的VIP餐桌,总是为特定的顾客保留。

(二)分类

(1)IPv4与IPv6

        IPv4

        IPv4地址类似于较短的餐桌编号系统,只有32位二进制,约有42.28亿个地址,但实际可用的地址约为36.47亿。

        这种地址系统已经使用了很多年,但由于地址数量有限,逐渐枯竭,像一个有固定数量座位的餐厅,越来越多的顾客需要座位,导致座位不够用

        IPv6

        IPv6地址类似于一个非常大的餐桌编号系统,使用128位二进制,提供约3.4×10^38个地址,几乎可以分配给每一粒沙子一个编号,远超过IPv4的能力。

        这种新地址系统解决了地址不足的问题,为未来的网络扩展提供了足够的空间,类似于一个可以容纳无数顾客的大型餐厅,永远不会遇到座位不足的问题。

(2)公网IP与私有IP

        公网IP

        公网IP地址就像是餐厅的街道地址(例如:6.6.6.6),这意味着任何人都可以通过这个地址找到餐厅并访问它。这是一个全球唯一的地址,可以在广域网上直接使用。

        一个设备拥有公网IP地址,就能在全球互联网上被其他设备访问,就像餐厅有一个公共的街道地址,任何顾客都能找到并前往用餐。

        私有IP

        私有IP地址就像是餐厅内部的桌子编号(例如:192.168.0.1至192.168.0.5)。这些编号仅在餐厅内部使用,不能在餐厅外部直接找到这些编号对应的具体位置。

        在局域网(餐厅内部)中,每个设备(桌子)都有一个私有IP地址,用于内部通信。但这些私有IP地址不能直接在全球互联网上使用,就像外部顾客不能通过桌子编号直接找到餐厅里的具体桌子。

(三)查看

        点设置,打开网络连接,选择更改适配器选项,选择一个网卡,右键点属性,选择Internet 协议版本4(TCP/IPv4)或者下面的IPv6,双击点入即可查看IP地址,也可以自己手动设置。

        或者命令行(cmd):使用 ipconfig 命令快速查看。

(四)格式与子网掩码

        IP地址由四个十进制数字组成,每个数字范围在0到255之间,用点(.)分隔。例如:192.168.1.1。

  1. 网络部分:类似于餐厅的大致区域。例如,192.168.1.1中的“192.168”部分可以表示餐厅的东区。
  2. 主机部分:类似于餐厅的具体桌子编号。例如,192.168.1.1中的“1.1”部分可以表示东区的第1号桌子。

        子网掩码

        子网掩码就像是餐厅中的一个分区图,用来定义哪些桌子在同一个区域(网络)内,哪些在不同区域(网络)。

  1. 作用:子网掩码用于区分IP地址的网络部分和主机部分。它定义了哪些位是网络位,哪些位是主机位,用于区分同一网络内的设备。

  2. 格式:子网掩码通常表示为四个十进制数字,每个数字范围在0到255之间,用点(.)分隔。例如:255.255.255.0。

  3. 例子

    • 255.255.255.0:前24位为网络位(255),后8位为主机位(0)。
    • 255.255.0.0:前16位为网络位(255),后16位为主机位(0)。
  4. 功能:子网掩码确定了IP地址的网段,影响数据包的路由方式。它帮助路由器决定数据包应该发送到哪个网络区域,就像餐厅前台通过分区图决定订单应该送到哪个区域的桌子。

   假设有一个IP地址和子网掩码:

  • IP地址:192.168.1.10
  • 子网掩码:255.255.255.0

   计算过程

  1. IP地址和子网掩码的二进制表示

    • IP地址:192.168.1.10 转换成二进制是:11000000.10101000.00000001.00001010
    • 子网掩码:255.255.255.0 转换成二进制是:11111111.11111111.11111111.00000000
  2. 网络部分和主机部分的区分

    • 根据子网掩码,前24位是网络部分,后8位是主机部分。
    • 网络部分:11000000.10101000.00000001(192.168.1)
    • 主机部分:00001010(10)
  3. 网络地址

    • 通过将IP地址和子网掩码进行按位与操作(AND),得到网络地址:
      • 11000000.10101000.00000001.00001010
      • AND
      • 11111111.11111111.11111111.00000000
      • 结果是:11000000.10101000.00000001.00000000(192.168.1.0)
  4. 广播地址

    • 将子网掩码的主机部分全设为1,得到广播地址:
      • 11000000.10101000.00000001.00000000(网络地址)
      • OR
      • 00000000.00000000.00000000.11111111(子网掩码取反的主机部分)
      • 结果是:11000000.10101000.00000001.11111111(192.168.1.255)    

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

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

相关文章

colab进行keras入门随机数和标签的一点思考,例如shape和Dense等

keras官方中文文档 pip install kerasfrom keras import layers from keras import modelsmodel.add(layers.Dense(32,activationrelu,input_shape(100,)))# 添加多个Dense层 model.add(layers.Dense(10,activationsoftmax)) model.compile(optimizerrmsprop,losscategorical_…

pikachu之sql lnjet 字符型注入

先测试一下闭合 注释符号:-- 注释符号可以忽略其后的内容,使得后续的原始查询内容不会影响我们注入的SQL代码。 条件测试:通过and 11和and 12分别测试真假条件,可以判断输入是否成功闭合,并且可以检测注入是否成功。 …

Kotlin 协程 — 基础

Kotlin 协程 — 基础 协程已经存在一段时间了,关于它的各种文章也很多。但我发现想要了解它还比较费时,所以我花了一段时间才真正理解了协程的基础知识以及它的工作原理。因此,我想分享一些我理解到的内容。 什么是协程? 协程代表…

关于OLED的I2C手册记录

首先我们从淘宝上面找到对应OLED 4pin iic驱动的ssd1306手册,它有多种的驱动方式,我们只需要看看他这个i2c模式。 我们可以从中看到 Slave address R/W后面的#代表低电平是W。 SA0是它的一个 slave address bit 可以使用 这两个都可以作为OLED的 设备…

分布式事务与Seata落地

分布式事务与Seata落地 一、事务基础 1.1 本地事务 事务指的就是一个操作单元, 在这个操作单元中的所有操作最终要保持一致的行为, 要么所有操作都成功, 要么所有的操作都被撤销。 1.2 本地事务特性 本地事务四大特性: ACID A: 原子性(Atomicity), 一个事务中的所有操作, …

如何通过一条SQL变更多个分库分表?

数据库发展到今天,分库分表已经不是什么新鲜话题了,传统的单节点数据库架构在数据量和访问频次达到一定规模时,会出现性能瓶颈和扩展性问题,而分库分表技术通过将数据分散到多个数据库实例中来分担负载,从而提升系统的…

数字信号||离散序列的基本运算(2)

实验二 离散序列的基本运算 一、实验目的 (1)进一步了解离散时间序列时域的基本运算。 (2)了解MATLAB语言进行离散序列运算的常用函数,掌握离散序列运算程序的编写方法。 二、实验涉及的MATLAB子函数 1.find 功能:寻找非零元素的索引号。 调用格…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值(PrefVal),如果 PrefVal相同,就会比较本…

Linux_权限3

Linux所对应的文件类型 1.在Win下,有文件类型,通常通过后缀标识 日常用的就是windows系统这里不做举例. 2.Linux的文件类型不通过后缀区分(不代表Linux不用后缀) 其中需要注意的是第一个字符表示文件类型的含义 - :普通文件, 文本, 源代码…

解决:uniapp 小程序 使用swiper 内部嵌套另外一个拥有左右滑动组件导致滑动冲突

解决办法 在swiper-item 内增加这个属性进行包裹 touchmove.stop <div touchmove.stop><qiun-data-charts type"area" :opts"optsStg" :chartData"dateDataStg" /> </div>

嘉立创|如何在原理图中框选任意元件

点击编辑—选择对象—对边形内部 便可以任意框选 选中之后&#xff0c;进入pcb板界面也选中了相同器件

使用kali对操作系统和网络服务类型进行探测

1&#xff0e;在Kali终端中输入命令“nmap –sS –n -O 192.168.2.2”&#xff0c;探测目标主机的操作系统类型 2&#xff0e; 在Kali终端中输入命令“nmap –sV -n 192.168.2.2”&#xff0c;探测目标主机开启的网络服务类型 3.在Kali终端中输入命令“nmap –A -n 192.168.2.2…

Linux中的System V通信标准--共享内存、消息队列以及信号量

关于 System V 标准&#xff0c;一共有三种通信方式&#xff0c;分别为&#xff1a;共享内存、信号量和消息队列三种通信方式。本篇将较为详细的讲解三种通信方式的实现原理&#xff0c;以及介绍在 Linux 系统下调用这三种的通信方式的接口&#xff0c;其中以共享内存为例&…

.netcore TSC打印机打印

此文章给出两种打印案例&#xff0c; 第一种是单列打印&#xff0c;第二种是双列打印 需要注意打印机名称的设置&#xff0c;程序中使用的打印机名称为999&#xff0c;电脑中安装打印机时名称也要为999。 以下是我在使用过程中总结的一些问题&#xff1a; 一 TSC打印机使用使…

【区块链+绿色低碳】巴中市生态价值核算创新应用 | FISCO BCOS应用案例

生态产品总值&#xff08;GEP&#xff09;&#xff0c;指一定区域生态系统为人类福祉和经济社会可持续发展提供的产品与服务价值总和&#xff0c;包 括供给产品价值、调节服务价值和文化服务价值。当前&#xff0c;推动生态产品价值有效转化存在“难度量、难抵押、难交易、 难变…

【机器学习算法基础】(基础机器学习课程)-08-决策树和随机森林-笔记

一、决策树之信息论基础 决策树是一种用来做决策的工具&#xff0c;就像我们生活中的选择树。例如&#xff0c;你在选择今天穿什么衣服时&#xff0c;会根据天气情况、出行活动等进行判断。决策树的构建过程涉及一些信息论的概念&#xff0c;用来衡量和选择最好的“分叉点”来进…

Adobe Dimension(DN)安装包软件下载

目录 一、软件简介 二、软件下载 三、注意事项 四、软件功能 五、常用快捷键 快捷键&#xff1a; 一、软件简介 Adobe Dimension&#xff08;简称DN&#xff09;是Adobe公司推出的一款三维设计和渲染软件。与一般的3D绘图软件相比&#xff0c;DN在操作界面和功能上有所不…

Spark实时(一):StructuredStreaming 介绍

文章目录 StructuredStreaming 介绍 一、SparkStreaming实时数据处理痛点 1、复杂的编程模式 2、SparkStreaming处理实时数据只支持Processing Time 3、微批处理&#xff0c;延迟高 4、精准消费一次问题 二、StructuredStreaming概述 三、​​​​​​​​​​​​​​…

python使用 tkinter 生成随机颜色

先看效果: 只要不停点击底部的按钮&#xff0c;每次都会生成新的颜色。炫酷啊。 import random import tkinter import tkinter.messagebox from tkinter import Button# todo """ 1. 设置一个按钮&#xff0c;来让用户选择是否显示颜色值 2. 把按钮换成 Label…

《白话机器学习的数学》第2章——学习回归

2.1设置问题 1.机器学习所做的事情正是从数据中进行学习&#xff0c;然后给出预测值。 2.2定义模型 1.一次函数的表达式&#xff1a; 其中θ叫做参数。 在统计学领域&#xff0c;人们常常使用 θ 来表示未知数和推测值。采用 θ加数字下标的形式&#xff0c;是为了防止当未知数…