2021-11-11

本文探讨了网络的不稳定性及HTTP、TCP、IP、LINK各层的作用。TCP确保可靠传输,通过分段、重传机制提高效率,而UDP则为不可靠传输,适合实时应用。IP负责路由和寻址,LINK层提供数据链路支持。连接在通信中意味着双方能稳定交换信息,TCP保持连接状态以实现长连接,避免频繁重建。长连接常用于聊天和消息推送,通过心跳机制维持连接活跃。

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

为什么要分层?

网络不稳定,传输失败会发生,为了稳定。
因为网络是不稳性的, 而且网络中的数据可能会很大,如果中途传失败了则还得重头开始将此数据传一遍,那网络的利用率是极低的

为什么有HTTP:

    
为什么有TCP?    1、拆分:将数据进行分段进行传输,所以可以将大数据拆成几段。
处理包的分发。数据拆分及重试。    2、重传:
    比如说1、2、4传输成功了,但是!!3失败了,那只要重新传第3块数据既可,如果不分块那等于得重传整个数据,效率大大降低,我们知道TCP是可靠的传输,如果传输失败了则会重新传。
    
    
    而对应的不可靠传输则为UDP,比如我们玩游戏如果因为网络原因卡住了,待网络正常之后,卡掉的那部分是不需要重新再传一遍的。


为什么有IP?路由、网络寻址、数据传输。    这一层是不会管数据有没有传成功了。


为什么有LINK?    数据链路层,为网络提供实质的支持,如以太网(双绞线。但还有电视盒子网,线材不一样)、WIFI,比较好理解
 

什么叫做连接


通信双方建立确认「可以通信」,不会将对方的消息丢弃,即为「建立连接」。
IP无状态,TCP有状态。
让我知道你是谁就是连接。

Java里的Socket,连接成功返回Socket。
 

长连接

哪怕client不主动申请断开,基站也会强制断开。


为什么要⻓连接?有些场景需要不断开,比如两人需要保持连接聊天、更常见的是消息推送。
因为移动⽹络并不在 Internet 中,⽽是在运营商的内网,并不具有真正的公网 IP,因此当某个 TCP 连接在一段时间不通信之后,⽹关会出于⽹络性能考虑⽽关闭这条 TCP 连接和公⽹的连接通道,导致这个TCP端⼝不再能收到外部通信消息,即 TCP 连接被动关闭。


⻓连接的实现方式?
心跳。即在一定间隔时间内,使用 TCP 连接发送超短无意义消息来让⽹关不能将⾃⼰定义为「空闲连接」,从而防止⽹关将⾃⼰的连接关闭。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值