• TCP三次握手的正确使用姿势


    背景

    和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。

    从好上开始,到现在,一年多也算坚持下来了。

    问题

    有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。

    中间双方可能就要不断的确认网络是否恢复,但是有时候会:

    她:“你可以听到了吗?”

    我:“可以了,你呢?”、

    她:“喂喂,你可以听到了吗?”

    我:“可以了,我可以听到了,你呢?”

    她:“你可以听到了吗?”

    .....

    这种情况真的很蛋疼,那么这样才能找一个简单的办法,让两个人都确认自己可以听到对方的声音,对方也可以听到自己的声音呢?

    方案

    不知道为啥想到了这张图:

    于是有了如下对话:

    我:1+1等于几?

    她:2,2+2等于几?

    我:4

    首先两个人约定协议

    1.感觉网络情况不对的时候,任何一方都可以发起询问

    2.任何情况下,若发起询问后5秒还没收到回复,则认为网络不通

    3.网络不通的情况下等1min或者整整路由器之后再发起询问

    对于我而言,发起 “1+1等于几”的询问后

    1. 若5s内没有收到回复,则认为网络不同

    2. 若收到回复,则我确认①我能听到她的消息 ②她能听到我的消息,然后回复她的问题的答案

    对于她而言,当感觉网络情况不对的时候

    1. 若没有收到我的询问,则她发起询问

    2. 若收到“1+1等于几”,则她确认 ①她可以听到我的消息,然后回复我的问题的答案和她的问题“2,2+2等于几”

    3. 若5s内没有收到我的回复“4”,则她确认 ②我听不见她的消息

    4. 若5s内收到了我的回复“4”,则她确认 ②我可以听见她的消息

    这样,如果上面的对话得以完成,就证明双方都可以确认自己可以听到对方的声音,对方也可以听到自己的声音!

    这个故事可以解释TCP为什么要三次握手吗 ...   囧

    结局

    好吧,我得承认,都绕成这样了女朋友还没嫌弃我,是我之万幸...

    她并不是学计算机的,也愿意陪我玩这个游戏,让我感动的同时又觉得一直异地耽搁了她的青春,对不起她。异地恋的心酸谁经历谁知道啊!

    好在经过最近几个周的努力,成功的在家乡找到一份还算满意的工作,离开帝都,回家和她团聚了。趁着新工作入职前还有几天搬家休整的时间,回忆回忆以前的事情,也算是一段挺有意思的经历 :)

  • 相关阅读:
    c# 启动线程的方式
    c# 打开文件夹获取所有文件
    windows server 2008 R2 SP1 安装SQL Server 2008 R2时提示 "此操作系统不支持此版本的 SQL Server 版本"
    mongodb 备份 指定用户名密码
    c# 线程启动的两种方式与传参
    vs 2015 密钥
    c# 时间格式yyyy-MM-ddTHH:mm:ss
    c# oledb sql 报错 标准表达式中数据类型不匹配
    CentOS下yum安装dnsmasq,并强制替换为最新版
    使用QUOTA(磁盘配额)来限制用户空间
  • 原文地址:https://www.cnblogs.com/tzyy/p/5000624.html
Copyright © 2020-2023  润新知