网络协议【图解TCP/IP(笔记二)】

news2024/11/16 23:53:45

文章目录

    • 网络协议
      • 随处可见的协议
      • 协议的必要性
      • 生活中的协议
      • 计算机中的协议
      • 分组交换协议
      • 协议的标准化

网络协议

随处可见的协议

在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。而LAN(局域网)中常用的协议有IPX/SPX(Novell公司开发的NetWare系统的协议。) 等。

“计算机网络体系结构”将这些网络协议进行了系统的归纳。TCP/IP就是IP、TCP、HTTP等协议的集合。现在,很多设备都支持TCP/IP。除此之外,还有很多其他类型的网络体系结构。例如,Novell公司的IPX/SPX、苹果公司的AppleTalk(仅限苹果公司计算机使用)、IBM公司开发的用于构建大规模网络的SNA(System Network Architecture) 以及前DEC公司(1998年被收购。) 开发的DECnet等。
请添加图片描述

协议的必要性

简单来说,协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果所使用的协议不同,就无法实现通信。这就好比两个人使用不同国家的语言说话,怎么也无法相互理解。协议可以分为很多种,每一种协议都明确地界定了它的行为规范。两台计算机之间必须能够支持相同的协议,并遵循相同协议进行处理,这样才能实现相互通信。

生活中的协议

在此举一个简单的例子。有三个人A、B、C。A只会说汉语、B只会说英语、而C既会说汉语又会说英语。现在A与B要聊天,他们之间该如何沟通呢?若A与C要聊天,又会怎样?这时如果我们:

  • 将汉语和英语当作“协议”
  • 将聊天当作“通信”
  • 将说话的内容当作“数据”

那么A与B之间由于各持一种语言,恐怕说多久也无法交流。因为他们之间的谈话所用的协议(语言)不同,双方都无法将数据(所说的话)传递给对方(若两人之间有个同声翻译,就能够顺利沟通了。在网络环境中,网关就起着这种翻译作用。) 。

接下来,我们分析A与C之间聊天的情况。两人都用汉语这个“协议”就能理解对方所要表达的具体含义了。也就是说A与C为了顺利沟通,采用同一种协议,使得他们之间能够传递所期望的数据(想要说给对方的话)。

如此看来,协议如同人们平常说话所用的语言。虽然语言是人类才具有的特性,但计算机与计算机之间通过网络进行通信时,也可以认为是依据类似于人类“语言”实现了相互通信(与之相似,我们在日常生活中理所当然的一些行为,很多情况下都与“协议”这一概念不谋而合。) 。请添加图片描述

计算机中的协议

计算机从物理连接层面到应用程序的软件层面,各个组件都必须严格遵循着事先达成的约定才能实现真正的通信。此外,每个计算机还必须装有实现通信最基本功能的程序。如果将前面例子中提到的A、B与C替换到计算机中,就不难理解为什么需要明确定义协议,为什么要遵循既定的协议来设计软件和制造计算机硬件了。

人们平常说话时根本不需要特别注意就能顺其自然地吐字、发音。并且在很多场合,人类能够根据对方的语义、声音或表情,合理地调整自己的表达方式和所要传达的内容,从而避免给对方造成误解。甚至有时在谈话过程中如果不小心漏掉几个词,也能从谈话的语境和上下文中猜出对方所要表达的大体意思,不至于影响自己的理解。然而计算机做不到这一点。因此,在设计计算机程序与硬件时,要充分考虑通信过程中可能会遇到的各种异常以及对异常的处理。在实际遇到问题时,正在通信的计算机之间也必须具备相应的设备和程序以应对异常。

在计算机通信中,事先达成一个详细的约定,并遵循这一约定进行处理尤为重要。这种约定其实就是“协议”。请添加图片描述

分组交换协议

分组交换是指将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。这里所说的包,如同我们平常在邮局里见到的邮包。分组交换就是将大数据分装为一个个这样的邮包交给对方。
请添加图片描述
一个较大的数据被分为多个分组时,为了标明是原始数据中的哪一部分,就有必要将分组的序号写入包中。接收端会根据这个序号,再将每个分组按照序号重新装配为原始数据。

通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等。为了双方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义和解释。

协议的标准化

为了解决各家厂商的各种网络体系结构、各种协议之间并不相互兼容。即使是从物理层面上连接了两台异构的计算机,由于它们之间采用的网络体系结构不同,支持的协议不同,仍然无法实现正常的通信。

ISO(International Organization for Standards,国际标准化组织。) 制定了一个国际标准OSI(Open Systems Interconnection,开放式通信系统互联参考模型。) ,对通信系统进行了标准化。OSI协议设计之初作为其指导方针的OSI参考模型却常被用于网络协议的制定当中。

值得注意的是TCP/IP并非ISO所制定的某种国际标准。而是由IETF(Internet Engineering Task Force) 所建议的、致力于推进其标准化作业的一种协议。在当时,大学等研究机构和计算机行业作为中心力量,推动了TCP/IP的标准化进程。TCP/IP作为互联网之上的一种标准,也作为业界标准(非国家或国际机构等公共机构所制定的标准,但属于业界公认的标准。) ,俨然已成为全世界所广泛应用的通信协议。那些支持互联网的设备及软件,也正着力遵循由IETF标准化的TCP/IP协议。

协议得以标准化也使所有遵循标准协议的设备不再因计算机硬件或操作系统的差异而无法通信。因此,协议的标准化也推动了计算机网络的普及。

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

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

相关文章

企业元宇宙虚拟场景开发公司广州华锐互动

元宇宙是一个虚拟的世界,可以模拟现实世界中的场景和交互方式。利用元宇宙搭建线上元宇宙互动展厅可以让企业在虚拟环境中展示产品、服务和品牌形象,与客户进行互动交流,提高企业的知名度和影响力。 通过搭建线上元宇宙互动展厅,利…

【python学习】matplotlib绘制仅有y轴的数值条码图/台阶图(隐藏特定坐标轴)

matplotlib绘制仅有y轴的数值条码图/台阶图 图形来源图形绘制思路绘图代码 图形来源 今天看文章,文章中有一幅图,图的表达形式很适合我目前的数据展示,于是想要用python画出来。 文章来源:Yun-Hua Cheng_2017_Scientific Report…

web学习笔记1

计算机: 课程大纲:html(五条猫结构) 结构 css 表现 JavaScript 行为 html:超文本标记语言 超:超链接,能从一个网页跳转到另一个网页 标记:文本要变成超文本,就需要各…

pwn05(应对简单栈溢出的常规套路)

目录 一、常规检查(nc、file、checksec) 二、IDA反编译,只找两个东西即可 1、寻找造成栈溢出的函数的地址到ebp的距离 2、 寻找我们所要利用的函数的地址(即我们希望程序最后返回到哪里) 三、编写并运行exp脚本 一…

eNSP-NAT网络地址转换服务

NAT网络地址转换服务 文章目录 NAT网络地址转换服务一、题目要求二、题目分析三、拓扑结构四、基础配置五、测试验证 一、题目要求 1.私网地址使用192.168.1.0/24进行子网划分 2.Telnet Server设备启动Telnet服务 3.isp设备仅配置IP地址 4.PC6,PC7,PC8均可以访问PC9 5.内网…

python 第十章 函数

系列文章目录 第一章 初识python 第二章 变量 第三章 基础语句 第四章 字符串str 第五章 列表list [] 第六章 元组tuple ( ) 第七章 字典dict {} 第八章 集合set {} 第九章 常用操作 文章目录 系列文章目录10.1函数的作用10.2函数的使用步骤定义函数调用函数函数的注意事项 10…

Linux 内存泄漏检测的实现原理与实现

在使用没有垃圾回收的语言时(如 C/C),可能由于忘记释放内存而导致内存被耗尽,这叫 内存泄漏。由于内核也需要自己管理内存,所以也可能出现内存泄漏的情况。为了能够找出导致内存泄漏的地方,Linux 内核开发者…

抖音seo矩阵系统源码开发部署--开发文档分享

目录 一、抖音seo矩阵系统源码自研概况分析 二、 技术开发语言及功能框架 技术要求: 功能框架: 三、 抖音seo矩阵系统开发原则 四、 抖音seo矩阵系统源码开发示例 一、抖音seo矩阵系统源码自研概况分析 关于抖音seo矩阵系统源码自研,在开…

零零信安-DD数据泄露报警日报【第202期】

2023.07.07共发现匿名网络资讯信息79,948条;最近7天同比增长-20.6%;最近30天共发现匿名网络资讯信息2,587,590条。 北京零零信安科技有限公司成立于2020年,是国内首家专注于外部攻击面管理(EASM)的网络安全公司。基于…

Python3,10行代码竟然让URL变短了,没想到还可以这么玩。

让URL变短的方法 1、引言2、代码实战2.1 安装2.2 示例 3、总结 1、引言 小屌丝:鱼哥,有没有什么方法,能让url变短一点 小鱼:我去~ url怎么惹你了, 你让它变短。? 小屌丝:没有了, 我…

python scrapy爬取网站数据(一)

框架介绍 scrapy中文文档 scrapy是用python实现的一个框架,用于爬取网站数据,使用了twisted异步网络框架,可以加快下载的速度。 scrapy的架构图,可以看到主要包括scheduler、Downloader、Spiders、pipline、Scrapy Engine和中间…

你如何准备测试数据?

目录 前言: 一、基于 GUI 操作生成 二、调用 API 生成 三、通过数据库操作生成 四、综合运用 API 和数据库的方式生成 前言: 在进行自动化测试时,准备好合适的测试数据是十分重要的。 准备测试数据是我们测试过程中非常重要的一环&…

RocketMQ5.0--顺序消息

RocketMQ5.0–顺序消息 一、顺序消息概览 RocketMQ支持局部消息顺序消费,可以确保同一个消费队列中的消息被顺序消费,如果做到全局顺序消费则可以将主题配置成一个消费队列。并发(默认)消息消费参考​ 《RocketMQ5.0.0消息消费&…

java中对象字段转换

文章目录 前言一、对象属性转换问题二、如何处理转换?三 、处理办法1 利用 JsonProperty 改变转出属性2 利用 JsonAlias 增加接收的属性 总结 前言 在java中,有时候会涉及到一些对象的转换,为什么转换呢? 由于接受参数和用的时候对应不上由于经历过一些修改,为了兼容 一、对…

mac上 如何批量在文件名后加相同的文字?

mac上如何批量在文件名后加相同的文字?不管你是使用windows电脑还是使用mac电脑,很多小伙伴都会在电脑上进行文件批量重命名的操作,不过这项操作对于使用windows系统电脑的小伙伴来说会简单一些,因为在网上可以搜索到很多这样的教…

Python基础:错误与异常

文章目录 错误和异常程序错误异常处理断言处理程序调试 错误和异常 程序错误 程序的错误 ​ python程序中错误通常分为3种类型,即语法错误、运行错误和逻辑错误。 语法错误:源代码中的拼写语法错误,这些错误导致Python编译器无法把Python…

处理 git仓库提交大小写不识别的问题

源码 echo off title Handle name capitalization git config core.ignorecase false echo.&pause新建一个文本改名 处理资源大小写不识别问题.bat 以文编编辑器打开赋值粘贴上面的代码 丢到你的git仓库根目录 双击运行就可以了

知行之桥EDI系统QA第三期:启动知行之桥专题

随着使用知行之桥EDI系统的用户群体日益壮大,在使用过程中,用户可能对系统的工作原理、功能模块和实施过程有一些疑问。近期整理了有关启动知行之桥EDI系统时,常见的几个问题: 一、启动知行之桥服务报错:Failed to st…

王海峰最新发声!

7月6日,2023世界人工智能大会(WAIC)在上海世博中心开幕,众多专家学者、科技领军人才、企业代表共同探讨人工智能赋能产业发展的全新变化,展望技术新趋势。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海…

无法应付大文件、海量文件可靠传输的FTP,用什么替代?

FTP作为世界第一款文件传输协议,在很长时间内,都广泛在世界范围内应用于各个行业和领域的文件传输,FTP解决了文件传输协议有无的问题,填补了互联网传输协议的空缺,极大程度改善了文件传输的困境。 但随着网络技术的发展…