5、分布式系统通信:TCP与UDP、远程方法调用及部分故障处理

分布式系统通信:TCP与UDP、远程方法调用及部分故障处理

1. TCP与UDP对比

TCP和UDP是传输层的两种重要协议,它们存在诸多显著差异。TCP在连接建立时采用3次握手(SYN、SYN ACK),并会对数据包进行确认(ACK),这样能有效处理数据包丢失问题。此外,TCP还有一个4次握手的连接关闭阶段,但在相关图示中未展示。而UDP则省去了连接建立、拆除、确认和重试等环节。因此,使用UDP的应用程序需要能够容忍数据包丢失以及客户端或服务器故障,并做出相应处理。

2. 远程方法调用(RMI)

可以使用与传输层协议TCP和UDP直接交互的低级API来编写分布式应用程序,最常见的方法是使用标准化的套接字库。不过,套接字复杂且容易出错,通常不建议使用,除非确实需要编写系统级代码。

2.1 套接字概述

套接字是客户端和服务器之间双向网络连接的一个端点,由节点的IP地址和端口组合来标识。每个节点可支持65,535个TCP端口和65,535个UDP端口。连接由源套接字和目标套接字地址组合来识别。套接字库支持TCP和UDP协议,分别使用SOCK_STREAM和SOCK_DGRAM选项。

使用套接字进行通信时,以移动银行应用为例,客户端可能会向服务器发送请求,如查询用户支票账户余额:

{"balance", "000169990"}

服务器接收到消息后,根据消息中的操作标识符和参数执行相应操作,并返回结果,如:

{"000169990
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值