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

计算机网络_03_tcp/ip四层模型

文章目录

  • 1.为什么会有tcp/ip?
  • 2.tcp/ip是什么?
  • 3.为什么会有tcp/ip四层模型?
  • 4.tcp/ip四层模型介绍

1.为什么会有tcp/ip?

早期的计算机(计算机网络没有出现之前)几乎都是各自为战, 各种操作系统厂家百花齐放, 市面上的大部分计算机使用的都是不同的操作系统, 为每个人提供定制化的服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别的,就好像圣经中上帝打乱了各地人的口音, 让他们无法合作一样.计算机使用者意识到, 计算机只是单兵作战并不会发挥太大的作用. 只有把它们联合起来, 电脑才会发挥出它最大的潜力.

20世纪60年代早期, 人们就想方设法的用电线把电脑连接到了一起,于是最早的计算机网络出现了,将一台计算机经过通信线路与若干台终端直接连接(远程终端连接), 用户通过本地的终端使用远程的主机, 当然这也只是单台计算机为多个终端提供服务罢了, 并没有实现计算机之间的相连.

20世纪60年代中期来到了计算机网络阶段一一局域网出现, 实现了多个主机互联, 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。

因此他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生. TCP/IP不是一个协议,而是一个协议族的统称, 包含了应用层到网络接口层的各个协议, 电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了, 从而实现计算机和计算机之间的通信.

2.tcp/ip是什么?

TCP/IP不是一个协议,而是一个协议族的统称,是基于tcp和ip这两个最初的协议之上的不同通信协议的大集合,该集合包含了应用层到网络接口层的各个协议,是一个协议群.
在这里插入图片描述

3.为什么会有tcp/ip四层模型?

主要是OSI 的七层体系结构太复杂而且不实用,有些功能在多个层中重复出现。tcp/ip可以看作是七层模型的精简版.
在这里插入图片描述

在这里插入图片描述

4.tcp/ip四层模型介绍

1.四层模型介绍

在这里插入图片描述

应用层:计算机用户能够直观感受到的各种软件提供的便捷服务就是位于应用层这一概 念层上的,应用层软件使用各种应用层协议来完成信息在网络上的传递. 主要为计算机用户提供直观的服务,管理应用程序之间的会话,实现数据的解压缩/加解密/编解码.(这一层的数据封装成为报文)

传输层:提供应用程序间的通信, 定义传输数据的端口号,保证数据抵达计算机后能够找到正确的应用程序(数据进一步封装成为段)

网络层: 负责计算机间的通信,保证数据从网卡出去进入到网络世界后能够经过各种网络节点找到对应ip的计算机(数据更近一步封装成为包)

网络接口层: tcp/ip的最底层,负责将包<===>帧<===>比特流, 通过各种链路让数据在网络上流转,为网络层提供服务. (数据更近一步封装成为帧和流)

报文/数据段/数据包/数据帧其实都是对数据的统称,只不过因为所在层次不同所以起了不同的名字.

总结:

  • 应用层的主要作用是为用户提供直观的服务
  • 传输层的主要作用是为两台主机之上的应用程序提供通用的数据传输服务
  • 网络层的主要作用是在网络上为数据提供路由和寻址,保证数据能从这端计算机到另一端计算机一一端到端的服务
  • 网络接口层的主要作用是提供帧编码/误差纠正控制/透明的比特流传输,保证数据能够在网络层正常传输.

2.网络通信流程

在这里插入图片描述
用网购来模拟整个通信过程:
你买东西付完款之后就相当于两个应用程序准备通信,卖家是程序A1,你是程序A2,买的东西相当于计算机要提供的应用层服务,卖家客服让你确认地址并对东西打包写上收货地址交到闪电侠的过程中,让你确认地址和写上收货地址的过程相当于建立可靠连接与封装传输层报文的过程即当东西到收货地时告诉收货地(计算机)当前物品(数据)属于哪一个买家(程序).闪电侠收到快递后开始抱着快递跑,闪电侠抱着快递相当于网络层封装ip报文,相当于在网络层传输,闪电侠到潍坊中转部停一下看往哪里跑(以前网购的看到物品在离我很近的地方不动了就很烦为什么不直接送到临近的区和市还要拐一下到中转,很烦),找到后跑到萧山中转部停一下再看往哪里跑,最后跑到滨江东部将东西交到收货地(计算机),收货地根据东西上的地址(传输层报文上的端口)找到具体的人(程序),各个中转部相当于网络节点.这就是通信的大概过程,当然闪电侠如果开车的话,东西+闪电侠+车就相当于网络接口层的帧和比特流的封装.(我想闪电侠是不用开车的!!!)


参考:
TCP协议详解
TCP/IP协议详解
太棒了!TCP/IP协议
OSI七层模型、TCP/IP四层模型

相关文章:

计算机网络_03_tcp/ip四层模型

文章目录 1.为什么会有tcp/ip?2.tcp/ip是什么?3.为什么会有tcp/ip四层模型?4.tcp/ip四层模型介绍 1.为什么会有tcp/ip? 早期的计算机(计算机网络没有出现之前)几乎都是各自为战, 各种操作系统厂家百花齐放, 市面上的大部分计算机使用的都是不同的操作系统, 为每个人提供定…...

[SQL开发笔记]IN操作符: 在WHERE子句中规定多个值

上一实例我们在where子句使用(year2022 or year2020)&#xff0c;如果我们需要在WHERE子句中规定多个值呢&#xff1f;这时我们将学习IN操作符 一、功能描述&#xff1a; 在WHERE子句中规定多个值。 二、IN操作符语法详解&#xff1a; IN操作符语法&#xff1a; SELECT col…...

Java基础(第一期):IDEA的下载和安装(步骤图) 项目结构的介绍 项目、模块、类的创建。第一个代码的实现

Java基础专栏&#xff1a; Java基础第一期下一期&#xff1a;Java基础第二期 文章目录 IDEA1.1 IDEA概述1.2 IDEA的下载和安装1.2.1 下载1.2.2 安装 1.3 IDEA中层级结构介绍1.3.1 结构分类1.3.2 结构介绍project&#xff08;项目、工程&#xff09;module&#xff08;模块&…...

0基础学习PyFlink——使用PyFlink的SQL进行字数统计

在《0基础学习PyFlink——Map和Reduce函数处理单词统计》和《0基础学习PyFlink——模拟Hadoop流程》这两篇文章中&#xff0c;我们使用了Python基础函数实现了字&#xff08;符&#xff09;统计的功能。这篇我们将切入PyFlink&#xff0c;使用这个框架实现字数统计功能。 PyFl…...

【Java系列】ArrayList

ArrayList 添加元素访问元素修改元素删除元素计算大小迭代数组列表其他的引用类型ArrayList 排序Java ArrayList 方法系列文章系列文章版本记录 引言 ArrayList 类是一个可以动态修改的数组&#xff0c;与普通数组的区别就是它是没有固定大小的限制&#xff0c;我们可以添加或删…...

sqlalchemy 使用

Python中强大的通用ORM框架&#xff1a;SQLAlchemy - 知乎...

Python深度学习实战-基于class类搭建BP神经网络实现分类任务(附源码和实现效果)

实现功能 上篇文章介绍了用Squential搭建BP神经网络&#xff0c;Squential可以搭建出上层输出就是下层输入的顺序神经网络结构&#xff0c;无法搭出一些带有跳连的非顺序网络结构&#xff0c;这个时候我们可以选择类class搭建封装神经网络结构。 第一步&#xff1a;import ten…...

GIS 数据结构整理:网格索引

1 一维网格索引 把整个数据库数值空间划分成n*n的正方形网格&#xff0c;建立另一个倒排文件——栅格索引每一个网格在栅格索引中有一个索引条目(记录)&#xff0c;在这个记录中登记所有位于或穿过该网格的物体的关键字 1.1 变长指针法 在这个网格的物体&#xff0c;按照序号…...

【打靶】vulhub打靶系列(一)—小白视野的渗透测试

主机探测 arpscan arp-scan -l 另一种方法arping for i in $(seq 1 200); do sudo arping -c 1 192.168.56.$i; done 注意这个必须是root权限 ​ 端口探测 nmap nmap -p- -sV -T4 192.168.56.104 发现8080端口 web测试 访问下web页面 1、通过逻辑点绕过 发送到xia_sq…...

kafka3.X集群安装(不使用zookeeper)

参考: 【kafka专栏】不用zookeeper怎么安装kafka集群-最新kafka3.0版本 一、kafka集群实例角色规划 在本专栏的之前的一篇文章《kafka3种zk的替代方案》已经为大家介绍过在kafka3.0种已经可以将zookeeper去掉。 上图中黑色代表broker&#xff08;消息代理服务&#xff09;&…...

2023 年 的 DBA 有哪些变化?

作者&#xff1a;Craig S. Mullins 数据库专家&#xff0c;IBM 优化冠军&#xff0c;DB2 金牌顾问以及 IDUG 名人堂成员&#xff0c;数据库类畅销书作者&#xff0c;著有《DB2 Developers Guide》、《Database Administration: The Complete Guide to DBA Practices & Pro…...

vs2022 使用git同步报错以及解决每次推送要输入密码问题

1.使用 git GUI工具&#xff0c;例如&#xff1a;TortoiseGit &#xff0c;把全局配置文件这样设置一下 设置全局.config ,这样即可。 [credential] helper store 2.如果推送代码或拉取代码一直失败&#xff0c;在当前的仓库下面&#xff0c;使用以下命令来重置一下密码 git …...

有哪些适用于 Windows 的PDF 阅读器?免费 PDF 阅读器清单

探索适用于 Windows 10 和 11 的最佳 PDF 阅读器 适用于 Windows 10 和 Windows 11 的最佳 PDF 阅读器让您可以在台式计算机上查看和共享文档。 最好的PDF 编辑器和免费的 PDF 编辑器配备了先进的工具&#xff0c;可以跨不同的操作系统工作。但是&#xff0c;当您只需要查看和…...

避雷!新增2本期刊被标记为「On Hold」,1区TOP刊仍在调查中!

近期小编在Master Journal List上查询期刊时偶然发现&#xff0c;又有2本期刊被科睿唯安标记为「On Hold」&#xff01; 这2本期刊分别为MIGRATION LETTERS和REVISTA DE GESTAO E SECRETARIADO-GESEC. 此外还有6本期刊被标记为「On Hold」&#xff0c;目前共计8本期刊被「On …...

iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App

目录 一、什么是 Universal Link&#xff1f; 1.背景介绍 2.特点 3.运行机制原理&流程图 二、配置教程 1.第一步&#xff1a;开启 Associated Domains 服务 1.1 开通 Associated Domains 2.第二步&#xff1a;服务器配置 apple-app-site-association&#xff08;AAS…...

【环境】Linux下Anaconda/ Miniconda安装+百度Paddle环境搭建+Cudnn(3090显卡+CUDA11.8+cudnn8.6.0)

清华源帮助链接&#xff1a;https://mirror.tuna.tsinghua.edu.cn/help/anaconda/ 下载链接&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 其他深度学习环境相关博文&#xff1a;【stable-diffusion】4090显卡下dreambooth、lora、sd模型微调的GUI环境…...

【Python机器学习】零基础掌握AdaBoostRegressor集成学习

有没有经历过这样的状况:需要预测未来房价走势,但传统的预测方法并不总是准确? 房价预测一直是人们关注的热点话题,无论是房产商、购房者,还是政府,都需要准确地知道未来房价的走势。那么,有没有一种更加精准、稳定的预测方法呢?答案是有的——AdaBoost Regressor算法…...

各种添加路由的方法

Linux 篇&#xff1a; ipv4: #添加到主机的路由 # route add –host 192.168.168.110 dev eth0 # route add –host 192.168.168.119 gw 192.168.168.1 #添加到网络的路由 # route add –net IP netmask MASK eth0 # route add –net IP netmask MASK gw IP # route add –n…...

MySQL外键

目录 一.外键 1.表与表之间建立关系 2.什么是外键 3.一对多关系 4.多对多关系 &#xff08;1&#xff09;建表会遇到的问题 &#xff08;2&#xff09;解决循环建表的问题 5.一对一关系、 6.小结 二.多表查询 1.数据准备 2.多表查询案例 &#xff08;1&#xff09;…...

自制数据库迁移工具-C版-02-HappySunshineV1.1-(支持Gbase8a)

目录 一、环境信息 二、简述 三、升级点 四、支持功能 五、安装包下载地址 六、配置参数介绍 七、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 4、修改配置文件MigrationConfig.txt 八、运行效果 一、环境信息 名称值CPUIntel(R) Core(TM) i…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...