传输层的俩个主要协议(TCP/UDP)
(2013-04-16 00:14:39)
标签:
传输层、tcp、udp协议it |
分类: 计算机网络协议 |
UDP的英文全称为:User Datagram
Protocol,它是面向无连接的,不提供可靠交付,但是提供尽最大可能的交付。
TCP的英文全称为:Transmission Control Protocol,TCP是面向连接的,提供可靠的交互服务。每一条TCP连接唯一被通信的两端的两个套接字所确定。所谓套接字就是socket(Ip地址:端口号)例如127.0.0.1:8080。而TCP连接=(socket1,socket2)={(ip1:port1),(ip2:port2)}.
TCP可靠传输的工作原理:
首先是停止等待协议工作过程,分为几种情况
1.分组传输无差错情况:假设A和B通信,A发送第一个分组M1,然后暂停发送,直到A收到B返回过来的确认已经收到M1的消息;接着再发送第二个分组M2,然后又暂停发送等待,直到收到B返回过来的已经收到M2的确认消息。就这样:发送—>等待确认收到后—>发送—>等待确认......一直下去.
2.分组传输出现差错情况:若分组M1在传输过程中出现了差错,B接受M1时会检测出了差错,就会将M1丢弃,其他什么都不做;还有就是M1在传输的路上就已经丢失,根本就没有到达B,这时B当然不知道A向他发送了消息,在这种情况下,B也什么都不做;只要超过了一定的时间A没有收到B的确认消息,A就会认为刚发送的分组数据M1已经丢失,因而A会重新发送分组数据M1给B,直到收到B的已经收到M1的确认消息。这就是超时重传机制。
要实现超时重传机制,就必须将已发送但未被确认的的分组数据M保留一份副本,当出现超时未收到确认的消息的M再发送一遍,当收到已经收到的确认消息的分组可以删掉,只保留未被确认的分组的副本。
为了能够确认哪些发送出去的分组已经收到确认,哪些未收到确认消息,必须对所发出去的各个分组进行编号。
超时计时器的设置。超时计时器的设置的重传时间应当根据数据分组传输的平均往返时间、网络的拥堵情况(网络时延)等情况确定。
3.确认丢失或确认迟到。就是B收到的A发送过来的分组数据M1,但是返回的确认消息在传输的路上丢失了或者网络太堵而迟到了(就是超出了超时时钟所设定的时间段还未到达A)。此时A会再次向B发送M1,当B再次收到M1后,B要做的事情是:第一,将这个重复的分组数据M1丢弃,不往上层交付。第二,向A发送收到数据的确认消息。因为A之所以重传M1就是表明A没有收到对M1的确认消息,一次B要再次发送确认消息。
如果A不断重传分组但是总收不到确认消息,说明网络太差,不能进行通信。
利用这种确认和重传机制,就可以在不可靠的网络上实现可靠通信。
可靠通信协议也被称为自动重传请求。
4.信道利用率:要提高信道的利用率,发送方可以采用流水线传输方式进行发送分组,而接收方采用积累确认的方式进行确认,就是说,接收方不必对接收到的分组逐个发送确认,而是可以在接受几个分组后,对按序到达的最后一个分组发送确认消息就行了。这样表就明,已经接收到了前面的几个分组了,例如:
A连续向B发送了M1、M2、M3、M4、M5、M6、M7共7个分组数据,而B只接受到了五个分组(M1、M2、M3、M6、M7),也就是丢失了M4、M5两个分组,则B只需要发送M3已收到的确认消息,因为M3到M6有中断,就是中断及以后的分组不予以确认,A在收到B的M3已收到的确认消息后,于是重传M4、M5、M6、M7这几个分组。
TCP的英文全称为:Transmission Control Protocol,TCP是面向连接的,提供可靠的交互服务。每一条TCP连接唯一被通信的两端的两个套接字所确定。所谓套接字就是socket(Ip地址:端口号)例如127.0.0.1:8080。而TCP连接=(socket1,socket2)={(ip1:port1),(ip2:port2)}.
TCP可靠传输的工作原理:
首先是停止等待协议工作过程,分为几种情况
1.分组传输无差错情况:假设A和B通信,A发送第一个分组M1,然后暂停发送,直到A收到B返回过来的确认已经收到M1的消息;接着再发送第二个分组M2,然后又暂停发送等待,直到收到B返回过来的已经收到M2的确认消息。就这样:发送—>等待确认收到后—>发送—>等待确认......一直下去.
2.分组传输出现差错情况:若分组M1在传输过程中出现了差错,B接受M1时会检测出了差错,就会将M1丢弃,其他什么都不做;还有就是M1在传输的路上就已经丢失,根本就没有到达B,这时B当然不知道A向他发送了消息,在这种情况下,B也什么都不做;只要超过了一定的时间A没有收到B的确认消息,A就会认为刚发送的分组数据M1已经丢失,因而A会重新发送分组数据M1给B,直到收到B的已经收到M1的确认消息。这就是超时重传机制。
要实现超时重传机制,就必须将已发送但未被确认的的分组数据M保留一份副本,当出现超时未收到确认的消息的M再发送一遍,当收到已经收到的确认消息的分组可以删掉,只保留未被确认的分组的副本。
为了能够确认哪些发送出去的分组已经收到确认,哪些未收到确认消息,必须对所发出去的各个分组进行编号。
超时计时器的设置。超时计时器的设置的重传时间应当根据数据分组传输的平均往返时间、网络的拥堵情况(网络时延)等情况确定。
3.确认丢失或确认迟到。就是B收到的A发送过来的分组数据M1,但是返回的确认消息在传输的路上丢失了或者网络太堵而迟到了(就是超出了超时时钟所设定的时间段还未到达A)。此时A会再次向B发送M1,当B再次收到M1后,B要做的事情是:第一,将这个重复的分组数据M1丢弃,不往上层交付。第二,向A发送收到数据的确认消息。因为A之所以重传M1就是表明A没有收到对M1的确认消息,一次B要再次发送确认消息。
如果A不断重传分组但是总收不到确认消息,说明网络太差,不能进行通信。
利用这种确认和重传机制,就可以在不可靠的网络上实现可靠通信。
可靠通信协议也被称为自动重传请求。
4.信道利用率:要提高信道的利用率,发送方可以采用流水线传输方式进行发送分组,而接收方采用积累确认的方式进行确认,就是说,接收方不必对接收到的分组逐个发送确认,而是可以在接受几个分组后,对按序到达的最后一个分组发送确认消息就行了。这样表就明,已经接收到了前面的几个分组了,例如:
A连续向B发送了M1、M2、M3、M4、M5、M6、M7共7个分组数据,而B只接受到了五个分组(M1、M2、M3、M6、M7),也就是丢失了M4、M5两个分组,则B只需要发送M3已收到的确认消息,因为M3到M6有中断,就是中断及以后的分组不予以确认,A在收到B的M3已收到的确认消息后,于是重传M4、M5、M6、M7这几个分组。