17.3 基于TCP协议的网络编程 17.3.1 TCP协议基础
17.3 基于TCP协议的网络编程
TCP/IP
通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket
,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java
对基于TCP
协议的网络通信提供了良好的封装,Java
使用Socket
对象来代表两端的通信端口,并通过Socket
产生IO
流来进行网络通信。
17.3.1 TCP协议基础
IP协议
IP
协议是nternet
上使用的一个关键协议,它的全称是Internet Protocol
,即**Internet
协议**,通常简称IP
协议。通过使用IP
协议,从而使Internet
成为一个允许连接不同类型的计算机和不同操作系统的网络。
要使两台计算机彼此能进行通信,必须使两台计算机使用同一种“语言”,IP协议只保证计算机能发送和接收分组数据。IP协议负责将消息从一个主机传送到另一个主机,消息在传送的过程中被分割成一个个的小包。
尽管计算机通过安装IP软件,保证了计算机之间可以发送和接收数据,但IP
协议还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上Internet
的计算机还需要安装TCP
协议来提供可靠并且无差错的通信服务。
TCP协议
TCP
协议被称作一种端对端协议。这是因为它对两台计算机之间的连接起了重要作用,当一台计算机需要与另一台远程计算机连接时,TCP
协议会让它们建立一个用于发送和接收数据的虚拟链路.TCP
协议负责收集这些信息包,并将其按适当的次序放好传送,接收端收到后再将其正确地还原TCP
协议保证了数据包在传送中准确无误。TCP
协议使用重发机制:一当一个通信实体发送一个消息给另一个通信实体后,需要收到另一个通信实体的确认信息,如果没有收到另一个通信实体的确认信息,则会再次重发刚才发送的信息。
通过这种重发机制,TCP
协议向应用程序提供了可靠的通信连接,使它能够自动适应网上的各种变化。即使在Internet
暂时出现堵塞的情况下,TCP
也能够保证通信的可靠性。
图17.4显示了TCP
协议控制两个通信实体互相通信的示意图
综上所述,虽然P和TCP
这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者结合起来,才能保证Internet
在复杂的环境下正常运行。凡是要连接到Internet
的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称为TCP/IP
协议。