|
TCP/IP是Internet的核心协议,广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP主要有5个方面的特点:逻辑编址、路由选择、域名解析、错误检测和流量控制以及对应用程序的支持。
|
|
|
|
协议分层模型包括两方面的内容:一是层次结构;二是各层功能的描述。TCP/IP参考模型可以分为以下4个层次:应用层、传输层、互联层(网际层)、主机—网络层(网络接口层)。其中,应用层(Application Layer)与OSI应用层相对应,传输层(Transport Layer)与OSI传输层相对应,互联层(Internet Layer)与OSI网络层相对应,主机—网络层(Host-to-Network Layer)与OSI数据链路层及物理层相对应。在TCP/IP参考模型中,对OSI表示层、会话层没有对应的协议,如下图所示。
|
|
|
|
|
|
|
应用层处在分层模型的最高层,用户调用应用程序来访问TCP/IP互联网络,以享受网络上提供的各种服务。应用程序负责发送和接收数据。每个应用程序可以选择所需要的传输服务类型,并把数据按照传输层的要求组织好,再向下层传送,包括独立的报文序列和连续字节流两种类型。
|
|
|
|
传输层的基本任务是提供应用程序之间(端到端)的通信服务。传输层既要系统地管理数据信息的流动,还要提供可靠的传输服务,以确保数据准确而有序地到达目的地。为了达到这个目的,传输层协议软件需要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。在传输层与互联层之间传递的对象是传输层分组。
|
|
|
|
互联层也称网际层或IP层,主要处理机器之间的通信问题。它接收传输层的请求,传送某个具有目的地址信息的分组。
|
|
|
|
主机—网络层也称网络接口层,处于TCP/IP协议层之下,负责接收IP数据报,并把数据报通过选定的网络发送出去。该层包含设备驱动程序,也可能是一个复杂的使用自己的数据链路协议的子系统。
|
|
|
|
TCP/IP协议只定义了网络接口层作为物理层与网络层的接口规范,不包含具体的物理层和数据链路层。这个物理层可以是广域网,如X.25公用数据网,也可以是局域网,如Ethernet、Token-Ring、FDDI等。任何物理网络只要按照这个接口规范开发网络接口驱动程序,都能够与TCP/IP协议集成起来。网络接口层处在TCP/IP协议的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。
|
|
|
|
网际层是整个TCP/IP协议簇的重点。网际层定义的协议有IP、ARP、RARP、ICMP。
|
|
|
|
IP(Internet Protocol)所提供的服务通常被认为是无连接的和不可靠的。事实上,在网络性能良好的情况下,IP传送的数据能够完好无损地到达目的地。所谓无连接的传输,是指没有确定目标系统是否已做好接收数据准备之前就发送数据。与此相对应的就是面向连接的传输(如TCP),在该类传输中,源系统与目的系统在应用层数据开始传送之前需要进行三次握手建立连接。至于不可靠的服务是指目的系统不对成功接收的分组进行确认,IP只是尽可能地使数据传输成功。但是只要保证传输成功的需要,上层协议可以实现用于保证分组成功提供的附加服务。
|
|
|
由于IP只提供无连接、不可靠的服务,所以把差错检测和流量控制之类的服务授权给了其他各层协议,这正是TCP/IP能够高效率工作的一个重要保证。
|
|
|
IP协议的主要功能包括:将上层数据(如TCP、UDP数据)或同层的其他数据(如ICMP数据)封装到IP数据报中;将IP数据报传送到最终目的地;为了使数据能够在链路层上进行传输,对数据进行分段;确定数据报到达其他网络中的目的地的路径。
|
|
|
IP协议软件的工作流程:当发送数据时,源计算机上的IP协议软件必须确定目的地是在同一个网络上,还是在另一个网络上。IP通过执行这两项计算并对结果进行比较,才能确定数据到达的目的地。如果两项计算的结果相同,则数据的目的地确定为本地网络,否则,目的地应为远程的其他网络。如果目的地在本地网络,那么IP协议软件就启动直接通信;如果目的地是远程计算机,那么IP必须通过网关(或路由器)进行通信,在大多数情况下,这个网关应当是默认网关。当源IP完成了数据报的准备工作时,它就将数据报传递给网络接口层,网络接口层再将数据报传送给传输介质,最终完成数据帧发往目的计算机的过程。
|
|
|
当数据抵达目的计算机时,网络接口层首先接收该数据。网络接口层要检查数据帧有无错误,并将数据帧送往正确的物理地址。假如数据帧到达目的地时正确无误,网络接口层便从数据帧的其余部分中提取有效数据,然后将它一直传送到帧层次类型域指定的协议。在这种情况下,可以说数据有效负载已经传递给了IP。
|
|
|
|
地址解析协议(Address Resolution Protocol, ARP)及逆向地址解析协议(Reverse Address Resolution Protocol, RARP)是驻留在网际层中的另一个重要协议。ARP的作用是将IP地址转换为物理地址,RARP的作用是将物理地址转换为IP地址。
|
|
|
|
Internet控制信息协议(Internet Control Message Protocol, ICMP)是网际层的另一个比较重要的协议。由于IP协议是一种尽力传送的通信协议,即传送的数据报可能丢失、重复、延迟或乱序传递,所以IP协议需要一种在发生差错时报告的机制。ICMP就是一个专门用于发送差错报文的协议。ICMP定义了5种差错报文(源抑制、超时、目的不可达、重定向、要求分段)和4种信息报文(回应请求、回应应答、地址屏蔽码请求、地址屏蔽码应答)。IP在需要发送一个差错报文时要使用ICMP,而ICMP也是利用IP来传送报文的。ICMP是让IP更加稳固、有效的一种协议,它使IP传送机制变得更加可靠。ICMP还可以用于测试网络,以得到一些有用的网络维护和排错的信息。例如,ping工具就是利用ICMP报文进行目标可达性测试。
|
|
|
|
|
传输控制协议(Transmission Control Protocol, TCP)是整个TCP/IP协议簇中最重要的协议之一。它在IP协议提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。TCP采用了重发技术来实现数据传输的可靠性。具体来说,就是在TCP传输过程中,发送方启动一个定时器,然后将数据包发出,当接收方收到了这个信息就给发送方一个确认信息。若发送方在定时器到点之前没收到这个确认信息,就重新发送这个数据包。
|
|
|
在源主机想和目的主机通信时,目的主机必须同意,否则TCP连接无法建立。为了确保TCP连接的成功建立,TCP采用3次握手的方式,使源主机和目的主机之间达成同步。
|
|
|
|
用户数据报协议(User Datagram Protocol, UDP)是一种不可靠的、无连接的协议,也可以进行应用程序进程间的通信。与同样处在传输层的面向连接的TCP相比较,UDP是一种无连接的协议,它的错误检测功能要弱得多。可以这样说,TCP有助于提供可靠性,而UDP则有助于提高传输的高速率。一般来说,必须支持交互式会话的应用程序(如FTP等)往往使用TCP协议,而自己进行错误检测或不需要错误检测的应用程序(如DNS、SNMP等)则往往使用UDP。
|
|
|
|
|
.虚拟终端协议Telnet,用于实现互联网中远程登录功能。
|
|
|
.文件传输协议FTP,用于实现互联网中交互式文件传输功能。
|
|
|
.简单邮件协议SMTP,用于实现互联网中电子邮件传送功能。
|
|
|
.域名服务DNS,用于实现网络设备名字到IP地址映射的网络服务。
|
|
|
.路由信息协议RIP,用于网络设备之间交换路由信息。
|
|
|
.网络文件系统NFS,用于网络中不同主机间的文件共享。
|
|
|
|