TCP/IP 协议
TCP/IP( Transmission Control Protocol/Internet Protocol) 的简写,中文译名为传输控制协议 /因特网 互联协议,又叫网络 通讯协议 ,这个协议是Internet 最基本的协议、 Internet 国际 互联网络 的基础,简单地说,就是由网络层的IP 协议和传输层的 TCP 协议组成的。 TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。 TCP/IP 是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
研制背景
最初想到让不同电脑之间实现连接的,是美国 加州大学洛杉矶分校 网络工作小组的S. 克罗克 。1970 年,克罗克及其小组着手制定最初的主机对主机通信协议,它被称为 “网络控制协议 ” ( NCP Network Control Protocol)。该协议被用于 阿帕网 ,并在局部网络条件下运行稳定,但随着阿帕网用户的增多,NCP 逐渐暴露出两大缺陷:
1、 NCP只是一台主机对另一台主机的通讯协议,并未给网络中的每台电脑设置唯一的地址,结果就造成电脑在越来越庞大的网络中难以准确定位需要传输数据的对象。
2、 NCP缺乏纠错功能,这样一来,数据在传输过程中一旦出现错误,网络就可能停止运行。出错电脑增多,使得网络运行效率大打折扣。
开发过程
在构建了 阿帕网 先驱之后,DARPA 开始了其他数据传输技术的研究。 NCP 诞生后两年, 1972 年, 罗伯特 ·卡恩 (Robert E. Kahn )被 DARPA 的 信息技术处理办公室 雇佣,在那里他研究卫星数据包网络和地面无线数据包网络,并且意识到能够在它们之间沟通的价值。在1973 年春天,已有的 ARPANET 网络控制程序( NCP )协议的开发者 文顿 ·瑟夫 (Vinton Cerf )加入到卡恩为 ARPANET 设计下一代协议而开发开放互连模型的工作中。
到了 1973年 夏天,卡恩和瑟夫很快就开发出了一个基本的改进形式,其中网络协议之间的不同通过使用一个公用 互联网协议 而隐藏起来,并且可靠性由主机保证而不是像ARPANET 那样由网络保证。
由于网络的作用减少到最小的程度,就有可能将任何网络连接到一起,而不用管它们不同的特点,这样就解决了卡恩最初的问题。(一个流行的说法提到瑟夫和卡恩工作的最终产品 TCP/IP 将在运行“ 两个罐子和一根弦 ” 上,实际上它已经 用在信鸽 上。一个称为 网关 (后来改为 路由器 以免与 网关 混淆)的计算机为每个网络提供一个接口并且在它们之间来回传输 数据包 。
这个设计思想更细的形式由瑟夫在斯坦福的网络研究组的 1973年— 1974 年 期间开发出来。(处于同一时期的诞生了 PARC通用包 协议组的 施乐 PARC 早期网络研究工作也有重要的技术影响;人们在两者之间摇摆不定。)
DARPA于是与 BBN 、斯坦福和伦敦大学签署了协议开发不同硬件平台上协议的运行版本。有四个版本被开发出来 ——TCP v1 、 TCP v2 、在 1978 年春天分成 TCP v3 和 IP v3 的版本,后来就是稳定的 TCP/IP v4—— 目前因特网仍然使用的标准协议。
1975年 ,两个网络之间的TCP/IP 通信在斯坦福和伦敦大学( UCL )之间进行了测试。 1977年 11月,三个网络之间的 TCP/IP 测试在美国、英国和挪威之间进行。在 1978 到1983 年间,其他一些 TCP/IP 原型在多个研究中心之间开发出来。 ARPANET 完全转换到 TCP/IP 在 1983 年 1 月 1 日发生。
1984年,美国国防部将 TCP/IP 作为所有计算机网络的标准。 1985 年,因特网架构理事会举行了一个三天有 250 家厂商代表参加的关于计算产业使用 TCP/IP 的工作会议,帮助协议的推广并且引领它日渐增长的商业应用。
2005年 9 月 9 日 卡恩和瑟夫由于他们对于美国文化做出的卓越贡献被授予 总统自由勋章 。
层次概述
从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、 应用层 。TCP/IP 协议并不完全符合 OSI 的七层参考模型。传统的 开放式系统 互连参考模型,是一种通信协议的7 层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这 7 层是:物理层、 数据链路层 、网络层、传输层、会话层、表示层和应用层。而TCP/IP 通讯协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
网络接口层
物理层是定义物理介质的各种特性,1 、机械特性。 2 、电子特性。 3 、功能特性。 4 、规程特性 。 数据链路层是负责接收IP 数据报并通过网络发送之,或者从网络上接收物理帧,抽出 IP 数据报,交给 IP 层。常见的接口层协议有: Ethernet 802.3 、 Token Ring 802.5 、 X.25 、 Frame relay 、 HDLC 、 PPP ATM 等。
网络层
负责相邻 计算机 之间的通信。其功能包括三方面。
一、 处理来自传输层的分组发送请求,收到请求后,将分组装入IP 数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报:首先检查其合法性,然后进行寻径-- 假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
三、处理路径、流控、拥塞等问题。网络层包括:IP(Internet Protocol) 协议、 ICMP(Internet Control Message Protocol) 控制报文协议、 ARP(Address Resolution Protocol) 地址转换协议、 RARP(Reverse ARP) 反向地址转换协议。
IP是网络层的核心,通过路由选择将下一跳 IP 封装后交给接口层。 IP 数据报是无连接服务。
ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。
Ping命令就是发送 ICMP 的 echo 包,通过回送的 echo relay 进行网络测试。
ARP是正向 地址解析协议 ,通过已知的IP ,寻找对应主机的 MAC地址 。
RARP是反向地址解析协议,通过 MAC 地址确定 IP 地址。比如无盘工作站和 DHCP 服务。
传输层
提供应用程序间的通信。其功能包括:
一、 格式化信息流;
二、 提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
传输层协议主要是:传输控制协议TCP 和用户数据报协议 UDP 。
应用层
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、 远程登录 等。远程登录TELNET 使用 TELNET 协议提供在网络其它主机上注册的接口。 TELNET 会话提供了基于字符的虚拟终端。文件传输访问 FTP 使用 FTP协议 来提供网络内机器间的文件拷贝功能。 应用层一般是面向用户的服务。如FTP 、 TELNET 、 DNS 、 SMTP 、 POP3 。
FTP(File Transmision Protocol)是文件传输协议,一般上传下载用 FTP 服务,数据端口是 20H ,控制端口是 21H 。
Telnet服务是用户远程登录服务,使用 23H 端口,使用明码传送,保密性差、简单方便。 DNS(Domain Name Service) 是域名解析服务,提供域名到 IP 地址之间的转换。 SMTP(Simple Mail Transfer Protocol) 是简单邮件传输协议,用来控制信件的发送、中转。 POP3(Post Office Protocol 3) 是邮局协议第 3 版本,用于接收邮件。
总结
网络层中的协议主要有IP , ICMP , IGMP 等,由于它包含了 IP 协议模块,所以它是所有基 于 TCP/IP 协议网络的核心。在网络层中, IP 模块完成大部分功能。 ICMP 和 IGMP 以及其他支持 IP 的协议帮助 IP 完成特定的任务,如传输差错控制 信息以及主机 / 路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。 传输层上的主要协议是 TCP 和 UDP 。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式: TCP 是一个基于连接的协议; UDP 则是面向无连接服务的管理方式的协议。 TCP/IP 模型的主要缺点有: 首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次, TCP/IP 模型的主机 — 网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,和接口层的区别是非常重要的, TCP/IP 模型没有将它们区分开来。