- 主题:请教两个二级指针的问题
网络包在开头几个字节,必然有个类型或者长度标识这个包多长
先把包头收下来
【 在 ylh0315 的大作中提到: 】
: 请教一个问题,编译时不知道尺寸怎么办?
: 比如,从网络收一个数据包,不知道其大小,事先怎么安排buffer?又不能限制大小。
--
FROM 39.144.251.*
怎么可能100M用一个包头
这是给自己找麻烦
【 在 ylh0315 的大作中提到: 】
: 发过100M的,malloc呗。
: 先收包头,再根据length,太大的就malloc。
: 麻烦的是,什么时候free。等用户用完才能free。
--
FROM 39.144.251.*
网络协议是个独立的模块
要自己保证安全可用
哪天你要传个10g的你怎么办
单包多大,最多多少个包,这都需要设计出来
否则对方告诉你他要给你10g,你程序怎么处理?
【 在 ylh0315 的大作中提到: 】
: 不麻烦呀。
: 当时就是一个SQL语句,结果集序列化成JSON,有100M多。
--
FROM 39.144.251.*
你这协议有天然缺陷
很容易被攻击的
不能这么设计
【 在 ylh0315 的大作中提到: 】
: 有这个问题。length是32bit的int,最大2g。超过了就是小于0的非法值。
: 这个规模得64位系统才能撑得起。
: 当2g数据来临,压缩,加密都是奇慢,也就是试着玩。不嫌慢,我给你整。
: ...................
--
FROM 117.30.165.*
针对网络资源的ddos好处理
针对协议的攻击,那种就很麻烦
【 在 ylh0315 的大作中提到: 】
: 前面37楼说的,有防范措施的。
: 还有最重要的,有一个可选的转发器,也叫交易管理器。
: 作用,1隔离客户端与服务器,最多攻陷转发器,服务器,数据库不会受到伤害。
: ...................
--
FROM 39.144.251.*
世界上大部分工程会使用tls作为传输协议
而不是自己设计一套
tls的len限制大概是几k
而不是2 g
为什么选择tls和tls为什么限制长度,自然有他的道理
【 在 ylh0315 的大作中提到: 】
: 37楼考虑了,攻击这个协议比较难。
: 密钥协商,这一关不好过。
: 虽然都是DH方法,具体seed和数据格式都不是很容易搞清楚的。我可以告诉你具体方法,你也攻不进来。一般的DDOS干不了这事。
: ...................
--
FROM 39.144.251.*
tls是绝大部分场合选择通用的安全通讯协议
他给限制到了8k
用户真传一个特别大的,服务端会特别慢
这是协议的问题
你前面的认证再强,也没解决这个
【 在 ylh0315 的大作中提到: 】
: 专用的可以限制。通用中间件没办法限制。
: 我限制到2g,就是保证不会卡死。远小于这个数已经慢的不行,用户得自己想办法了,不会迁怒于中间件。
--
FROM 39.144.251.*
这东西是在协议层,和应用层没有严格的对应关系
tls当然可以传大文件
为什么说你的2g大小容易被攻击
因为一个过程发送方和接收方的代价的不同的
他可以用很少的资源,给你发胡乱拼凑的内容
而你只有收齐了才知道,他在攻击你
【 在 ylh0315 的大作中提到: 】
: 8k太少了,一个sql的结果集,你知道通常需要多大吗?
: 用户经过精心约束,也得64k上下可满足80%的需求。
: 见47楼,自动分包也是分成64k包。
: ...................
--
FROM 39.144.251.*
网络安全是个体系,你这属于理解偏了
每一个维度都要做好它的工作
你这就相当于认为只要我的认证做的比较强,
服务器内部就不需要加密存储了
【 在 ylh0315 的大作中提到: 】
: 它根本就发不过来。
: 第一阶段,密钥协商就过不去,被踢了。
: 第二阶段,认证。它更过不去,踢。
: ...................
--
FROM 39.144.251.*
所以说你没理解网络安全的理论体系
认证鉴权和协议安全这是两回事
自己要管好自己那部分
你用telnet连不上来说明你的协议是安全的
这简直是开玩笑
【 在 ylh0315 的大作中提到: 】
: 我做网络交易中间件,只管网络这一块。存储不归我管。
: 网络传输加密是透明的,用户提交的数据是明文,交给服务器的也是明文。客户端SendPack()负责加密,服务器RecvPack()负责解密,反之也一样。其他我管不着。
: 我能保证没有第三者插足。没人能给我发非法数据包。
: ...................
--
FROM 39.144.251.*