TCP/IP协议设计人员采用一种创造性的方法,解决了诸如以太网这样具有广播能力物理网络的地址转换问题。ARP表放在内存储器ARP高速缓存中,其中的登录项是在第一次需要使用而进行查询时通过ARP协议自动填写的。ICMP也是在网络层中与IP一起使用的协议。ICMP的使用主要包括以下3种情形。......
2023-11-04
网络协议即网络中传递、管理信息的一些规范,在计算机之间相互通信需要共同遵守一定的规则,这些规则称为网络协议。
TCP/IP不是一个协议,而是一个协议簇的统称,里面包含TCP协议、IP协议、UDP协议及http、FTP等。之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,所以以TCP/IP命名。
1)TCP/IP协议的四层参考模型
(1)应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet),以及超文本传输协议(http)等。
(2)传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据包协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已送达并接收。
(3)互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
(4)网络接口层:对实际的网络媒体的管理,定义如何使用实际网络来传送数据。
2)长连接
长连接是客户端与服务器建立连接后,进行业务报文的收发,始终保持连接状态,在没有报文收发的情况下,可以使用心跳包来确认连接状态的保持,很多移动端游戏类型都采用长连接,例如RPG、SLG、ACT等需要即时交互的游戏类型,使用TCP长连接协议。
3)短连接
短连接是客户端与服务器需要进行报文交互时进行连接,交互完毕后断开连接。例如,在某种推图游戏对战回合中,进行不联网的单机计算,当在本关卡结束时再联机交互结算报文,所以例如卡牌、回合制还有例如页游等使用http短连接协议。
4)TCP协议和UDP协议对比
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立可靠的连接。
客户端主机和服务器经过三次握手进行连接简单描述如下:
第一次,客户端向服务器发送连接请求。
第二次,服务器做出收到请求和允许发送数据的应答。
第三次,客户端再次送一个确认应答,表示现在开始传输数据了。
UDP协议使用IP层提供的服务把从应用层得到的数据从一台主机的某个应用程序传给网络上另一台主机上的某一个应用程序。UDP协议有如下的特点:
(1)UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。(www.chuimin.cn)
(2)UDP不对收到的数据进行排序,在UDP报文的头中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。
(3)UDP对接收到的数据包不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。
(4)UDP传送数据较TCP快速,系统开销也少。
总结:
从以上特点可知,UDP提供的是无连接的、不可靠的数据传送方式,是一种尽力而为的数据交互服务,而TCP是长连接、较可靠的网络协议。
Socket本质是对TCP/IP封装的编程接口(API),使得程序员更方便使用TCP/IP协议。Socket类提供了各种网络连接、接收数据、发送数据等相关方法给程序开发人员使用。
5)Socket类常用方法
Protocolbuffer也叫Googlebuffer,protobuf是谷歌的数据交换格式,独立于语言,原生支持Java、C++、Python等语言,一种高效率和优秀兼容性的二进制数据传输格式,使用第三方工具可以良好支持C#语言,由于它独立于语言和平台,可以在Unity客户端和C++服务器,或Python服务器之间进行良好交互,故而是目前Unity移动端网络游戏开发的主流数据交互协议。
Protocolbuffer的基本语法
字段关键字:
Package:包定义,名空间。
required:表示该值是必须要设置的。
optional:可选字段,消息格式中该字段可以有0个或1个值(不超过1个)。
repeated:重复的值的顺序会被保留,表示该值是一个集合。
注释:
Proto文件可以使用//注释不需要编译的内容。
序列化proto数据参考代码:
有关虚拟现实理论基础与应用开发实践的文章
TCP/IP协议设计人员采用一种创造性的方法,解决了诸如以太网这样具有广播能力物理网络的地址转换问题。ARP表放在内存储器ARP高速缓存中,其中的登录项是在第一次需要使用而进行查询时通过ARP协议自动填写的。ICMP也是在网络层中与IP一起使用的协议。ICMP的使用主要包括以下3种情形。......
2023-11-04
在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有216个。由于UDP也是传输层一个独立于TCP的协议,因此,使用UDP协议时也有216个不同的端口。另外,当服务器要向客户端传输数据时,由于服务器可以从客户的请求报文中获得其端口号,因此也可以正常通信。......
2023-11-20
TCP/IP协议的体系结构分为四层,这四层由高到低分别是:应用层、传输层、网络层和链路层,如图8-1所示。图8-1 TCP/IP协议的层次结构1.链路层链路层在TCP/IP协议栈的最底层,也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。也可以说,TCP/IP协议支持多种不同的链路层协议。它是TCP/IP协议栈中最重要的一层,主要功能是可以把源主机上的分组发送到互联网中的任何一台目的主机上。......
2023-11-20
而BACnet标准考虑到楼宇自控网络可靠性和实时性及运行效率,并根据BACnet网络的特点,对ISO-RM网络层功能进行了简化。对BACnet报文分段是BACnet网络的应用层功能,因此网络层不再涉及报文分段及相关的管理,因此网络层的功能进一步简化。BACnet网络层功能简化具体体现在网络层处理和传输的BACnet报文最大长度仅仅取决于网络层下层连接的不同局域网传输报文长度中的最小报文长度。......
2023-08-29
TCP是传输控制协议,它是TCP/IP协议簇中的一个重要协议。图2-9显示出了从发送方的高层协议通过TCP到达接收方的高层协议数据传输的完整过程。TCP允许两个应用程序建立一个连接,然后发送完数据并终止连接。总之,TCP协议使两台计算机上的程序通过互联网以类似于电话的方式进行通信成为可能。TCP将自动检测丢失的数据包,并且要求对方计算机在数据丢失时重发数据。......
2023-11-04
与TCP配合使用的网络层协议是IP,人们常常称这些相关协议为TCP/IP协议。虽然TCP和IP不是OSI标准,但已被公认为当前的工业标准,称为目前最流行的传输层协议。下面将TCP/IP和相应的OSI层次进行对比,如图3—31所示。图3—31TCP/IP和OSI层次对比对应于OSI的5~7层,相应的高层协议有:SMTP,简单邮件传输协议,关于电子邮件方面的。对应于OSI的第四层的协议有三个:TCP传输控制协议,是面向连接的协议,也是最主要的协议。......
2023-10-22
协议转换用来连接具有不同协议的网络,是网络对网络的DTE级结构。图8-11用IP互联LAN图8-12用标准协议转换器互联局域网对于网间通信,如A站至C站,则首先建立A站到协议转换器1的连接;然后协议转换器1使用转送层协议、IP和协议转换器2建立一个可靠的连接;最后协议转换器2和C站建立一个局域网的连接。......
2023-06-27
相关推荐