1. 随处可见的协议

    在计算机网络与信息通信领域里,人们常常提及“协议”一词。互联网中常

用的具有代表性的协议有IP、TCP、HITP等。

而LAN(局域网)中经常使用的协议

有IPx/SPX等。

“计算机网络体系结构”将这些网络协议进行了系统的归纳。TCP/lP就是

IP、TCP、HTTP等协议的集合。

如今。非常多设备都支持TCP/IP。除此之外,还

有非常多其它类型的网络体系结构。比如,Novell公司的IPX/SPX、苹果公司的Ap-

pleTalk(仅限苹果公司计算机使用)、IBM公司开发的用于构建大规模网络的

SNA以及前DEC公司开发的DECnet等。




(原文链接:http://blog.csdn.net/yelangjueqi/article/details/38268429 ,欢迎转载,转载时请注明出处!。)
2.  协议的必要性

    通常,我们发送一封电子邮件、訪问某个主页获取信息时察觉不到协议的存

在。仅仅有在我们又一次配置计算机的网络连接、改动网络设置时才有可能涉及协议。

因此仅仅要网络设置完毕、联网成功。人们通常也就会忘记协议之类的事情。

仅仅要

应用程序了解怎样利用相关协议,就足以让人们顺利使用所建的网络连接。

通常

也不会有一个人由于不懂某些协议导致不能上网的情况。然而在通过网络实现互

通信的过程背后。协议却起到了至关关键的数据。

    简单来说。协议就是计算机与计算机之间通过网络实现通信时事先达成的一

种“约定”。

这样的“约定”使那些由不同厂商的设备、不同的CPU以及不同的操

作系统组成的计算机之间,仅仅要遵循同样的协议就行实现通信。反之。假设所

使用的协议不同,就无法实现通信。这就好比两个人使用不同国家的语言说话,

怎么也无法相互理解。协议能够分为非常多种,每一种协议都明白地界定了它的行

为规范。

两台计算机之间必须可以支持同样的协议。并遵循同样协议进行处理。

这样才干实现相互通信。


3. 协议如同人与人的对话

    在此举一个简单的样例。有三个人A、B、C。A仅仅会说汉语、B仅仅会说英语、

  而c既会说汉语又会说英语。如今A与B要聊天。他们之间该怎样沟通呢?若A

  与C要聊天。又会如何?这时假设我们:

    1.将汉语和英语当作“协议”

    2.将聊天当作“通信”

    3.将说话的内容当作“数据”

    那么A与B之间由于各持一种语言。恐怕说多久也无法交流。由于他们之间

  的谈话所用的协议(语言)不同,两方都无法将数据(所说的话')传递给对方’。

    接下来,我们分析A与C之间聊天的情况。两人都用汉语这个“协议”就能

  理解对方所要表达的详细含义了。

也就是说A与C为了顺利沟通,採用同一种协

  议。使得他们之间可以传递所期望的数据(想要说给对方的话)。

    如此看来,协议如同人们寻常说话所用的语言。尽管语言是人类才具有的特

  性,但计算机与计算机之间通过网络进行通信时。也能够觉得是根据类似于人类

  “语言”实现了相互通信。


4.计算机中的协议

人类具有掌握知识的能力,对所学知识也有一定的应用能力和理解能力。因此在某种程度上,人与人的沟通并不受限于太多规则。

即使有不论什么规则之类的东西,人们也能够通过自己的应变能力非常自然地去适应规则。

然而这一切在计算机通信其中,显然无从实现。

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

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

在计算机通信中,事先达成一个具体的约定,并遵循这一约定进行处理尤为重要。这样的约定事实上就是“协议”。

5.分组交换协议

分组交换是指将大数据切割为一个个叫做包(Packet)的较小单位进行传输 的方法。

这里所说的包。如同我们寻常在邮局里见到的邮包。

分组交换就是将大 数据分装为一个个这种邮包交给对方。

当人们邮寄包裹时。通常会填写一个寄件单贴到包裹上再交给邮局。寄件单上通常会有寄件人和收件人的具体地址。类似地,计算机通信也会在每个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地 址以及分组序号写入的部分称为“报文首部”。

一个较大的数据被分为多个分组时,为了标明是原始数据中的哪一部分。就有必要将分组的序号写入包中。接收端会依据这个序号,再将每一个分组依照序号 又一次装配为原始数据。

通信协议中,一般会规定报文首部应该写入哪些信息、应该怎样处理这些信息。相互通信的每一台计算机则依据协议构造报文首部、读取首部内容等。

为了两方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义和解释。







学习笔记之TCP/IP协议的重要性的更多相关文章

  1. Python Web学习笔记之TCP/IP协议原理与介绍

    HTTP.FTP.SMTP.Telnet等等协议,哦!那个HTTP协议啊就是访问网页用的那个协议啊然后那个······其实······你懂得,我们应该从实际来了解他,理解网络协议的作用与功能,然后再从 ...

  2. 学习笔记之TCP/IP协议分层与OSI參考模型

    1.协议的分层      ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论, 终于提出了作为通信协议设计指标的OSI參考模型.这一模型将通信协议中必要 的功能分成了7层.通过这些 ...

  3. Python Web学习笔记之TCP/IP、Http、Socket的区别

    经常在笔试.面试或者工作的时候听到这些协议,虽然以前没怎么涉及过,但至少知道这些是和网络编程密不可分的知识,作为一个客户端开发程序员,如果可以懂得网络编程的话,他的作用和能力肯定会提升一个档次.原因很 ...

  4. 网络学习笔记:TCP/IP连网和Internet

    1.网关 由硬件和软件组成,实现不同网段间的数据传送. 常用路由器充当网关. 网关通常维护一份路由表,但只有少量的编址信息.它用这些信息把数据转发到知道更多信息的网关. 组成互联网骨干的网关称为核心网 ...

  5. TCP/IP协议学习-1.概述

    目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...

  6. TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...

  7. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  8. TCP/IP协议组学习笔记

    TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP ...

  9. tcp/ip协议学习笔记一

    一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...

随机推荐

  1. 手势(Gesture)的增加和识别

    Android除了提供手势检测之外,还允许把用户手势添加到指定文件中,以备以后使用,当用户再次画出该手势时,系统可识别该手势.Android使用GestureLibrary代表手势库,提供Gestur ...

  2. [Elasticsearch] 邻近匹配 (三) - 性能,关联单词查询以及Shingles

    提高性能 短语和邻近度查询比简单的match查询在性能上更昂贵.match查询仅仅是查看词条是否存在于倒排索引(Inverted Index)中,而match_phrase查询则须要计算和比較多个可能 ...

  3. Unity3D在一建筑GL材料可以改变颜色和显示样本

    void CreateLineMaterial()     {         if (!mat)         {             mat = new Material("Sha ...

  4. NYOJ202 红黑树 【预购】

    红黑树 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 什么是红黑树呢?顾名思义,跟枣树类似.红黑树是一种叶子是黑色果子是红色的树. .. 当然,这个是我说的. .. ...

  5. 递归算法的数据结构和算法 C++和PHP达到

    递归算法:它是一种间接的方法调用本身,直接或. 实施过程:按功能或子程序完成.在函数编写代码或子程序直接或间接拥有被称为.你可以完成递归. (相同类型的问题,子问题到最小问题有已知条件,然后来求解,然 ...

  6. ASP.NET中的ExecuteNonQuery()方法的用法

    下面我将详细讲解在机房收费系统D层中如何对数据库的增加.删除.修改,最后再来总结一下 ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法: 一.增.删 ...

  7. POJ 3450 Corporate Identity KMP解决问题的方法

    这个问题,需要一组字符串求最长公共子,其实灵活运用KMP高速寻求最长前缀. 请注意,意大利愿父亲:按照输出词典的顺序的规定. 另外要提醒的是:它也被用来KMP为了解决这个问题,但是很多人认为KMP使用 ...

  8. Java实现字符全阵列阵列

    import org.junit.Test; public class AllSort { public void permutation(char[] buf, int start, int end ...

  9. easyui DateTimeBox OK

    一.datetimebox   ok按钮没有点击事件,但是可以通过onSelect事件模拟出“点击了ok按钮一样的效果”,我的代码: 关键: 0,理解DateTimeBox控件,这个控件是由DateB ...

  10. Maven和Gradle

    Maven和Gradle对比 Java世界中主要有三大构建工具:Ant.Maven和Gradle.经过几年的发展,Ant几乎销声匿迹.Maven也日薄西山,而Gradle的发展则如日中天.笔者有幸见证 ...