TCP/IP,http,RPC、SOA、长连接短连接

本文详细介绍了TCP/IP的连接过程,包括三次握手与四次挥手,以及SYN攻击。讨论了RPC(远程过程调用)的工作原理,包括通讯、寻址、序列化和反序列化等步骤。此外,还阐述了SOA(面向服务架构)的概念,以及HTTP协议与TCP/IP的关系。最后,分析了HTTP的长连接和短连接,以及RPC与HTTP在速度上的差异,指出RPC利用TCP长连接节省资源,提高效率。
摘要由CSDN通过智能技术生成

TCP/IP

建立TCP需要三次握手才能建立(客户端发起SYN,服务端SYN+ACK,客户端ACK),

断开连接则需要四次握手(客户端和服务端都可以发起,FIN-ACK-FIN-ACK)。

为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

SYN攻击:发送大量的SYN,导致服务端无法识别哪些是有效的

RPC

RPC是指远程调用,两服务器A,B,A要调用B上的一个方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据

1.     通讯问题:在客户端和服务端建立TCP连接,远程调用的所有交换数据都在这个连接里传输。

2.     解决寻址问题:IP及端口寻址,方法名

3.     序列化(Serialize):发生远程调用时,方法的参数需要通过底层的网络协议如TCP传送到服务器,由于网络协议是基于二进制的,内存中的参数值需要序列化成二进制的形式,通过寻址和传输序列化的二进制发送给服务器。

4.     服务器反序列化:服务器收到请求后需要反序列化,恢复内存中的表达方式,然后找到对应的方法(寻址的一部分),进行本地调用。

5.     返回值发送给客户端,这个部分也需要序列化和反序列化。

SOA

采用一组服务的方式来构建一个应用,服务(hedwig、jsf、RESTful)独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,例如RPC、HTTP等。服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。

RPC 的实现是基于SOA这样的一个架构  C/S模式 远程调用的通讯使用TCP  然后hedwig restful  jsf这些就是不同的服务形式

http协议和tcp/ip 协议的关系
(1) http是应用层协议,tcp协议是传输层协议,ip协议是网络协议。
(2) IP协议主要解决网络路由和寻址问题
(3) tcp协议主要解决在IP层协议之上,如何可靠的传输数据,即接收端收到的数据包的大小和顺序,和发送端保持一致。tcp协议是可靠的面相连接的。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值