计算机网络基础: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.rhkb.cn/news/384894.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Keras入门:一维线性回归问题

目录 一、一维变量线性回归 1. 数据生成 2. 建立训练模型 3. 作图 4. 完整代码 一、一维变量线性回归 1. 数据生成 import keras import numpy as np import matplotlib.pyplot as plt #matplotlib inline xnp.linspace(0, 100, 30) #0~100之间,生成30个数 y…

前端 SSE 长连接

使用 const options {withCredentials: true, // 默认 false}const eventSource new EventSource(/api, options);eventSource.addEventListener(open, () > {});eventSource.onmessage (event) > {}; // 或addEventListener(message,callback)eventSource.addEvent…

AV1技术学习:Transform Coding

对预测残差进行变换编码,去除潜在的空间相关性。VP9 采用统一的变换块大小设计,编码块中的所有的块共享相同的变换大小。VP9 支持 4 4、8 8、16 16、32 32 四种正方形变换大小。根据预测模式选择由一维离散余弦变换 (DCT) 和非对称离散正弦变换 (ADS…

董宇辉离职,我一点都不意外!只不过感觉来的太快

下面这张图,是我在半年多前写的一段随笔,没想到来的这么快! 碰巧的是今天中午,在开发者群里有两位老铁自曝,本以为能公司干到老,但公司却不给机会,已经不在是公司员工了。 最近,晓衡…

Axious的请求与响应

Axious的请求与响应 1.什么是Axious Axious是一个开源的可以用在浏览器和Node.js的异步通信框架,它的主要作用就是实现AJAX异步通信,其功能特点如下: 从浏览器中创建XMLHttpRequests ~从node.js创建Http请求 支持PromiseAPI 拦截请求和…

多表查询的内连接与外连接

目录 1. 内连接 1.1 概述 1.2 等值连接 1.3 非等值连接 1.4 自连接 2. 外连接 2.1 概述 2.2 左/右连接 2.3 全连接 3. 多张表连接 1. 内连接 1.1 概述 查询满足条件的两张表数据,也就是两张表的交集; 内连接使用过程中,尽量对表重…

【杰理蓝牙开发】AC695x 音频部分

本文主要记录 杰理蓝牙audio接口的使用,包括ADC和DAC原理的介绍和API接口的使用。 【杰理蓝牙开发】AC695x 音频部分 0. 个人简介 && 授权须知1. ADC【音频数据采集】硬件部分1.1 单片机引脚1.2 硬件电路设计1.3 MIC 输入通路解释 2. 【DAC】音频信号编解码…

Springboot项目的行为验证码AJ-Captcha(源码解读)

目录 前言1. 复用验证码2. 源码解读2.1 先走DefaultCaptchaServiceImpl类2.2 核心ClickWordCaptchaServiceImpl类 3. 具体使用 前言 对于Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目…

夯实数字经济的“新基建”-基于大数据与区块链技术的新型基础设施

随着我国数据市场的蓬勃发展,构建契合数据特性、加速数据流通与价值释放的新型数据基础设施变得尤为关键。数字基础设施作为数字经济蓬勃发展的基石,其完善与否直接关系到数据能否有效存储、顺畅流通及高效利用,进而促进数据资源向数据资产的…

33.【C语言】实践扫雷游戏

预备知识: 第13篇 一维数组 第13.5篇 二维数组 第28篇 库函数 第29篇 自定义函数 第30篇 函数补充 0x1游戏的运行: 1.随机布置雷 2.排雷 基本规则: 点开一个格子后,显示1,对于9*9,代表以1为中心的去…

nginx转发netty长链接(nginx负载tcp长链接配置)

首先要清楚一点,netty是长链接是tcp连接不同于http中负载在http中配置server监听。长连接需要开启nginx的stream模块(和http是并列关系) 安装nginx时注意开启stream,编译时加上参数 --with-stream (其他参数根据自己所需来加) …

网闸(Network Gatekeeper或Security Gateway)

本心、输入输出、结果 文章目录 网闸(Network Gatekeeper或Security Gateway)前言网闸主要功能网闸工作原理网闸使用场景网闸网闸(Network Gatekeeper或Security Gateway) 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 如果觉得本文对你有帮助…

嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化:智能物流管理系统设计思路流程(附代码示例)

目录 项目概述 系统设计 硬件设计 软件设计 系统架构图 代码实现 1. STM32微控制器与传感器代码 代码讲解 2. MQTT Broker设置 3. 数据接收与处理 代码讲解 4. 数据存储与分析 5. 数据分析与可视化 代码讲解 6. 数据可视化 项目总结 项目概述 随着电子商务的快…

Opencv学习项目4——手部跟踪

上一篇博客我们介绍了mediapipe库和对手部进行了检测,这次我们进行手部关键点的连线 代码实现 import cv2 import mediapipe as mpcap cv2.VideoCapture(1) mpHands mp.solutions.hands hands mpHands.Hands() mpDraw mp.solutions.drawing_utilswhile True:…

粗解React 和 Vue 的异同

相同点: 1、都使用虚拟 DOM【Virtural DOM】 Vue与React都使用了 Virtual DOM Diff算法, 不管是Vue的Template模板options api 写法, 还是React的Class或者Function写法,最后都是生成render函数,而render函数执行返回VNode(虚拟…

HBuilder X中配置vue-cli项目和UI库

目录 一.前端项目结构 二.在HBuilder X中搭建vue-cli项目 1. 安装node.js前端环境 2. HBuilder X创建一个vue-cli项目 3. vue-cli项目结构 4. 如何运行前端项目 5. 创建组件 6. 组件路由(页面跳转) 6.1 创建router目录 6.2 使用路由 6.3 在main.js中配置路由 6.4 路…

音频剪辑里的几种基础操作

音频对于视频的重要性,怎么强调都不为过,它在视频里扮演着举足轻重的角色,对观众有着极为深远的影响。下面为您阐述音频在视频中的关键意义: ① 情感传递:音频有强大的情感传达能力,借助声音的起伏变化、音…

Ansible之playbook剧本编写(二)

tags 模块 可以在一个playbook中为某个或某些任务定义“标签”,在执行此playbook时通过ansible-playbook命令使用--tags选项能实现仅运行指定的tasks。 playbook还提供了一个特殊的tags为always。作用就是当使用always作为tags的task时,无论执行哪一个t…

java基础概念05-运算符

一、自增自减运算符 二、赋值运算符 2-1、注意 三、关系运算符 四、逻辑运算符 4-1、短路逻辑运算符 五、三元运算符 六、运算符的优先级

想要连接稳定的远程控软件吗?这4款软件不要错过

远程控制电脑是一种现代社会高效便捷的办公方式。这种方式可以不论时间不论地点都可以调用到办公电脑里的文件,如果你办公也有这个需求,那就看看我介绍的工具吧。 1.RL远程控制 直通车>>https://www.raylink.live 这个软件非常适合用来进行手机…