计算机网络_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),如果我们需要在WHERE子句中规定多个值呢?这时我们将学习IN操作符 一、功能描述: 在WHERE子句中规定多个值。 二、IN操作符语法详解: IN操作符语法: SELECT col…...
Java基础(第一期):IDEA的下载和安装(步骤图) 项目结构的介绍 项目、模块、类的创建。第一个代码的实现
Java基础专栏: Java基础第一期下一期:Java基础第二期 文章目录 IDEA1.1 IDEA概述1.2 IDEA的下载和安装1.2.1 下载1.2.2 安装 1.3 IDEA中层级结构介绍1.3.1 结构分类1.3.2 结构介绍project(项目、工程)module(模块&…...
0基础学习PyFlink——使用PyFlink的SQL进行字数统计
在《0基础学习PyFlink——Map和Reduce函数处理单词统计》和《0基础学习PyFlink——模拟Hadoop流程》这两篇文章中,我们使用了Python基础函数实现了字(符)统计的功能。这篇我们将切入PyFlink,使用这个框架实现字数统计功能。 PyFl…...
【Java系列】ArrayList
ArrayList 添加元素访问元素修改元素删除元素计算大小迭代数组列表其他的引用类型ArrayList 排序Java ArrayList 方法系列文章系列文章版本记录 引言 ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删…...
sqlalchemy 使用
Python中强大的通用ORM框架:SQLAlchemy - 知乎...
Python深度学习实战-基于class类搭建BP神经网络实现分类任务(附源码和实现效果)
实现功能 上篇文章介绍了用Squential搭建BP神经网络,Squential可以搭建出上层输出就是下层输入的顺序神经网络结构,无法搭出一些带有跳连的非顺序网络结构,这个时候我们可以选择类class搭建封装神经网络结构。 第一步:import ten…...
GIS 数据结构整理:网格索引
1 一维网格索引 把整个数据库数值空间划分成n*n的正方形网格,建立另一个倒排文件——栅格索引每一个网格在栅格索引中有一个索引条目(记录),在这个记录中登记所有位于或穿过该网格的物体的关键字 1.1 变长指针法 在这个网格的物体,按照序号…...
【打靶】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(消息代理服务)&…...
2023 年 的 DBA 有哪些变化?
作者:Craig S. Mullins 数据库专家,IBM 优化冠军,DB2 金牌顾问以及 IDUG 名人堂成员,数据库类畅销书作者,著有《DB2 Developers Guide》、《Database Administration: The Complete Guide to DBA Practices & Pro…...
vs2022 使用git同步报错以及解决每次推送要输入密码问题
1.使用 git GUI工具,例如:TortoiseGit ,把全局配置文件这样设置一下 设置全局.config ,这样即可。 [credential] helper store 2.如果推送代码或拉取代码一直失败,在当前的仓库下面,使用以下命令来重置一下密码 git …...
有哪些适用于 Windows 的PDF 阅读器?免费 PDF 阅读器清单
探索适用于 Windows 10 和 11 的最佳 PDF 阅读器 适用于 Windows 10 和 Windows 11 的最佳 PDF 阅读器让您可以在台式计算机上查看和共享文档。 最好的PDF 编辑器和免费的 PDF 编辑器配备了先进的工具,可以跨不同的操作系统工作。但是,当您只需要查看和…...
避雷!新增2本期刊被标记为「On Hold」,1区TOP刊仍在调查中!
近期小编在Master Journal List上查询期刊时偶然发现,又有2本期刊被科睿唯安标记为「On Hold」! 这2本期刊分别为MIGRATION LETTERS和REVISTA DE GESTAO E SECRETARIADO-GESEC. 此外还有6本期刊被标记为「On Hold」,目前共计8本期刊被「On …...
iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App
目录 一、什么是 Universal Link? 1.背景介绍 2.特点 3.运行机制原理&流程图 二、配置教程 1.第一步:开启 Associated Domains 服务 1.1 开通 Associated Domains 2.第二步:服务器配置 apple-app-site-association(AAS…...
【环境】Linux下Anaconda/ Miniconda安装+百度Paddle环境搭建+Cudnn(3090显卡+CUDA11.8+cudnn8.6.0)
清华源帮助链接:https://mirror.tuna.tsinghua.edu.cn/help/anaconda/ 下载链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 其他深度学习环境相关博文:【stable-diffusion】4090显卡下dreambooth、lora、sd模型微调的GUI环境…...
【Python机器学习】零基础掌握AdaBoostRegressor集成学习
有没有经历过这样的状况:需要预测未来房价走势,但传统的预测方法并不总是准确? 房价预测一直是人们关注的热点话题,无论是房产商、购房者,还是政府,都需要准确地知道未来房价的走势。那么,有没有一种更加精准、稳定的预测方法呢?答案是有的——AdaBoost Regressor算法…...
各种添加路由的方法
Linux 篇: 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.多对多关系 (1)建表会遇到的问题 (2)解决循环建表的问题 5.一对一关系、 6.小结 二.多表查询 1.数据准备 2.多表查询案例 (1)…...
自制数据库迁移工具-C版-02-HappySunshineV1.1-(支持Gbase8a)
目录 一、环境信息 二、简述 三、升级点 四、支持功能 五、安装包下载地址 六、配置参数介绍 七、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 4、修改配置文件MigrationConfig.txt 八、运行效果 一、环境信息 名称值CPUIntel(R) Core(TM) i…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
