计算机网络_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…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
