《计算机网络基础》课件.ppt
*************************************UDP协议UDP的特点用户数据报协议(UDP)是一种简单的传输层协议,具有以下主要特点:无连接:通信前不需要建立连接,减少了延迟和开销不可靠传输:不保证数据包的到达、顺序和不重复无拥塞控制:发送方以任何速率发送数据,不会因网络拥塞而降低速率面向报文:UDP不会对应用层数据进行拆分或合并,保留了应用层的报文边界首部开销小:UDP首部仅8字节,远小于TCP的20字节UDP适用于对实时性要求高、对可靠性要求相对较低的应用,如DNS查询、视频流、在线游戏等。UDP报文格式UDP报文由首部和数据两部分组成。首部非常简单,只包含4个字段,共8个字节:源端口号(16位):发送方的端口号,可选字段目的端口号(16位):接收方的端口号长度(16位):UDP报文的总长度(首部+数据),单位为字节校验和(16位):用于检测UDP报文在传输过程中是否出错UDP的校验和计算包括UDP首部、UDP数据以及一个伪首部。伪首部包含源IP地址、目的IP地址、协议字段(值为17,表示UDP)和UDP长度。校验和的使用是可选的,如果不使用,则置为全0。TCP协议面向连接TCP通信前需要建立连接(三次握手),通信结束后需要释放连接(四次挥手)。这种连接是逻辑上的,为端到端通信提供了可靠的通道。可靠传输通过确认机制、超时重传、序号标识等手段,确保数据无差错、不丢失、不重复、按序到达。即使底层网络不可靠,TCP也能提供可靠的数据传输服务。流量控制使用滑动窗口机制,根据接收方的处理能力调整发送速率,防止接收方缓冲区溢出。接收方通过窗口大小字段告知发送方可以发送的数据量。拥塞控制通过慢启动、拥塞避免、快重传和快恢复等算法,根据网络负载状况调整发送速率,防止网络过载,确保网络资源的高效利用。TCP报文格式包含多个字段,总首部长度为20-60字节。主要字段包括:源端口和目的端口、序号、确认号、首部长度、保留位、控制位(如SYN、ACK、FIN等)、窗口大小、校验和、紧急指针等。可选字段用于扩展TCP功能,如最大报文段长度(MSS)、窗口缩放等。TCP连接管理三次握手TCP连接的建立采用三次握手机制,确保双方都准备好进行数据传输:第一次握手:客户端发送SYN=1,seq=x的报文,进入SYN_SENT状态第二次握手:服务器回复SYN=1,ACK=1,seq=y,ack=x+1的报文,进入SYN_RCVD状态第三次握手:客户端发送ACK=1,seq=x+1,ack=y+1的报文,双方进入ESTABLISHED状态三次握手的必要性:防止历史连接请求突然到达服务器,导致错误的连接建立。通过三次握手,可以确保双方都有发送和接收的能力。四次挥手TCP连接的释放采用四次挥手机制,确保双方都完成数据传输:第一次挥手:客户端发送FIN=1,seq=u的报文,进入FIN_WAIT_1状态第二次挥手:服务器回复ACK=1,ack=u+1的报文,进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态第三次挥手:服务器发送FIN=1,ACK=1,seq=v,ack=u+1的报文,进入LAST_ACK状态第四次挥手:客户端回复ACK=1,seq=u+1,ack=v+1的报文,进入TIME_WAIT状态,等待2MSL后关闭连接四次挥手的必要性:TCP是全双工通信,每个方向都需要单独关闭。TIME_WAIT状态的目的是确保最后一个ACK能够到达对方,并防止历史报文影响新的连接。TCP可靠传输序号机制为每个字节编号,确保按序交付确认机制接收方确认已收到的数据超时重传超时未收到确认则重发数据滑动窗口实现流量控制和批量确认TCP采用滑动窗口协议实现可靠传输和流量控制。发送方维护一个发送窗口,表示可以发送但未被确认的数据范围;接收方维护一个接收窗口,表示可以接收的数据范围。滑动窗口的大小是动态调整的,根据网络状况和接收方的处理能力变化。超时重传是TCP可靠性的保障机制。当发送方发送数据后,会启动一个计时器。如果在超时时间内未收到确认,则认为数据丢失,需要重传。TCP采用自适应的超时计算方法,根据往返时间(RTT)的变化动态调整超时阈值,以适应不同的网络环境。TCP流量控制接收窗口TCP首部中的窗口大小字段(windowsize)指示了接收方当前能够接收的数据量。这个值表示从确认号开始,接收方还可以接收多少字节的数据。接收方通过调整窗口大小,告知发送方自己的接收能力,从而实现流量控制。缓冲区管理接收窗口的大小通常取决于接收方的缓冲区容量和当前占用情况。当