哈工大1140320206霍峻杰:UDP时钟协议实验与问题解决

需积分: 0 1 下载量 109 浏览量 更新于2024-08-04 收藏 608KB DOCX 举报
本实验报告主要围绕计算机网络传输协议TCP和UDP展开,针对哈尔滨工业大学11403202班学生霍峻杰的实验内容,题目为"用UDP实现一个时钟协议"。UDP(用户数据报协议)作为一种无连接的传输协议,尽管存在不可靠性,例如数据包可能丢失、无法确认接收、可能出现粘包等问题,但由于其传输速度快,仍被广泛应用,如DNS查询。 实验中,客户端首先向服务器发送包含自身时间Ts的消息,服务器在接收到后随机延迟一段时间,获取当前时间Tn,再次延迟后将时间Tn发送回客户端。客户端通过接收到的时间Tn和本地接收到应答的时间Tr计算出最终的时间T。UDP的不可靠性体现在无法知道数据包是否成功送达,因此设置了超时重传机制,当数据包在预定时间内未到达,就会尝试重新发送,这里使用setsockopt函数中的SO_RCVTIMEO参数实现。 实验中特别提到,为了解决客户端可能发送多个请求且无法匹配返回包的问题,每个发送的UDP包都附加了一个随机数作为标识符,使得服务器可以根据返回包中的随机数识别出对应的发送请求。 实验结果显示,当数据包丢失时,客户端能够正确执行超时重传,设定的重传间隔为10秒。同时,为了验证多包发送问题,实验者故意使服务器返回的随机数与发送的不匹配,客户端会不断重试,直到找到正确的对应包。 本实验不仅考察了UDP协议的基本工作原理,还涉及到了如何处理其固有的不可靠性问题,通过实践加深了对无连接协议的理解和应用。