
tcp/ip
文章平均质量分 57
u012903992
这个作者很懒,什么都没留下…
展开
-
Enet实现原理
一、Enet简介在UDP(用户数据报协议)的基础上提供一个相对薄,简单且健壮的网络通信层,它的主要功能是可选的可靠,按顺序传送数据包。Enet省略了某些更高级别的网络功能,例如身份验证,服务发现,加密或其他特定于应用程序的类似任务,因此该库保持灵活,可移植且易于嵌入。二、为啥需要EnetTCP不支持多信道TCP需要用户自己处理粘包问题UDP不支持排序,连接管理,带宽资源管理,数据包的大小有限制Enet实现了基于单一UDP,具有UDP和TCP等价功能,但比同时集成UDP和TCP更干净的统一协议转载 2022-02-05 23:11:49 · 1266 阅读 · 0 评论 -
为什么TCP需要握手
一、TCP握手流程二、为什么不是4次握手TCP的每次请求都是成对的,原则上应该是四次【Client to Server】第一次SYN,seq=x 【Server toClient】第二次ACK,seq=y,ack=x+1(没有携带数据的ACK不消耗序列号) 【Server toClient】第三次SYN,seq=y, 【Client to Server】第四次ACK,seq=x+1,ack=y+1.可以看出第二次和第三次都是Server to Client,且他们之间没有任何事件..原创 2022-02-05 20:55:33 · 1467 阅读 · 0 评论 -
游戏用tcp还是udp
在实时性方面,tcp协议的网络抗性欠佳,对MOBA类或其他实时性要求较高的游戏,一般是不建议使用tcp作为协议载体。事实上,王者荣耀的PVP通信协议也确实是基于udp封装的;同样,最近大家喜闻乐见的《绝地求生》,也是基于udp的。不同类型的游戏因为玩法、竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样。例如,MOBA类游戏多使用帧同步为主要同步算法,竞技性也较高,无论从流畅性,还是从公平性要求来说,对响应延迟的要求都最高,根据业内经验,当客户端与服务器的网络延迟超过150ms时,会开始出现原创 2022-02-05 20:48:55 · 7633 阅读 · 0 评论 -
udp和tcp切换之坑
某服务既支持udp访问, 也支持tcp访问。 某客户端一直是tcp访问, 切换程udp访问后, 一切work正常, 但到高峰时候,就出现故障, 经查, 是buf找过了udp的65507的限制。 某服务原来只支持udp访问, 后来又切成tcp访问, 但没有包完整性判断, 导致业务层收包不完整, 坑。...原创 2022-02-05 20:47:48 · 1385 阅读 · 0 评论 -
怎么让不可靠的UDP可靠
最近和很多实时音视频领域的朋友交流中都有谈论到 RUDP(Reliable UDP),这其实是个老生常谈的问题,RUDP 在很多著名的项目上都有使用,例如 Google 的 QUIC 和 webRTC。在 UDP 之上做一层可靠,很多朋友认为这是很不靠谱的事情,也有朋友认为这是一个大杀器,可以解决实时领域里大部分问题。作为教育公司,学霸君在很多实时场景下确实使用 RUDP 技术来解决我们的问题,不同场景我们采用的 RUDP 方式也不一样。先来看看学霸君哪些场景使用了 RUDP:全局 250 毫秒延迟原创 2022-02-05 20:46:53 · 566 阅读 · 0 评论 -
socket网络字节序以及大端序小端序
不同CPU中,4字节整数1在内存空间的存储方式是不同的。4字节整数1可用2进制表示如下:00000000 00000000 00000000 00000001有些CPU以上面的顺序存储到内存,另外一些CPU则以倒序存储,如下所示:00000001 00000000 00000000 00000000若不考虑这些就收发数据会发生问题,因为保存顺序的不同意味着对接收数据的解析顺序也不同。大端序和小端序CPU向内存保存数据的方式有两种:大端序(Big Endian):高位字节存放到低位原创 2022-01-21 11:14:30 · 777 阅读 · 0 评论 -
几种TCP连接中出现RST的情况
应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。其实在网络编程过程中,各种RST错误其实是比较难排查和找到原因的。下面我列出原创 2021-12-13 22:16:42 · 4711 阅读 · 0 评论 -
TCP连接建立后出现服务器崩溃、断电、网线被拔会发生什么情况
1.服务器崩溃:服务器会发送RST包让客户端关闭连接发送RST包的情况:1)服务器没有打开对应的端口2)服务器想主动关闭连接(非优雅关闭)3)在一个已关闭的socket中收到数据(一般是半打开连接,一方关闭了另一方却不知道)参考:https://my.oschina.net/costaxu/blog/1273942.服务器断电、网线被拔:包不能被接收,需要客户端开启keep-alive,长期未收到响应就主动关闭连接。一般心跳包的机制是:客户端主动发送,服务器定时接收。若客户端没有收到响应就判原创 2021-12-13 22:13:12 · 4102 阅读 · 0 评论 -
一次完整的HTTP请求所经历的7个步骤
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,...转载 2018-11-13 17:26:28 · 316 阅读 · 0 评论 -
HTTP与TCP的区别和联系
相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。一、基本概念1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接...转载 2018-11-09 18:34:50 · 7362 阅读 · 0 评论