将要相互通信双方怎样进行建立TCP连接?在TCP报文段的首部中只有端口号而没有IP地址,当TCP将其报文段交给IP层时,IP协议怎样知道目的IP地址呢?为什么把IP地址又称为“虚拟地址”,把TCP连接说成是“虚连接”?假设在建立连接时使用2次握手而非3次握

admin2012-06-21  66

问题 将要相互通信双方怎样进行建立TCP连接?在TCP报文段的首部中只有端口号而没有IP地址,当TCP将其报文段交给IP层时,IP协议怎样知道目的IP地址呢?为什么把IP地址又称为“虚拟地址”,把TCP连接说成是“虚连接”?假设在建立连接时使用2次握手而非3次握手的方案,即:不再需要第3条报文,这时会发生什么情况?举例说明。

选项

答案(1)使用三次握手建立连接过程: 源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。 目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。 ?源主机再回送一个数据段,同样带有递增的发送序号和确认序号。 (2)仅从TCP报文段的首部无法得知目的IP地址,TCP必须告诉IP层此报文段要发送给哪一个目的主机(给出其IP地址)。 (3)因为IP地址是靠软件来维持的而不是硬件地址。互联网络也是虚拟的网络系统,它的通信系统是抽象的。虽然许多硬件和软件的组合看起来好像构成了一个很大的网络,但这样的大网络实际上并不存在。这种虚拟网络的地址也是虚拟的,因此IP地址又称为“虚拟地址”。同样,因为在两个主机之间建立的TCP连接并非真正的物理连接。传输层并不知道所传送的报文段都经过哪些中间结点。实际上,IP数据报都各自独立地选择路由,而所经过的中间结点(路由器)并不记录各IP数据报通过的情况。TCP连接只是从传输层看来,好像在两个传输实体之间有一条连接。因此这条连接可以称之为“虚连接”。 (4)现在把三次握手改成仅需要两次握手,可能发生死锁。假定B给A发送一个连接请求分组,A收到了这个组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功的建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,不知道A是否已经准备好,不知道A建议B使用什么样的序列号,也不知道A是否同意B所建议的B到A的初始序列号等等,这时B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待接收连接确认应答分组。而A在发出的分组超时以后,重复发送同样的分绢。

解析
转载请注明原文地址:https://kaotiyun.com/show/H8xi777K
0

最新回复(0)