【FFH】openharmony代码拉取error: RPC failed(ohos笔记1_MTU) 原创

发布于 2022-4-19 23:28
浏览
1收藏

【FFH】openharmony代码拉取error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.

3.1LTS拉取流程

通过repo + https 下载。

repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

报错信息

在执行第二步时报错

error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

报错解决思路

目测是recv 的拉取时间超时导致故障,搜索在虚拟机上的网络硬件,并检查mtu值是否还是默认值

ifconfig

看到mtu为默认值1500
附带看到网上的一些其他解决方案

// 配置代理
git config --global http.proxy socks5://127.0.0.1:1081
git config --global https.proxy socks5://127.0.0.1:1081
// 增大缓存
git config --global http.postBuffer 1048576000

解决问题把mtu调到很大即可

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 14000
        inet 192.168.193.130  netmask 255.255.255.0  broadcast 192.168.193.255
        inet6 fe80::5615:ed01:8442:f634  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:dc:a2:bf  txqueuelen 1000  (Ethernet)
        RX packets 499868  bytes 751612692 (751.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 140755  bytes 8846469 (8.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


ifconfig  ens33 mtu 14000   #前面那个参数是跟上面对应的

附带知识 MTU

什么是MTU

Maximum Transmission Unit,缩写MTU,中文名是:最大传输单元。

这是哪一层网络的概念?

MTU是数据链路层的概念

场景实例

mut设置1 正确
电脑->路由器 ->服务器
1500->1500->1500
mut设置2 错误
电脑->路由器 ->服务器
1700->1500 ->1500
路由器有一个IP包的标志位 DF 设置如果为1 则不允许拆分包 发现1700>1500 则把这个包直接丢掉于是就啥都没了,当然如果DF 为 0 则会发生分片拆分成两个包。

为什么是1500?

这个问题有很多回答其中一个是:
一个标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验和FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500

写这篇文章希望能帮到遇到同样问题的同学,据了解校园网大部分都存在这个问题,我之前在家里拉取就没有问题

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
5
收藏 1
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐