游戏服务器:到底使用UDP还是TCP】的更多相关文章

http://blog.jobbole.com/64638/ 在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对. 一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!” 遗憾的是,这些观点都没有反映这个问题的复杂性. 背景 首先,说明一下,我之前主要是用TCP进行网络编程.我曾为一个流行的在线纸牌游戏编写服务器了好几年,在高峰期我们的每台服务器能够承受4000到10000个连接(同一台物…
http://1024monkeys.wordpress.com/2014/04/01/game-servers-udp-vs-tcp/ 在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对. 一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!” 遗憾的是,这些观点都没有反映这个问题的复杂性. 背景 首先,说明一下,我之前主要是用TCP进行网络编程.我曾为一个流行的在线纸牌游戏编写服务器了…
1. c++游戏服务器编程c++运行效率非常高2. TCP传输控制协议IP网际协议Socket 3.Linux 乌班图开源第三方库BOOST 4.80%游戏服务器端用C++工作量最大的地方是具体的游戏逻辑常见的游戏服务器框架和重点部分的实现 5.IP网际协议详解OSI模型 开放系统的通信交互模型 学术性产物的应用层.表示层.会话层.传输层.网络层.链路层.物理层 6. IP模型产生于实践用于实践 成为标准 7. 数据进入协议栈的封装以太网封装最小46字节,不足的用0最大1500个字节 8. IP…
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP.     TCP是一种面向连接的协议,提供可靠的数据传输,一般服务质量要求比较高的情况,使用这个协议.UDP---用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务. TCP与UDP的区别:     UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同.TC…
一.追溯 去gameloft笔试,有一个题目是说: 叫你去设计一个FPS(第一人称射击游戏),你是要用TCP呢还是要用UDP,说明理由 . 二.学习 这是两篇网上找到的文章,写非常不错. 当时笔试的时候自己没想到这么全,但大概想法都是一致的,摘录下来再学习一下. 1.网络游戏程序员须知 UDP vs TCP 作者:rellikt@gmail.com 首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21/5829020.aspx 这篇教程让我们就…
计算机网络协议(三)——UDP.TCP.Socket 2019年09月04日 11:09:41 to_be_better_one 阅读数 28794 文章标签: 计算机网络UDPTCPSocket 更多 分类专栏: 计算机网络协议   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/ghw15221836342/article/details/100531810 底层网络知识详解:最重要的…
FPS游戏服务器设计的问题出处:http://www.byteedu.com/thread-20-1-1.html一.追溯 去gameloft笔试,有一个题目是说: 叫你去设计一个FPS(第一人称射击游戏),你是要用TCP呢还是要用UDP,说明理由 . 二.学习 这是两篇网上找到的文章,写非常不错. 当时笔试的时候自己没想到这么全,但大概想法都是一致的,摘录下来再学习一下. 1.网络游戏程序员须知 UDP vs TCP 作者:rellikt@gmail.com 首发链接:http://blog.…
概述 传输层里比较重要的两个协议,一个是 TCP,一个是 UDP.对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议.由于面试的时候,这两个协议经常会被放在一起问,因而我在讲的时候,也会结合着来讲. TCP 和 UDP 区别 TCP 是面向连接的,UDP 是面向无连接的.什么叫面向连接,什么叫无连接呢?在互通之前,面向连接的协议会先建立连接.例如,TCP 会三次握手,而 UDP 不会.为什么要建立连接呢?你 TCP 三次握手,我 UDP 也可以发三个包玩玩,有什么区别…
1.前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写. 从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论不休(比如:<为什么QQ用的是UDP协议而不是TCP协议?>这样的问题,隔一段时间就能在社区里看到).到了移动互联网时代,鉴于移动网络的不可靠性等特点,再加上手机的省电策略.流量压缩等,为这个问题的回答增了更多的不确定因素. 对于有选择困难证的人来说,基于以上因素,加上UDP和TCP协议的本质差异…
原文链接 原文:http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ 介绍 大家好,我是Glenn Fiedler,欢迎阅读我的网上电子书<游戏程序的网络设计>第一章. 在这一章中,我们将从网络编程的最基本方面开始,通过网络收发数据.这是一切的开始—网络程序员工作中最简单和最基本的操作,但最佳的网络通讯策略还是很复杂并且不明显.小心一点,因为如果你在这一步出错了,会对你的多人游戏中造成很可怕的影响. 你或许很可…
1.UDP,TCP,HTTP之间的关系 tcp/ip是个协议组,它可以分为4个层次,即网路接口层,网络层,传输层,以及应用层, 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层有TCP,UDP协议 而在应用层有HTTP,FTP,DNS等协议 因此HTTP本身就是一个协议,是从WEB服务器端传输超文本,到本地浏览器的一个传输协议 2.Socked协议 是为实现以上各个协议而建立的一个通信管道,实际上就是代表了客户端与服务器端的一个通信进程,双方都是通过指定的s…
1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android程序员来说,如果您觉得本文内容稍显枯燥,可以看看即时通讯网之前整理过的一篇类似文章<迈向高阶:优秀Android程序员必知必会的网络基础>,该文内容更偏向于知识点的概括. 如果您希望更系统地学习网络编程方面的知识,可以读一读以下专为初学者整理的系列文章或资料: <TCP/IP详解 - 第11…
本文原文由作者“zskingking”发表于:jianshu.com/p/271b1c57bb0b,本次收录有改动. 1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯网专注的即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android程序员来说,如果您觉得本文内容稍显枯燥,可以看看即时通讯网之前整理过的一篇类似文章<迈向高阶:优秀Android程序员必知必会的网络基础>,该文内容更偏向于知识点的…
本文为作者原创或翻译,转载请注明,不得用于商业用途. 作者:rellikt@gmail.com 首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21/5829020.aspx   这篇教程让我们就从最基本的网络数据收发开始谈起吧.其实这部分才是网络程序员应该做的最基础最简单的部分,但是这部分如果想要做好相对来说还是很有技巧和困难的.而且如果这部分你没做好,在多人对战类游戏中它带来的影响是极其恶劣的. 你可能听说过端口这个概念,也可能知道TCP和…
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege   不多说,直接上干货! TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和…
解释 通过UDP广播查询服务器的IP地址,然后再建立TCP点对点连接. 应用场景 在服务器IP未知时,并且已知服务器与客户端明确在一个局域网或者允许组播的子网下. 通过UDP发现服务器地址然后再进行TCP连接. (PS:万维网很多路由器对组播进行了限制,所以不能通过UDP报文在万维网上进行服务器查询) 主要问题 Android真机和模拟器对组播处理不同 Android不同系统版本对组播处理不同 不同网络对组播有限制,如部分路由网络限制UDP报文 简单实现 传统组播方式,通过255.255.255…
C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无涯,以有涯随无涯,殆已".代入到项目开发中就是说,如果对知识点无差别的全面攻击,不仅会导致所学甚泛却无一深入的尴尬,也会占用太多的有效时间从而影响项目进度.作为一个C++游戏服务器开发者来说,我们时刻肩负着线上游戏开发和维护任务,可以优先学习对自己工作最常用且最重要的,解决实际问题最为紧迫.本文对一…
day28 C/S B/S架构 C:client 客户端 B:browse浏览器 S:server 服务端 C/S C/S架构:基于客户端与服务端之间的通信 ​ QQ.游戏.皮皮虾 ​ 优点:个性化设置,响应速度快 ​ 缺点:开发成本,维护成本高,占用空间,用户固定 B/S B/S架构:基于浏览器与服务端之间的通信 ​ 谷歌浏览器.360浏览器.火狐浏览器等等 ​ 优点:开发维护成本低,占用空间相对低,用户不固定 ​ 缺点:功能单一,没有个性化设置,响应速度相对慢一些 网络通信原理 网络通信模拟…
一.HTTP1.0 1.1 2.0和HTTPS 1.HTTP协议是什么? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol.它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议. 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准. 2.HTTP原理 HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据…
经过多次折腾之后,在一次进行了一次重大的重构,去解决问题 主要重构如下 1.将原来的单一协议修改多协议进行,一些查询.认证的功能都采用HTTP进行,避免全部采用TCP链接资源的消耗: 2.原来单一的部署,划分多个分布式的系统,添加怪物自动管理系统(怪物的刷新,配置等).后台服务系统(游戏过程中逻辑数据处理).webAPI查询认证系统(查询和认证).游戏后台辅助系统(主要监控其他项目的运行情况,用于容灾处理).缓存服务器(redis).数据服务器.资源服务器(配置文件): 现在基本解决了原来出现的…
序言   通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅此而已,不懂就去学.学了你就会觉得其实也就那样,没有什么厉害的,这让我回想以前刚学习编程的时候,那时候刚学C,别人就说会写java的helloworld,真TM觉得屌啊,我连helloworld是什么度不知道.一直羡慕人家,怎么这么厉害,然后自己心里很虚,自己这么菜啊,其实不然,不懂的就去学习,学懂…
原文:UDP vs. TCP,作者是Glenn Fiedler,专注于游戏网络编程相关工作多年. 目录 网游中的网络编程系列1:UDP vs. TCP 网游中的网络编程2:发送和接收数据包 网游中的网络编程3:在UDP上建立虚拟连接 TODO 说在最前面的话 翻译这篇文章的初衷:我在工作中根本接触不到网络游戏编程,但是我不想把自己定义为'网站开发工程师',正像我师父告诉我的:"别说开发网站,太low!要说开发web应用".那么,网络游戏开发web方面的知识真的应该了解下.锻炼自己英文的…
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议.     如果用wireshark.sniffer或古老些的tcpdump抓包分析,会发现几乎所有的情况都是在使用UDP,使用TCP的情况非常罕见,神秘兮兮.其实当解析器发出一个request后,返回的response中的tc删节标志比特位被置1时,说明反馈报文因为超长而有删节.这是因为UDP的报文最大长度为512字节.解析器发…
一.网络模型 1.1.OIS参考模型 1.2.TCP/IP参考模型 1.3.网络通讯要素 IP地址:IPV4/IPV6 端口号:0-65535,一般0-1024,都被系统占用,mysql:3306,oracle:1521 传输协议:TCP/UDP 二.类 InetAddress 2.1.InetAddress 主机对象 IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的 2.2.示例 import java.net.*;…
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种. UDP:用户数据报协议.UDP是一种无连接协议.UDP套接口是数据报套接口(datagram socket)的一种. 二.TCP和UDP介绍 1)基本TCP客户—服务器程序设计基本框架 说明:(三路握手)        1.客户端发…
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(streamsocket)的一种. UDP:用户数据报协议.UDP是一种无连接协议.UDP套接口是数据报套接口(datagram socket)的一种. 二.TCP和UDP介绍 1)基本TCP客户—服务器程序设计基本框架 说明:(三路握手)         1.客户端发…
UDP vs. TCP 原文:UDP vs. TCP,作者是Glenn Fiedler,专注于游戏网络编程相关工作多年. 说在最前面的话 翻译这篇文章的初衷:我在工作中根本接触不到网络游戏编程,但是我不想把自己定义为‘网站开发工程师’,正像我师父告诉我的:“别说开发网站,太low!要说开发web应用”.那么,网络游戏开发web方面的知识真的应该了解下.锻炼自己英文的同时,可以分享些东西给“小伙们”,哇咔咔-. 这是一个系列的文章,前面的东西一定要弄懂,后面就会轻松的搞明白(我后面的还没看,但是要…
1:网络中进程之间如何通信 为了实现进程之间通信,首要解决的问题是如何唯一标识一个进程,在本地可以通过进程PID来唯一标识一个进程,但是在网络中则是行不通的,其实TCP/IP协议族已经帮我们解决了这个问题,网络层的"ip 地址"可以唯一标识网络中的主机,而"传输层的 协议+端口"可以唯一标识主机中的应用程序(进程).这样利用(ip地址,谢谢,端口)就可以标识网络中的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互.而现在几乎所有网络应用程序都是采用soc…
网络通信协议 网络通信协议 网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互联协议),它是一个包括TCP协议和IP协议,UDP(User Datagram Protocol)协议和其它一些协议的协议组,在学习具体协议之前首先了解一下TCP/IP协议组的层次结构. 1.1      InetAddress package com.oracle.InetAddress; imp…
1.什么是TCP/IP协议? 网络编程协议有很多,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal 传输控制协议/英特网互联协议) TCP/IP协议层次结构比较简单,共分为四层,如图所示: TCP/IP共分为四层:应用层.传输层,网络层,链路层,每层分别负责不同的通信功能. 链路层:链路层是定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤,网线提供的驱动. 网络层:网络层是整个TCP/IP协议的核心…