传输层
一、知识点:
一、传输层的功能
1.提供给用进程间的逻辑通信(网络层提供主机之间的逻辑通信)。两个主机进展通信实际上就是两个主机中的应用进程互相通信。应用进程之间的通信又称为端到端的通信。这里“逻辑通信〞的意思是:传输层之间的通信好似是沿水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。
2.对收到的报文进展过失检测(网络层只检查IP数据报首部)。
3.根据应用的不同,传输层需要有两种不同的传输协议,即面向连接的TCP和无连接的UDP(网络层无法同时实现两种协议。
二、传输层寻址与端口(理解)
数据链路层按MAC地址寻址,网络层按IP地址来寻址的,而传输层是按端口号来寻址的。端口就是
传输层效劳访问点(TSAP)。不同的应用进程的报文可以通过不同的端口向下交付给传输层,再往下由传输层统一处理交给网络层,这一过程称为复用。端口用一个16bit端口号进展标志,共允许有64k个端口号。
1.熟知端口,其数值一般为0-1023当一种新的应用程序出现时,必须为它指派一个熟知端口,以便其他应用进程和其交互。
常用端口:FTP: 21,20; SMTP:25 ; : 80 ;
2.一般端口,用来随时分配给请求通信的客户进程
我们知道,一台拥有IP地址的主机可以提供许多效劳,实际上是通过“IP地址+端口号〞来区分不同的效劳的。称为插口或套接字、套接口。即:插口=(IP地址,端口号)
三、无连接效劳与面向连接效劳(重点)
传输层提供了两种类型的效劳:无连接效劳和面向连接效劳。相应的实现分别是用户数据报协议UDP和传输控制协议TCP。当采用TCP协议时,传输层向上提供的是一条全双工的可靠逻辑信道;当采用UDP协议时,传输层向上提供的是一条不可靠的逻辑信道。
1.UDP的主要特点
(1)传送数据前无需建立连接,数据到达后也无需确认。
(2)不可靠交付。
(3)报文头部短,传输开销小,时延较短。
2.TCP的主要特点
(1)面向连接,不提供播送或多播效劳。
(2)可靠交付。
(3)报文段头部长,传输开销大。
常见的使用UDP的应用层协议有:DNS,TFTP,RIP,BOOTP,DHCP,SNMP,NFS,IGMP等。使用TCP的应用层协议有:SMTP,TELNET, ,FTP等。
四、用户数据报协议UDP
1.UDP概述
UDP和TCP最大的区别在于它是无连接的,UDP只在IP的数据报效劳之上增加了端口的功能和过失检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在*些方面有其特殊的优点:
(1)发送数据之前不需要建立连接。
(2)UDP的主机不需要维持复杂的连接状态表。
(3)UDP用户数据报只有8个字节的首部开销。
tcp ip协议就是指传输控制协议 网际协议(4)网络出现的拥塞不会使源主机的发送速率降低。这对*些实时应用(如IP、实时视频会议)是很重要的。
2.UDP数据报
UDP数据报有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节:
(1)源端口,即源端口号。
(2)目的端口,即目的端口号。
(3)长度,即UDP用户数据报的长度。
(4)检验和,即检测UDP用户数据报在传输中是否有错。
六、TCP连接收理(重点,必考)
TCP的传输连接有三个阶段,即:连接建立、数据传送和连接释放。TCP传输连接的管理就是使传输连接的建立和释放都能正常地进展。TCP的连接和建立都是采用客户效劳器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做效劳器(server)。
“三次握手〞一定要会!!
TCP传输连接的建立采用“3次握手〞的方法,如图26.2所示:
●第一次握手,A向B发送连接请求,即一个SYN字段为1的报文段;
●第二次握手,B收到连接请求报文段后,如同意,则发回确认。
●第三次握手,A收到B确实认信息后,再加以确认。
采用3次握手〞的方法,目的是为了防止报文段在传输连接建立过程中出现过失。通过3次报文段的交互后,通信双方的进程之间就建立了一条传输连接,然后就可以用全双工的方式在该传输连接上正常的传输数据报文段了。
七、TCP可靠传输
1.TCP数据编号与确认
TCP协议是面向字节的。并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据局部的第一个字节的序号。
TCP确实认是对接收到的数据的最高序号表示确认。接收端返回确实认号是已收到的数据的最高序号加1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。
2.TCP的重传机制
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到了规定时间,但此时还没有收到确认,则就要重传这一报文段。
由于TCP的下层是一个互联网环境,IP数据报所选择的路由变化很大。因而传输层的往返时延的方差也很大。为了计算超时计时器的重传时间,TCP采用了一种自适应的算法:
(1)记录每一个报文段发出的时间,以及收到相应确实认报文段的时间。这两个时间之差就是报文段的往返时延。
(2)将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延RTT。
(3)每测量到一个新的往返时延样本,就按下式重新计算一次平均往返时延RTT:
平均往返时延RTT =α×(旧的RTT)+ (1-α)×(新的往返时延样本)
在上式中,0≤α<1。假设α很接近于1,表示新算出的平均往返时延RTT和原来的值相比变化不大
八、TCP流量控制和拥塞控制
1.滑动窗口的概念
TCP采用大小可变的滑动窗口进展流量控制。窗口大小的单位是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。因特网建议标准定义了以下四种算法:慢开场、塞防止、快重传和快恢复。
慢开场算法的做法是:在连接建立时,将拥塞窗口cwnd初始化为一个最大报文段长度MSS的数值。此后,每收到一个对新的报文段确实认,就将拥塞窗口cwnd增加至多一个MSS的数值。通常表现为按指数规律增长。
为防止拥塞窗口cwnd的增长引起网络阻塞,还需要一个状态变量,即慢开场门限ssthresh,其用法如下:
当cwnd<ssthresh时,使用慢开场算法;
当cwnd>ssthresh时,停顿使用慢开场算法,改用拥塞防止算法;
当cwnd=ssthresh时,既可使用慢开场算法,也可使用拥塞防止算法。
拥塞防止算法的做法是:发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS的大小。通常表现为按线性规律增长。(“拥塞防止〞并非指完全能够防止了拥塞,而只是使网络比拟不容易出现拥塞)不管在慢开场阶段还是拥塞防止阶段,只要发现网络出现拥塞(其根据是没有按时收到ACK或收到了重复的ACK),就要将慢开场门限ssthresh设置为出现拥塞时的发送窗口值的一半(但不能小于2)。
3.快重传和快恢复
快重传和快恢复是对以上拥塞控制算法的改良,以防止有时一条TCP连接会因等待重传计时器的超时而空闲很长的时间。快重传算法规定,发送端只要一连收到三个重复的ACK 即可断定有分组丧失了,就应立即重传丧失的报文段而不必继续等待为该报文段设置的重传计时器的超时。
快恢复算法如下:
(1)当发送端收到连续三个重复的ACK时,就重新设置慢开场门限ssthresh。
(2)与慢开场不同之处是拥塞窗口cwnd不是设置为1,而是设置为ssthresh +3×MSS。
(3)假设收到的重复的ACK 为n个(n>3),则将cwnd设置为ssthresh+n×MSS。
(4)假设发送窗口值还容许发送报文段,就按拥塞防止算法继续发送报文段。
(5)假设收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh。
例题精讲
【例1】在TCP/IP参考模型中,传输层的主要作用是在互联网络的源主机和目的主机对等实体之间建立用于会话的( C )。
A.点到点连接B.操作连接
C.端到端连接D.控制连接
【例2】如果用户程序使用UDP协议进展数据传输,则( D )层协议必须承当可靠性方面的全部工作。
A.数据链路层B.网际层
C.传输层D.应用层
【例3】 TCP协议是面向连接的协议,提供连接的功能是(1)( A )的;采用(2)( B )技术来实现可靠数据流的传送。为了提高效率,又引入了滑动窗口协议,协议规定重传(3)(B )的报文段,这种报文段的数量最多可以(4)( D );TCP采用滑动窗口协议可以实现(5)( C )。
(1)A.全双工B.单工C.半双工D.单方向
(2)A.超时重传B.肯定确认(捎带一个报文段的序号)
C.超时重传和肯定确认D.丧失重传和否认性确认
(3)A.未被确认及至窗口首端的所有报文段B.未被确认
C.未被确认及至退回N值的所有报文段D.仅丧失
(4)A.是任意的B.1个
C.大于发送窗口的大小D.等于发送窗口的大小
(5)A.端到端的流量控制B.整个网络的拥塞控制
C.端到端的流量控制和网络的拥塞控制D.整个网络的过失控制
【例7】假定TCP采用2次握手代替3次握手来建立连接,也就是说省去第三个报文,是否可能会发生死锁"
解此题考察对TCP连接收理中三次握手原理的理解。
3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进展协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定A给B发送一个连接请求分组,B收到了这个分组,并发送了确认应答分组。按照两次握手的协定,B认为连接已经成功地建立了,可以开场发送数据分组。可是,A在B的应答分组在传输中被丧失的情况下,将不知道B是否已准备好,也不知道B发送数据使用的初始序列号,A 甚至疑心B是否收到自己的连接请求分组。在这种情况下,A认为连接还未建立成功,将忽略B发来的任何数据分组,只等待连接确认应答分组。而B在发出的分组超时后,重复发送同样的分组,这样就形成了死锁(如图26.4)。
练习题精选
一、单项选择题
1.OSI七层模型中,提供端到端的透明数据传输效劳、过失控制和流量控制的层是(C )。
A.物理层B.网络层C.传输层D.会话层
2.传输层为( B )之间提供逻辑通信。
A.主机B.进程C.路由器D.操作系统
3.( C )是TCP/IP模型传输层中的无连接协议。
A.TCP协议B.IP协议C.UDP协议D.ICMP协议
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论