【答案解析】许多应用程序都可以使用TCP或UDP来传送数据。传输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16位的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。
在TCP中建立连接采用三次握手的方法。为了建立连接,其中一方(如服务器)通过执行LISTEN和ACCEPT原语被动地等待一个到达的连接请求。另一方(如客户方)执行CONNECT原语,同时要指明它想连接到的IP地址和端口号,设置它能够接受的TCP数据包的最大值,以及一些可选的用户数据。CONNECT原语发送一个SYN=1,ACK=0的数据包到目的端,并等待对方响应。
该数据包到达目的端后,那里的TCP实体将查看是否有进程在侦听目的端口字段指定的端口。如果没有,它将发送一个RST=1的应答,拒绝建立该连接。
如果某个进程正在对该端口进行侦听,于是便将到达的TCP数据包交给该进程,它可以接受或拒绝建立连接。如果接受,便发回一个确认数据包。一般情况下,TCP的连接建立过程如图所示。
