java网络通信:TCP/IP、Socket、长连接短连接

本文深入解析TCP/IP协议组,涵盖网络层、传输层和应用层的主要协议,如IP、TCP、UDP、HTTP、DNS等,并探讨了SOCKET的作用及长连接、短连接的区别与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP/IP 协议组
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 

  • 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 
  • 在传输层中有TCP协议与UDP协议。 
  • 在应用层有:
    • (基于)TCP包括FTP、HTTP、TELNET、SMTP等协议 
    • (基于)UDP包括DNS、TFTP等协议 

 

SOCKET:不属于任何层,也不是协议,只是一个接口,为了方便开发人员对TCP/IP协议栈的使用。

计算机之间的通讯,无非就是两个端口之间的交互,具体的数据表示形式是应用层决定的,而提供传输能力的是传输层。如果只停留在传输层,而没有上层的应用层,那么传输的数据将变得毫无意义。

短连接 
连接->传输数据->关闭连接 
HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 
也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。


长连接 
连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 
长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 

什么时候用长连接,短连接? 
 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。 
  
而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值