免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4155 | 回复: 20
打印 上一主题 下一主题

TCP/IP协议是个规则或约定 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-26 11:49 |只看该作者 |倒序浏览
协议只是个约定,操作系统在实现网络通信时必须遵守这个约定,这个概念有点问题
到了操作系统中怎么被称为协议包/栈了?又变成了程序代码了呢?糊涂了!!!

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
2 [报告]
发表于 2006-09-26 11:53 |只看该作者
"理论"联系"实际"

论坛徽章:
0
3 [报告]
发表于 2006-09-26 11:59 |只看该作者

我现在搞不懂,tcp/ip协议到底是个什么了?

我现在搞不懂,tcp/ip协议到底是个书面的文本呢,还是程序代码呢?

论坛徽章:
0
4 [报告]
发表于 2006-09-26 12:02 |只看该作者
原帖由 caoxr 于 2006-9-26 11:49 发表
协议只是个约定,操作系统在实现网络通信时必须遵守这个约定,这个概念有点问题
到了操作系统中怎么被称为协议包/栈了?又变成了程序代码了呢?糊涂了!!!


谁告诉你是必须了?在中华人民共和国的大街上,说中国话也只是个约定,你大可不必遵守这个约定,只要你对后果有心理准备并且没有因此而不爽就成。:em11:

论坛徽章:
0
5 [报告]
发表于 2006-09-26 12:06 |只看该作者
是不是操作系统中的协议栈或协议包这些是程序或函数,他们用c++编写,而这个编写的过程
或程序必须遵守协议本身的约定呢?

论坛徽章:
0
6 [报告]
发表于 2006-09-26 12:22 |只看该作者
协议就是约定嘛,就是开发的时候你要遵守的法则,这样理解就OK,TCP/IP协议不说在OS要有这个文本,只是在系统通讯时要遵守IP规则。

论坛徽章:
0
7 [报告]
发表于 2006-09-26 12:36 |只看该作者
协议就是约定,你想遵守就遵守,不想遵守就不遵守。当然遵守的结果是能有一系列的好处,比如大家能互相交流。遵守不能光说吧,要用行动来遵守,怎么进行这个行动?就要依靠代码实现,协议栈代码就是为了遵守这个约定而编写的。大家交流的是思想,但是必须以语言为载体;机器之间需要交流数据,需要有个交流的约定,才能互相理解。协议栈代码就是为了把平常数据改写成符合约定格式的数据而存在。

论坛徽章:
0
8 [报告]
发表于 2006-09-26 16:35 |只看该作者
哈哈,比如鸡跟鸭讲。。。,谁能听懂谁的。。

论坛徽章:
0
9 [报告]
发表于 2006-09-26 20:05 |只看该作者

re

最近正在通读《tcp/ip详解-卷一:协议》,下面的内容摘自wiki,希望有帮助。

TCP/IP协议,包含了一系列构成互联网基础的网络协议。这些协议最早发源于美国国防部的ARPA网项目。TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议)。

1983年1月1日,在因特网的前身ARPA网中,TCP/IP协议取代了旧的网络核心协议(NCP,Network Core Protocol),从而成为今天的互联网的基石。最早的TCP/IP由Vinton Cerf和Robert Kahn两位开发,慢慢地通过竞争战胜了其它一些网络协议的方案,比如国际标准化组织ISO的OSI模型。TCP/IP的蓬勃发展发生在上世纪的90年代中期。当时一些重要而可靠的工具的出世,例如页面描述语言HTML和浏览器Mosaic,导致了互联网应用的飞速发展。

随着互联网的发展,目前流行的IPv4协议(网际协议版本四)已经接近它的功能上限。IPv4最致命的两个缺陷在与:

    * 地址只有32位,IP地址空间有限
    * 不支持服务等级(Quality of Service, QoS)的想法,无法管理带宽和优先级,故而不能很好的支持现今越来越多的实时的语音和视频应用。因此IPv6(网际协议版本六)浮出海面,用以取代IPv4。

TCP/IP成功的另一个因素在与对为数众多的低层协议的支持。这些低层协议对应与OSI模型 中的第一层(物理层)和第二层(数据链路层)。每层的所有协议几乎都有一半数量的支持TCP/IP,例如: 以太网(Ethernet),令牌环(Token Ring),光纤数据分布接口(FDDI),端对端协议(PPP),X.25,帧中继(Frame Relay),ATM,Sonet, SDH等。

目录
    * 1 TCP/IP协议栈组成
    * 2 必须协议
    * 3 推荐协议
    * 4 可选协议
    * 5 范例: 不同计算机运行的不同协议
    * 6 参考
    * 7 参考文献


TCP/IP协议栈组成

整个通信网络的任务,可以划分成不同的功能区块,即所谓的层级(layer) 。用于因特网的协议可以比照TCP/IP参考模型进行分类。TCP/IP协议栈起始于第三层协议IP(网际协议)。所有这些协议都在相应的RFC文档中讨论及标准化。重要的协议在相应的RFC文档中均标记了状态: “必须”(required) ,“推荐”(recommended) ,“可选”(elective) 。其它的协议还可能有“试验”(experimental) 或“历史”(historic) 的状态。”

必须协议

所有的TCP/IP应用都必须实现IP和ICMP。对于一个路由器(router)而言,有这两个协议就可以运作了,虽然从应用的角度来看,这样一个路由器 意义不大。实际的路由器一般还需要运行许多“推荐“使用的协议,以及一些其它的协议。

几乎所有连接到互联网上的计算机上都存在的IPv4协议出生在1981年,今天的版本和最早的版本并没有多少改变。升级版IPv6的工作始于1995年,目的在与取代IPv4。ICMP协议主要用于收集有关网络的信息查找错误等工作。

推荐协议

每一个应用层(TCP/IP参考模型 的最高层) 一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议 。 其它的一些推荐协议有:

    * TELNET(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络(运行在TCP协议上)。
    * FTP(File Transfer Protocol, 文件传输协议),由名知义,用于文件传输,运行在TCP协议上。
    * SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件(运行在TCP协议上) 。
    * DNS (Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上) 。
    * ECHO (Echo Protocol, 回绕协议) ,用于查错及测量应答时间(运行在TCP和UDP协议上) 。
    * NTP (Network Time Protocol,网络时间协议) ,用于网络同步(运行在UDP协议上) 。
    * SNMP (Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理。
    * BOOTP (Boot Protocol,启动协议) ,应用于无盘设备(运行在UDP协议上)。


可选协议

最常用的一些有

    * 支撑万维网(WWW)的超文本传输协议HTTP,
    * 动态配置IP地址的DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),
    * 收邮件用的POP3 (Post Office Protocol, version 3, 邮局协议) ,
    * 用于加密安全登陆用的SSH (Secure Shell,用于替代安全性差的TELNET) ,
    * 用于动态解析以太网硬件的地址的ARP (Address Resolution Protocol,地址解析协议) 。


范例: 不同计算机运行的不同协议

    * 一个简单的路由器上可能会实现ARP, IP, ICMP, UDP, SNMP, RIP。
    * WWW用户端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
    * 一台用户电脑上还会运行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NNTP。
    * 无盘设备可能会在固件比如ROM中实现了ARP, IP, ICMP, UDP, BOOT, TFTP (均为面向数据报的协议,实现起来相对简单)。

论坛徽章:
0
10 [报告]
发表于 2006-09-26 20:17 |只看该作者

re

"协议只是个约定,操作系统在实现网络通信时必须遵守这个约定,这个概念有点问题
到了操作系统中怎么被称为协议包/栈了?又变成了程序代码了呢?糊涂了!!!"

在我们的真实生存环境当中,以人与人的交流沟通为例,我们已经有了一套约定俗成式的方法(暂且这么叫,别深究),这个可以理解为“协议”,到了真要沟通交流的时候你怎么办?有了前面的协议做框架,无外乎听、说、写(包括敲键盘,发短信等等),那么这是不是可以理解为人与人之间实际沟通过程中的代码实现?至于协议栈/包,可以片面一点理解,世界上不只一种语言,不同语言环境的沟通需要进一步细化区分以满足实际沟通需求,而这些细化规则就包括在协议栈/包当中。

希望不是越解释越糊涂。要是描述有误也请大家拍。

[ 本帖最后由 50g 于 2006-9-26 20:30 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP