支持文件传送的FTP、支持电子邮件的SMTP 协议都建立在这一层。
TCP/IP应用程序使用的应用层接口有Windows套接字(Winsock)、NetBIOS等。Windows套接字提供Windows下的标准应用编程接口;NetBIOS是工业标准接口,用于访问协议服务,如会话、数据报和名字解析等。
Internet 的核心层是网络层和传输层,相应的核心协议是IP协议和TCP协议。IP 协议的主要功能包括无连结数据报传送﹑数据报寻径以及差错处理三部分。IP协议的特点是点到点的,IP对等实体间的通信不经过中间机器,对等实体所在的机器位于同一物理网络,对等机器之间有直接的物理连接。IP层的主要功能是屏蔽下面物理层的差别,向上一层提供一致的数据格式。所有要传输的数据,被按照一定的格式分组封装层IP数据报,数据报单元通过寻径等机制进行传输,在接收方数据报进行重组,得到最初要传送的数据。由于IP协议是不可靠的数据传输协议,由于网络的拥塞而发生的数据丢失等情况是不可避免的,因此Internet 还必须有一定的控制重传机制,这就是差错与控制报文协议(ICMP)。
尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收数据,但IP协议还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,还需要TCP协议来提供可靠的并且无差错的通信服务。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。互联网是一个庞大的国际性网络,网路上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输数据所用时间也会变化不定。TCP协议具有自动调整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。
IP协议只保证计算机能发送和接收分组数据,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。
2.2 Socket技术
2.2.1 Socket基本概念
20世纪80年代初,美国政府的高级研究机构(ARPA)给加利福尼亚大学Berkeley分校提供资金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了API(应用程序接口)。这个API称为Socket接口。如今Socket接口是TCP/IP网络最为通用的API,也是在Internet上进行应用开发最为通用的API。
Internet是有不同种类的网络互连而成,实现不同网络及计算机之间交互操作的关键问题是由TCP/IP协议来解决的。TCP/IP协议的核心是传输层协议(TCP和UDP)、网络层协议(IP)和网络接口层,前两层在操作系统内核中实现。操作系统内核是不能直接为一般用户所感受到的,一般用户感受到的只有应用程序(包括系统应用程序),即各种应用程序构成了操作系统的用户视图。两者之间的接口是网络编程界面(程序员界面)。因此,TCP/IP网络环境下的应用程序也不是直接与TCP/IP核心打交道,而是与网络应用编程接口(套接字,socket)打交道,编程接口构成了核心协议的用户视图。
实际上,Socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。在应用开发中,就像使用文件句柄一样,可以对Socket句柄进行读、写操作。可以把Socket看成是一根连接线,当在两台计算机之间建立了一个Socket之后,两台计算机就可以通过这根连接线来完成信息交互,所做的仅仅是向这根连接线里写入数据,再从其中读出数据,而不必担心会不会由信息丢失,Socket会负责照看好数据。
Socket用于表达两台机器之间的连接'终端'。一个网络应用涉及两台(或两台以上)不同主机中跨网络彼此通信的两个进程。这两个进程通过经由各自的套接字(Socket)发送和接收消息彼此通信。对于一个给定的连接,每台机器上都有一个套接字。有点像我们打电话,用电缆把电话连接起来,中间的物理结构和具体实现过程我们不必了解,只要我们能进行通话即可。套接字是单台主机内应用层和传输层之间的接口。套接字也用于指代应用程序和网络之间的应用程序接口(application program interface,简称API),因为它又是用于构造互联网中的网络应用程序的编程接口。当我们进行编程时,需要用到Socket接口,Socket
上一篇:
小型自选商场综合管理系统(ER图+VC++Sql_Server+源代码)-论文(2003doc)
下一篇:
采用VC的伺服电机控制毕业论文(2003doc)