1.UDP为什么比TCP速度快?
答:(1)因为TCP收发数据前后进行的连接设置及清除过程
(2)TCP收发数据过程中为保证可靠性而添加的流控制
2.为什么TCP数据传输可靠而UDP数据传输不可靠?
答:因为TCP为了提供可靠的数据传输服务,TCP在不可靠的IP层进行流控制,而UDP就缺少这种流控制机制。
3.使用sendto传输数据过程:
答:第一阶段:向UDP套接字注册目标IP和端口号
第二阶段:传输数据
第三阶段:删除UDP套接字中注册的目标地址信息
4.UDP特点:
答:(1):在UDP中,无论是服务器端还是客户端,都只需要一个套接字,只需要一个套接字就可以向任意主机传输数据
(2):connect函数不区分TCP/UDP,当UDP调用connect函数后,并不意味着要与对方UDP套接字连接,这只是向UDP套接字注册目标IP和端口信息。调用connect后不仅可以使用sendto,recvfrom,还可以使用write,read进行通信。
5.UDP数据报向对方主机的UDP套接字传递过程中,IP和UDP分别负责哪些部分?
答:IP负责节点之间数据包的传送,IP将数据包传送到节点之后,并不能识别节点上的不同应用,UDP用端口表示这些不同的应用来加以识别,增加了端口信息。而TCP还加入了更复杂的传输控制。
6.UDP一般比TCP快,但根据交换数据的特点,其差异可大可小,请说明何种情况下UDP的性能大于TCP?
答:如果每次收发的数量小但需要频繁连接时,UDP比TCP更高效。每次收发的数据量越大,TCP的传输速率就越接近UDP的传输速率。
7.客户端TCP套接字调用connect函数时自动分配IP和端口号。而客户端UDP中不调用connect函数,那何时分配IP和端口号?
答:在首次调用sendto函数时给出相应套接字自动分配ip和端口号,而且此时分配的地址以值保留到程序结束。