c1-复盘笔记-网络

1.

  1. 协议栈 , 要 开发 协议 栈 ;---就是link;

  2. 我们说的是 协议栈本身 :

  3. 不止包

  4. 还要去管理各种各样的客户端 ;

第二件:问题:tcp 粘包?

在 TCP 编程中,由于 TCP 是一个面向流的协议,数据的传输是以字节流为单位进行的。因此当发送方连续发送多个数据包时,接收方的 TCP 协议栈可能会将它们看做一个连续的数据流,这就会产生粘包的情况,即多个数据包被“粘”在了一起。

处理粘包的常用方法有以下几种:

1. 定长分包:发送方将数据按照固定的长度进行分割,接收方则按照相同的长度进行接收和拼接,并将相邻的分包拼接成完整的数据包。

2. 以特定字符作为分隔符:发送方在数据包之间加入特定的分隔符,接收方则根据这些分隔符进行分包和拼接。

3. 在数据包头部加入长度信息:发送方在每个数据包的开头加入一个固定长度的头部信息,用于标识整个数据包的长度,接收方则首先读取头部信息,再按照指定长度来拼接完整的数据包。

4. 使用消息队列:发送方将数据包放入消息队列中,接收方则从消息队列中读取完整的数据包,确保每个数据包都能单独处理,避免粘包问题。

以上几种方法都有各自的优缺点,并且应根据具体场景选择合适的方法,比如定长分包适用于每个数据包长度相同的场景,而以特定字符作为分隔符则适用于数据包中包含文本信息的场景。

c1-复盘笔记-网络_第1张图片

第仨件:udp 中 包很大,在这种情况下 怎么把大型包传送过去。

  1. 《要慢 : 大积累的过程》:

  2. 答: 分隔成多个数据包,然后使用UDP协议一个一个地发送,接收端在接收到所有数据包后再将它们组装起来。这种方式被称为数据包分片或者MTU分片。

  3. 如果要提高基于udp 

    传输大数据的速度,可以采用以下几种方法:

    1、增加数据包大小

  4. UDP协议没有最大传输单元(MTU)的限制,因此可以增加每个数据包的大小,以减少数据包数量和网络传输负载。但是,过大的数据包大小可能会导致网络拥塞和数据包丢失,因此需要权衡数据包大小和网络负载之间的平衡。

  5. 2、采用多线程传输

  6. 基于UDP传输大数据时,可以使用多线程在发送端同时发送多个数据包,从而提高传输速率。在接收端也可以开启多个线程并行接收数据,提高接收速率。不过需要注意的是,多线程传输需要更多的系统资源,因此需要根据实际情况进行调整。

  7. 3、多路复用技术

  8. UDP支持多路复用技术,通过将多个数据包合并到一个UDP数据报中进行传输,可以减少网络传输负载,提高传输速度。但是需要注意的是,多路复用技术可能会影响数据包的实时性和有效负载,因此需要权衡其优缺点。

  9. 4、使用分块传输

    将大数据分成多个小块,然后分别传输,这样可避免数据过大而导致的传输延迟和丢包问题,同时可以实现并发传输。

  10. 5、使用流控制

    通过限制发送速度,使得接收方可以有效处理每个数据块,避免数据丢失。

  11. 6、使用冗余校验

    通过冗余校验来检验传输数据的准确性,同时也可以实现丢包重传,确保数据的完整性和可靠性。

  12. c1-复盘笔记-网络_第2张图片

  13. 另外要想UDP传输大数据更快,可以采取以下措施:

  14. 1、使用快速确认

  15. 及时回复对方的确认信息,尽可能减少传输延迟,加快数据传输速度。

  16. 2、减少数据包大小

    数据包越小,传输速度就越快,所以可以将大数据分成小块,或者使用数据压缩算法减小数据包大小。

  17. 3、合理设置超时时间

    适当地设置超时时间可以减少等待时间,提高传输速度。通过多次实验来确定最佳的超时时间。

  18. c1-复盘笔记-网络_第3张图片

  19. 总之,尽管基于UDP传输大数据并不是其最常见的使用场景,但采用适当的优化策略,可以提高其传输速度和效率。

  20. 英泽传输 提供 一站式 文件传输加速 解决方案, 旨在为IT  、影视  、 生物 基因 、制造业等众多行业客户实现高性能、安全、稳定的数据传输加速服务。传统文件传输方式(如FTP/HTTP/CIFS)在传输速度、传输安全、系统管控等多个方面存在问题,而镭速文件传输解决方案通过自主研发、技术创新,可满足客户在文件传输加速、传输安全、可管可控等全方位的需求。

  21. 总结:包线路 块流检

  22. 更快:确 包 时

你可能感兴趣的:(b2C语言网络编程的专栏,笔记)