SIP与HTTP的区别联系

人们通常会问 SIP 是否使用 HTTP 作为底层协议。答案是否定的。SIP 是一种与 HTTP 在同一层(即应用层)运作的协议,它使用 TCP、UDP 或 SCTP 作为底层协议。但是,SIP 与 HTTP 有很多相似之处。例如,与 HTTP 类似,SIP 基于文本而且是用户可读的。SIP 使用带有特定方法、响应代码和头部的“请求响应”机制,这一点也与 HTTP 类似。HTTP 和 SIP 的一个显著不同是,SIP 中的“请求响应”机制是异步的——请求不需要在后面紧跟相应的响应。实际上,一个 SIP 请求可能导致生成一个或多个请求。

SIP 是一种对等协议。这意味着用户代理既可以作为服务器,也可以作为客户机。这是 SIP 和 HTTP 的另一个不同之处,在 HTTP 中,客户机始终是客户机,而服务器始终是服务器。

0

如何使用 tcpdump 进行抓包分析?

如果在联调接口时,遇到这样的问题:可以 telnet 联通,但无法调通服务接口。那可以使用 tcpdump 进行抓包分析。

查看三次握手过程

使用命令 sudo tcpdump host 131.87.110.XX -i eth0 查看握手过程。

-i:指定监听的网卡,有的机器有多块网卡。我测试的机器 eth0 能抓到收发的包,而 eth1 只能抓到收的包。

host:指定要监听的包的来源 IP。131.87.110.XX 为对端的商户 IP,报文中使用 remote_mch_IP 代替。

一个正常的握手过程如下:

实际的返回是:

回包标志

可以看到对端服务器发送一个 SYN 后直接 RESET 了。

原因分析

服务器端因为某种原因关闭了连接(如服务 Coredump,调用 Socket.close() 方法等),而客户端依然在读写数据,此时服务器会返回复位标志 RST。

0

OkHttp连接超时设置

0