关于网络传输中的丢包问题的处理

问题描述

我们小组开发一个聊天系统,分成服务器、客户端和数据库三个部分。无论是服务器,还是客户端,所有的网络传输都是采用的Tcp套接字。按理说,Tcp是可靠数据传输的。但是可能由于一端突然崩溃,导致发生丢包。本来,我们小组采用了肯定确认和定时器的机制去解决这个问题。但是,我们老师说这样还不可靠。所以,这里想请大家都提一下建议,怎么样才更可靠?谢谢大家!

解决方案

解决方案二:
tcp是可靠的,必然是程序的处理机制有问题导致的具体说说
解决方案三:
其实,我的意思是这种情况:比如客户端通过网络流给服务器发送一个较大的数据包。在发送过程中,也就是还没有完全发送完,客户端突然崩溃,连接断开。
解决方案四:
详情请参见http://kb.cnblogs.com/a/1525438/
解决方案五:
你说的这种情况下导致的问题是什么?这种属于不可抗的因素,例如断电、火山爆发、地震等一些自然灾害引起的问题应该都不需要考虑吧。

时间: 2024-09-08 10:48:51

关于网络传输中的丢包问题的处理的相关文章

golang中解决tcp传输中的粘包问题

golang中解决tcp传输中的粘包问题 Author: 岳东卫 Email: usher.yue@gmail.com 什么是粘包? 最近在写https://github.com/UsherYue/ActivedRouter (一个http/https反向代理服务)的时候遇到了粘包问题, 如果有做过网络编程的小伙伴应该都知道粘包问题,举个例子: 比如客户端在和服 务器进行通信采用的是json格式的数据包.那么此时Client和Server的数据交互流程应该如下: Client Send Json

Java编码及网络传输中的编码问题

Java编码及网络传输中的编码问题 近来试着FTP搜索,遇到编码问题,研究了下. Java内部的String为Unicode编码,每个字符占两个字节. Java编解码方法如下: String str = "hi好啊me";   byte[] gbkBytes=str.getBytes("GBK");//将String的Unicode编码转为GBK编码,输出到字节中  String string=new String(gbkBytes,"GBK")

网络传输中的MAC地址表、ARP缓存表以及路由表详解

一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的. 交换机的工作原理 交换机在接收到数据帧以后,首先.会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着.会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数

分析两例特殊的网络丢包排错

远程商业窃密引发丢包中天设计院是甘肃省建设厅直属单位,网络规模不大.152台主机根据单位职能部门分为5个子网,分别由Hub连接到交换机.由于公司内部的协同办公比较频繁,除了一个在线视频系统外还部署了一台文件服务器,单独为一个子网提供数据的共享和交流.单位对外的Internet需求不是很大,通过路由器连接到Internet.故障现象某天,该单位的网络突然出现严重堵塞,主机间的数据频频中断导致协同办公不能正常进行,在线视频系统经常掉线.另外,无论是从文件服务器上传还是下载文件都异常缓慢,有时会因超时

线程-UDP传输文件,通过网线直连,低速传输正常,高速传输丢包的问题

问题描述 UDP传输文件,通过网线直连,低速传输正常,高速传输丢包的问题 用UDP传输视频文件,VC发送数据到安卓端,安卓端监听端口接收数据,采用网线直连,排除网络原因造成的丢包.当VC发送数据延时50ms(大概几百K每秒的速度发包),JAVA端能正确接收.可是不延时50ms发送时(大概2M/S的速度发包)JAVA端接收就出现丢包.JAVA开了两个线程,一个线程接收并放到缓冲队列,另一个线程从缓冲队列取出数据写入U盘.缓冲队列大小也比发送的文件要大,也不可能是缓冲队列不够大的问题.希望得到大神指

《计算机网络:自顶向下方法(原书第6版)》一1.4 分组交换网中的时延、丢包和吞吐量

1.4 分组交换网中的时延.丢包和吞吐量 回想在1.1节中我们讲过,因特网能够看成是一种为运行在端系统上的分布式应用提供服务的基础设施.在理想情况下,我们希望因特网服务能够在任意两个端系统之间瞬间移动我们想要的大量数据而没有任何数据丢失.然而,这是一个极高的目标,实践中难以达到.与之相反,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的数据量),在端系统之间引入时延,而且实际上能够丢失分组.一方面,现实世界的物理定律引入的时延.丢包并限制吞吐量是不幸的.而另一方面,因为计算机网络存在这些

网络丢包诊断与分析的现实与理想

自从有了网络便有了网络故障,网络故障的最大体现是丢包.如何对丢包进行诊断一直是一个令工程师头疼的问题,可关注丢包原因分析的人却非常的少. 现实 目前对于网络中出现丢包的传统处理步骤如下: 首先,确定丢包的设备. 然后,确定报文在该设备的处理流程. 最后,一一核对对应处理流程的转发表项(从软件表项到硬件表项). 也许你会觉得一一核对转发流程表项太慢太麻烦,熟悉芯片的处理流程和功能之后你会找到如下一种处理方式: 首先,还是要确定丢包的设备. 然后,利用芯片提供的一些diagnosis功能进行确认,例

IP通信中音频编解码技术与抗丢包技术概要

此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一运营商之间也有丢包,在铁通,鹏博士等运营商中尤甚.并且在晚高峰的时候表现更加突出. 2.同一国家不同运营商之间: 在很多时候,由于运营商之间的结算和有限带宽的问题.运营商之间的网络不稳定. 3.不同国家之间: 同一个国家都这么多问题,不同国家的问题回更复杂,在不同的国家要选择好的机房,实时选择实时监

ping 丢包或不通时链路测试说明

当客户端访问目标服务器出现 ping 丢包或 ping 不通时,可以通过 tracert 或 mtr 等工具进行链路测试来判断问题来源.本文先介绍了进行链路测试的相关工具,然后对测试结果分析及测试步骤进行了说明. 链路测试工具介绍 根据操作系统类型的不同,链路测试所使用的工具也有所不同.分别简要介绍如下. Linux 环境下链路测试工具介绍 Windows 环境下链路测试工具介绍 Linux 环境下链路测试工具介绍 traceroute 命令行工具 mtr 命令行工具(建议优先使用) trace