推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zyqf
V2EX  ›  Python

在网络不稳定的情况下,利用 socket 协议传输文件是否可靠?

  •  
  •   zyqf · May 23, 2016 · 4506 views
    This topic created in 3667 days ago, the information mentioned may be changed or developed.

    传送小文件,大文件等

    用二进制读写,做了简单的文件信息效验,本机测试, MD5 一致。本机发送到远程服务器, MD5 一致。

    但有个疑惑,不知道是否在网络波动较大的情况下(丢包较多),利用 socket 协议( TCP 方式)传输文件,能否保证数据一致性?

    10 replies    2016-05-24 14:18:58 +08:00
    extreme
        1
    extreme  
       May 23, 2016
    TCP 设计之初就有应对丢包的策略。
    casparchen
        2
    casparchen  
       May 23, 2016 via iPhone
    Socket 是指网络连接,或者装眼球的两个孔,它不是一个协议
    ryd994
        3
    ryd994  
       May 23, 2016 via Android   ❤️ 1
    TCP 每个包有 checksum 可以保证顺序,因此数据是可靠的
    但是 TCP 不抗故意修改,如果需要更高的可靠性,应该再配合其他方法
    zyqf
        4
    zyqf  
    OP
       May 23, 2016
    @casparchen 额,不好意思,刚接触到 socket ,实在尴尬
    zyqf
        5
    zyqf  
    OP
       May 23, 2016
    @ryd994 谢谢,解惑了。关于人为的故意修改,我准备套上 ssl 。
    billlee
        6
    billlee  
       May 23, 2016   ❤️ 1
    所有 checksum 都是有 error detection capacity 的,超过 capacity 的错误是检测不出来的。 TCP 用的 Internet checksum 的 capacity 其实很小,传输大量数据的时候不要依靠这个 checksum.
    hrong
        7
    hrong  
       May 24, 2016 via Android
    几乎可靠的协议都是走 TCP 的 楼主觉得还有比 TCP 更可靠的么?
    jimzhong
        8
    jimzhong  
       May 24, 2016
    对于网络不稳定这种情况 TCP 完全可以应付。如果要防主动攻击那应该上 TLS 。
    xiaoban7
        9
    xiaoban7  
       May 24, 2016
    不在乎速度的话,完全可以应付的。
    Thiece
        10
    Thiece  
       May 24, 2016
    如果不在乎会增加一点带宽使用的话,你可以考虑下 KCP http://www.oschina.net/p/kcp
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3692 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    ♥ Do have faith in what you're doing.