运输层的两个主要协议:
- 用户数据报协议UDP
- 传输控制协议TCP
运输层的端口分为两大类:
-
服务器端使用的端口号:
(1) 系统端口号–0~1023
(2) 登记端口号–1024~49151 -
客户端使用的端口号–49152~65535
用户数据报协议UDP
- UDP是无连接的
- UDP是尽最大努力交付的
- UDP是面向报文的
- UDP是没有拥塞控制的
- UDP是支持一对一、一对多、多对一、多对多的交互通信
- UDP的首部开销小
UDP的首部格式:
传输控制协议TCP概述:
TCP最主要的特点
- TCP是面向连接的运输层协议
- TCP只能是点对点的连接套接字或端口
- TCP提供可靠交付的服务
- TCP提供全双工通信
- 面向字节流
停止等待协议:
1.如果传送过程中出现差错
则要注意三点:
- A在发送完一个分组后,必须暂时保留已发送的分组的副本(在超时的情况下使用)
- 分组和确认分组都必须进行编号
- 超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些
信道利用率的计算:
TCP报文段的首部格式
若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到
紧急URG:当URG=1时,应尽快发送
确认ACK: 当ACK=1时,确认号字段才有效
推送PSH: 当PSH=1时,请求实时通信
复位RST: 当RST=1时,需要重新连接
同步SYN: 当SYN=1,ACK=0时,表明是一个连接请求报文段。若对方同意,则建立连接,响应的报文段中使SYN=1,ACK=1
终止FIN: 当DIN=1时,表明报文段的发送方的数据发送完毕,并要求释放运输连接。
窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着。
TCP可靠传输实现
TCP的流量控制
–让发送方的发送速率不要太快,要让接收方来得及接收
TCP的拥塞控制方法
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
TCP的运输连接管理
运输连接有三个阶段:连接建立、数据传送、连接释放
试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?
答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务。
运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。
各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复 用和分用的形式加载到网络层。
试说明运输层中伪首部的作用。
答:用于计算运输层数据报校验和。
某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提供?
答:不可跳过UDP而直接交给IP层IP数据报IP报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程。UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。
为什么在TCP首部中要把TCP端口号放入最开始的4 个字节?
答:在ICMP的差错报文中要包含IP首部后面的8个字节的内容,而这里面有TCP首部中的源端口和目的端口。当TCP收到ICMP差错报文时需要用这两个端口来确定是哪条连接出了差错。
解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。
答:当主机1和主机2之间连接建立后,主机1发送了一个TCP数据段并正确抵达主机2,接着 主机1发送另一个TCP数据段,这次很不幸,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数 据,而仍然可接受主机1发来的数据,所以可保证不丢失数据。