socket,tcp,http三个区别

http属于应用层,socket在会话层,tcp/ip在传输层

tcp/ip协议是准确的点对点连接,其连接需要经过“三次握手”:
第一次握手(连接请求SYN=1,ACK=0):客户端主动发起连接,会将SYN(syn=j)包发给服务器。
第二次握手(请求确认SYN=1,ACK= 1):当服务器接收到客户端的连接请求时,会将SYN(syn=i)包和ACK包(syn=j+1)发给客户端。
第三次握手(连接确认SYN=0,ACK=1):客户端接收到服务器的连接确认时,会将SYN(syn=i+1)包和ACK包(syn=j+1)发给服务端。

建立连接之后,客户端出现故障怎么办?
tcp连接并不是一个真正意义上的常连接,它有一个保活计时器,当客户端出现故障时,服务器不会一直等待下去浪费资源。服务器每接收到一次客户端的请求后都会重新复位这个定时器,时间通常为两个小时,如果两个小时之后还是没有接收到客户端的任何回复,服务器就会每隔75s发送一个探测报文,如果连续发十次都没得到回应,服务器就会认为客户端出现故障,就会关闭连接。

为什么连接的时候是三次握手,关闭的时候是四次挥手呢?
因为当服务端接收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文回应客户端,其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端接收到FIN,很有可能并不会立马关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端“你的断开请求我已经接收到了“,等服务端把手中所有的报文的发送完了,才能发送FIN报文,所以不能一起发送,所以需要四次挥手。

socket是通信原理的基石,是支持TCP/IP协议的网络通信的基本操作单元。是程序员能够进行tcp/ip编程的最小单位。
创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口

http连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接。从建立连接到关闭连接的过程称为“一次连接”。
HTTP协议是建立在TCP协议之上的一种应用,默认端口为80,8080。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值