Ch5.传输层
一.传输层概述
只有主机才有的层次
1.传输层功能
- 传输层提供进程和进程之间的逻辑通信。
网络异常,图片无法展示| - 复用和分用
- 传输层对收到的报文进行差错检测。
- 传输层的两种协议。
2.传输层的两个协议
传输层有两个好兄弟
大哥TCP和二弟UDP
大哥靠谱,二弟不靠谱
3.传输层的寻址与端口
复用:应用层所有的应用进程可以通过传输层再传输到网络层。
分用:传输层从网络层收到数据后交付指明的应用进程。
端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
端口号长度为16bit,能表示65536个不同的端口号。
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
习题:
1.下列不属于通信子网的是(D).
A.物理层
B.数据链路层
C.网络层
D.传输层
2.OSI参考模型中,提供端到端的透明数据传输服务、差错控制和流量控制的层是(C)。
A.物理层
B.网络层
C.传输层
D.会话层
3.传输层为(B)之间提供逻辑通信。
A.主机
B.进程
C.路由器
D.操作系统
4.关于传输层的面向连接服务的特性是(D)。
A.不保证可靠和顺序交付
B.不保证可靠但保证顺序交付
C.保证可靠但不保证顺序交付
D.保证可靠和顺序交付
5.在TCP/IP参考模型中,传输层的主要作用是在互联网的源主机和目的主机对等实体之间建立用于会话的(D)。
A,操作连接
B.点到点连接
C.控制连接
D.端到端连接
6.可靠传输协议中的“可靠”指的是(D).
A,使用面向连接的会话
B.使用尽力而为的传输
C.使用滑动窗口来维持可靠性
D.使用确认机制来确保传输的数据不丢失
7.以下(D)能够唯一确定一个在互联网上通信的进程。
A.主机名
B.IP地址及MAC地址
C.·MAC地址及端口号
D.IP地址及端口号
8.在(D)范围内的端口号被称为“熟知端口号”并限制使用。这就意味着这些端口号是为常用的应用层协议如FTP、HTTP等保留的。
A.0~127
B.0~255
C.0~511
D.0~1023
9.以下哪个TCP熟知端口号是错误的?(D)
A.TELNET:23
B.SMTP:25
C.HTTP:80
D.FTP:24
10.关于TCP和UDP端口的下列说法中,正确的是(A)。
A.TCP和UDP分别拥有自己的端口号,它们互不千扰,可以共存于同一台主机
B.TCP和UDP分别拥有自己的端口号,但它们不能共存于同一台主机
C.TCP和UDP的端口没有本质区别,但它们不能共存于同一台主机
D.当一个TCP连接建立时,它们互不干扰,不能共存于同一台主机
11.以下说法错误的是(B).
A,传输层是OSI参考模型的第四层
B.传输层提供的是主机间的点到点数据传输
C.TCP是面向连接的,UDP是无连接的
D.TCP进行流量控制和拥塞控制,而UDP既不进行流量控制,又不进行拥塞控制
12.假设某应用程序每秒产生一个0B的数据块,每个数据块被封装在一个TCP报文中,然后再封装在一个IP数据报中。那么最后每个数据报所包含的应用数据所占的百分比是(C).(注意:TCP报文和IP数据报文的首部没有附加字段.)
A.20%
B.40%
C.60%
D.80%
13.若用户程序使用UDP进行数据传输,则(D)层协议必须承担可靠性方面的全部工作。
A.数据链路层
B.网际层
C.传输层
D.应用层
通信子网包括数据层、数据链路层和网络层,主要负贵数据通信。资源子网OSI参考模型的上三层中,传输层承上启下,传输层向高层用户屏蔽下面通信子网的细节(如网络拓扑、路由协议等)。
端到端即是进程到进程,物理层只提供在两个结点之间透明地传输比特流,网络层提供主机到主机的通信服务,主要功能是路由选择。此题的条件若换成“TCP参考模型”,答案依然是C。
传输层提供是端到端服务,为进程之间提供逻辑通信。
面向连接服务是指通信双方在进行通信之前,要先建立一个完整的连接,在通信过程中,整个连接一直可以被实时地监控和管理。通信完毕后释放连接。面向连接的服务可以保证数据的可靠和顺序交付。
TCP/IP模型中,网络层及其以下各层所构成的通信子网负贵主机到主机或点到点的通信,而传输层的主要作用是在源主机进程和目的主机进程之间提供端到端的数据传输。一般来说,端到端通信是由一段段的点到点信道构成的,端到端协议建立在点到点协议之上(正如TCP建立在IP之上),提供应用进程之间的通信手段。所以选D。
如果一个协议使用确认机制对传输的数据进行确认,那么可以认为它是一个可靠的协议;如果一个协议采用“尽力而为”的传输方式,那么是不可靠的。例如,TCP对传输的报文段提供确认,因此是可靠的传输协议;而UDP不提供确认,因此是不可靠的传输协议。
要在互联网上唯一地确定一个进程,就要使用IP地址和端口号的组合,通常称为套接字(Socket),IP地址确定某主机,端口号确定该主机上的某进程。
熟知端口号的数值为0~1023,登记端口号的数值是1024~49151,客户端使用的端口号的数值是49152~65535。
FTP控制连接的端口是21,数据连接的端口是20。
端口号只具有本地意义,即端口号只标识本计算机应用层中的各个进程,且同一台计算机中TCP和UDP分别拥有自己的端口号,它们互不干扰。
传输层是OSI参考模型中的第4层,TCP是面向连接的,它提供流量控制和拥塞控制,保证服务可靠;UDP是无连接的,不提供流量控制和拥塞控制,只能做出尽最大努力的交付。传输层提供的是进程到进程间的传输服务,也称端到端服务。
此题中,一个TCP报文的首部长度是20B,一个IP数据报的首部长度也是20B,再加上60B的数据,一个IP数据报的总长度为100B,可知数据占60%。
传输层协议需要具有的主要功能包括:创建进程到进程的通信;提供流量控制机肌制。UDP在一个低的水平上完成以上功能,使用端口号完成进程到进程的通信,但在传送数据时没有流量控制机制,也没有确认,而且只提供有限的差错控制。因此UDP是一个无连接、不可靠的传输层协议。如果用户应用程序使用UDP进行数据传输,那么必须在传输层的上层即应用层提供可靠性方面的全部工作。
二.UDP协议
1.用户数据报协议UDP概述
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
1.1特点
- UDP是无连接的,减少开销和发送数据之前的时延。
- UDP使用最大努力交付,即不保证可靠交付。
- UDP是面向报文的,适合一次性传输少量数据的网络应用。
- UDP无拥塞控制,适合很多实时应用。
- UDP首部开销小,8B,TCP20B。
应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
2.UDP首部格式
3.UDP校验
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
17:封装UDP报文的IP数据报首部协议字段是17。
UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。
在发送端:
1.填上伪首部
2.全0填充检验和字段
3.全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
4.伪首部+首部+数据部分采用二进制反码求和
5.把和求反码填入检验和字段.去掉伪首部,发送
在接收端:
1.填上伪首部
2.伪首部+首部+数据部分采用二进制反码求和
3.结果全为1则无差错,否则丢弃数据报/交给应用层附上出差
错的警告。
习题:
选择
1.使用UDP的网络应用,其数据传输的可靠性由(B)负贵。
A.传输层
B.应用层
C.数据链路层
D.网络层
2.以下关于UDP协议的主要特点的描述中,错误的是(B).
A.UDP报头主要包括端口号、长度、校验和等字段
B.UDP长度字段是UDP数据报的长度,包括伪首部的长度
C.UDP校验和对伪首部、UDP报文头及应用层数据进行校验
D.伪首部包括IP分组报头的一部分
3.UDP数据报首部不包含(D)。
A.UDP源端口号
B.UDP校验和
C.UDP目的端口号
D.UDP数据报首部长度
4.UDP数据报中的长度字段(D)。
A.不记录数据的长度
B.只记录首部的长度
C.只记录数据部分的长度
D.包括首部和数据部分的长度
5.UDP数据报比P数据报多提供了(C)服务。
A.流量控制
B.拥塞控制
C.端口功能
D.路由转发
6.下列关于UDP的描述,正确的是(D)。
A,给出数据的按序投递
B.不允许多路复用
C.拥有流量控制机制
D.是无连接的
7.接收端收到有差错的UDP用户数据时的处理方式是(A).
A.丢弃
B.请求重传
C.差错校正
D.忽略差错
8.以下关于UDP校验和的说法中,错误的是(B)。
A.UDP的校验和功能不是必需的,可以不使用
B.如果UDP校验和计算结果为0,那么在校验和字段填充0
C.UDP校验和字段的计算包括一个伪首部、UDP首部和携带的用户数据
D.UDP校验和的计算方法是二进制反码运算求和再取反
9.下列关于UDP校验的描述中,(B)是错误的。
A.UDP校验和段的使用是可选的,如果源主机不想计算校验和,那么该校验和段应为全0
B.在计算校验和的过程中,需要生成一个伪首部,源主机需要把该伪首部发送给目的主机
C.如果数据报在传输过程中被破坏,那么就把它丢弃
D.UDP数据报的伪首部包含了P地址信息
10.下列网络应用中,(D)不适合使用UDP协议.
A.客户机/服务器领域
B.远程调用
C.实时多媒体应用
D.远程登录
11.【2014统考真题】下列关于UDP协议的叙述中,正确的是().
Ⅰ.提供无连接服务
Ⅱ.提供复用/分用服务
Ⅲ.通过差错校验,保障可靠数据传输
A.仅Ⅰ
B.仅Ⅰ、Ⅱ
C.仅Ⅱ、IⅢ
D.Ⅰ、Ⅱ、Ⅲ
12.【2018统考真题】UDP协议实现分用时所依据的头部字段是()。
A.源端口号
B.目的端口号
C.长度
D.校验和
简答
1.为什么要使用UDP?让用户进程直接发送原始的IP分组不就足够了吗?
2.使用TCP对实时语音数据的传输有没有问题?使用UDP在传送数据文件时会有什么问题?
3.一个应用程序用UDP,到了IP层将数据报再划分为4个数据报片发送出去。结果前两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试问:在目的站能否将这两次传输的4个数据报片组装成为完整的数据报?假定目的站第一次收到的后两个数据片仍然保存在目的站的缓存中。
UDP本身是无法保证传输的可靠性的,并且UDP是基于网络层的IP的,IP的特点是尽最大努力交付,因此无法在网络层及数据链路层提供可靠传输。因此,只能通过应用层协议来实现可靠传输。
伪首部只是在计算校验和时临时添加的,不计入UDP的长度。对于D选项,伪首部包括源IP和目的IP,这是IP分组报头的一部分。
UDP数据报的格式包括UDP源端口号、UDP目的端口号、UDP报文长度和校验和,但不包括UDP数据报首部长度。因为UDP数据报首部长度是固定的8B,所以没有必要再设置首部长度字段。
长度字段记录UDP数据报的长度(包括首部和数据部分),以字节为单位。
虽然UDP协议和IP协议都是数据报协议,但是它们之间还是存在差别。其中,最大的差别是P数据报只能找到目的主机而无法找到目的进程,UDP提供端口功能及复用和分用功能,可以将数据报投递给对应的进程。
UDP是不可靠的,所以没有数据的按序投递,排除A;UDP只在IP的数据报服务上增加了很少的一点功能,即复用和分用功能及差错检测功能,排除B:显然UDP没有流量控制,排除C:UDP是传输层的无连接协议,答案为D。
接收端通过校验发现数据有差错,就直接丢弃该数据报,仅此而已。
UDP的校验和不是必需的,如果不使用校验和,那么将校验和字段设置为0,而如果校验和的计算结果恰好为0,那么将校验和置为全1。
UDP数据报的伪首部包含了IP地址信息,目的是通过数据校验保证UDP数据报正确地到达目的主机。该伪首部由源和目的主机仅在校验和计算期间建立,并不发送。
UDP的特点是开销小,时间性能好且易于实现。在客户服务器中,它们之间的请求都很短,使用UDP不仅编码简单,而且只需要很少的消息;远程调用使用UDP的理由和客户服务器模型一样:对于实时多媒体应用,需要保证数据及时传送,而比例不大的错误是可以容忍的,所以使用UDP也是合适的,而且使用UDP协议可以实现多播,给多个客户端服务;而远程登录需要依靠一个客户端到服务器的可靠连接,使用UDP是不合适的。
传输层分用的定义是,接收方的传输层剥去报文首部后,能把这些数据正确交付到目的进程。C和D选项显然不符。端口号是传输层服务访问点(TSAP),用来标识主机中的应用进程。对于A和B选项,源端口号在需要对方回信时选用,不需要时可用全0。目的端口号在终点交付报文时使用,符合题意,因此选B。
传输层分用的定义是,接收方的传输层剥去报文首部后,能把这些数据正确交付到目的进程。C和D选项显然不符。端口号是传输层服务访问点(T$AP),用来标识主机中的应用进程。对于A和B选项,源端口号在需要对方回信时选用,不需要时可用全0。目的端口号在终点交付报文时使用,符合题意,因此选B。
仅仅使用IP分组还不够。IP分组包含亚地址,该地址指定一个目的机器。一旦这样的分组到达目的机器,网络控制程序如何知道把它交给哪个进程呢?UDP分组包含一个目的端口,这一信息是必器的,因为有了它,分组才能被投递给正确的进程。此外,UDP可以对数据报做包括数据段在内的差错检测,而P只对其首部做差错检测。
如果语音数据不实时播放,那么可以使用TCP,因为TCP有重传机制,传输可靠。接收端用TCP将语音数据接收完毕后,可以在以后的任何时间进行播放。若假定是实时传输,不宜重传,则必须使用UDP。UDP不保证可靠递交,没有重传机制,因此在传输数据时可能会丢失数据,但UDP比TCP的开销要小很多,实时性好。
不行。重传时,IP数据报的标识字段会有另一个标识符。仅当标识符相同的IP数据报片才能组装成一个IP数据报。前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。
三.TCP协议
1.TCP协议的特点
2.TCP报文段首部格式
序号:在一个TCP连接中传送的字节流中
的每一个字节都按顺序编号,本字段表
示本报文段所发送数据的第一个字节的
序号。
确认号:期望收到对方下一个报文段的
第一个数据字节的序号。若确认号为N,
则证明到序号N-1为止的所有数据都已正
确收到。
数据偏移(首部长度):TCP报文段的
数据起始处距离TCP报文段的起始处有多
远,以4B位单位,即1个数值是4B。
6个控制位
紧急位URG:URG=1时,标明此报文段
中有紧急数据,是高优先级的数据, 应尽快传送,不用在缓存里排队,配 合紧急指针字段使用。
确认位ACK:ACK=1时确认号有效,在 连接建立后所有传送的报文段都必须 把ACK置为1。
推送位PSH:PSH=1时,接收方尽快交 付接收应用进程,不再等到缓存填满 再向上交付。
复位RST:RST=1时,表明TCP连接中 出现严重差错,必须释放连接,然后 再重新建立传输链接。
同步位SYN:SYN=1时,表明是一个连 接请求/连接接受报文。
终止位FN:FN=1时,表明此报文段发
送方数据已发完,要求释放连接。
窗口:指的是发送本报文段的一方的
接收窗口,即现在允许对方发送的数
据量。
检验和:检验首部+数据,检验时要加
上12B伪首部,第四个字段为6。
紧急指针:URG=1时才有意义,指出
本报文段中紧急数据的字节数。
选项:最大报文段长度MSS、窗口扩
大、时间戳、选择确认