C#网络程序开发(第二版)
上QQ阅读APP看书,第一时间看更新

1.2 TCP/IP网络模型及协议

1.2.1 TCP/IP网络架构

TCP/IP网络架构也称为TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)参考模型。它是目前全球互联网工作的基础,该架构将网络功能从上至下划分为:应用层、传输层、网际层和网络接口层,每一层的功能由一系列网络协议进行体现,图1-3给出了TCP/IP网络架构各层的功能及支撑协议。

图1-3 TCP/IP网络架构各层的功能及支撑协议

TCP/IP网络架构采用自顶而下的分层结构,每一层都需要下一层所提供的服务来满足自己的需求,本层协议生成的数据封装在下一层协议的数据中进行传输,因此各层间的协议有依赖关系。下面简单介绍一下TCP/IP模型各层的主要功能。

(1)应用层:即最高层,提供面向用户的网络服务,负责应用程序之间的沟通,主要协议有简单邮件传输协议(SMTP)、文件传输协议(FTP)、超文本传输协议(HTTP)、域名系统(DNS)、网络远程访问协议(Telnet)等。

Socket支持多个应用程序间基本的消息传递功能,通过遵循应用层上的某一种或几种协议的规范,使应用程序完成用户需要的相应功能,这是本书网络应用程序开发的目的。

(2)传输层:位于第3层,完成多台主机间的通信,提供节点间的数据传送及应用程序间的通信服务,也称为“端到端”通信,通过在通信的实体间建立一条逻辑链路,屏蔽了IP层的路由选择和物理网络细节。传输层的功能主要是数据格式化、数据确认及丢失重传等。该层协议有传输控制协议(TCP)和用户数据报协议(UDP),提供不同的通信质量和需求的服务。

(3)网际层:位于第2层,也称为网络互联层或Internet层,由于该层最重要的协议是IP协议,所以也称为IP层。该层负责提供基本的数据封包传送功能,在它上面传输的数据单元叫IP数据报,或IP分组。网际层让每个IP数据报都能够到达目的主机,但是它不检查数据报是否被正确接收。

网络层的本质是使用IP将各种不同的物理网络互联,组成一个传输IP数据报的虚拟网络,实现不同网络的互联功能,该层协议除了IP协议外,还有Internet控制报文协议(ICMP)和Internet组管理协议(IGMP)。

(4)网络接口层:该层位于协议架构的最底层,负责接收IP数据报并发送到其下的物理网络,或从网络上接收物理帧,抽取IP数据报转交给网际层。这里的物理网络指各种实际传输数据的局域网或广域网。

1.2.2 TCP协议和UDP协议

1. TCP

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。面向连接意味着两个使用TCP的进程(一个客户和一个服务器)在交换数据之前必须先建立好连接,然后才能开始传输数据。建立连接时采用客户服务器模式,其中主动发起连接建立的进程叫做客户(Client),被动等待连接建立的进程叫做服务器(Server)。

TCP提供全双工的数据传输服务,这意味着建立了TCP连接的主机双方可以同时发送和接收数据。这样,接收方收到发送方消息后的确认可以在反方向的数据流中进行捎带。“端到端”的TCP通信意味着TCP连接发生在两个进程之间,一个进程发送数据,只有一个接收方,因此TCP不支持广播和组播。

TCP连接面向字节流,字节流意味着用户数据没有边界,例如,发送进程在TCP连接上发送了2个512字节的数据,接收方接收到的可能是2个512字节的数据,也可能是1个1024字节的数据。因此,接收方若要正确检测数据的边界,必须由发送方和接收方共同约定,并且在用户进程中按这些约定来实现。

TCP接收到数据包后,将信息送到更高层的应用程序,如FTP的服务程序和客户程序。应用程序处理后,再轮流将信息送回传输层,传输层再将它们向下传送到网际层,最后到接收方。

2. UDP

UDP与TCP位于同一层,但与TCP不同,UDP协议提供的是一种无连接的、不可靠的传输层协议,只提供有限的差错检验功能。它在IP层上附加了简单的多路复用功能,提供端到端的数据传输服务。设计UDP的目的是为了以最小的开销在可靠的或者是对数据可靠性要求不高的环境中进行通信,由于无连接,UDP支持广播和组播,这在多媒体应用中是非常有用的。

1.2.3 IP协议

IP(网际)协议是TCP/IP模型的核心,也是网络层最重要的协议。

网际层接收来自网络接口层的数据包,并将数据包发送到传输层;相反,也将传输层的数据包传送到网络接口层。IP协议主要包括无连接数据报传送,数据报路由器选择以及差错处理等功能。

由于网络拥挤、网络故障等问题可能导致数据报无法顺利通过传输层。IP协议具有有限的报错功能,不能有效处理数据报延迟,不按顺序到达和数据报出错,所以IP协议需要与另外的协议配套使用,包括地址解析协议ARP、逆地址解析协议RARP、因特网控制报文协议ICMP、因特网组管理协议IGMP等。IP数据包中含有源地址(发送它的主机地址)和目的地址(接收它的主机地址)。

IP协议对于网络通信而言有着重要的意义。由于网络中的所有计算机都安装了IP软件,使得许许多多的局域网构成了庞大而严密的通信系统,才形成了如今的Internet。其实,Internet并非一个真实存在的网络,而是一个虚拟网络,只不过是利用IP协议把世界上所有愿意接入Internet的计算机局域网络连接起来,使之能够相互通信。