【游戏开发】网络协议及模型

1.协议:两个实体间控制数据交换的规则的集合。

协议的关键部分包括:语法(数据格式、编码、信号电平)、语义(协调和进行差错处理的控制信息)、定时(速度匹配、排序)。

2.OSI通信协议模型:

  • 应用层:构建在各种通信协议上的网络应用软件,与用户直接交互。
  • 表示层:为异种机通信提供一种公共语言,以便交互操作。加工数据,如为了减少传输的数据量对数据进行压缩,为保证安全性进行加密。
  • 会话层:建立和维持会话,并使会话获得同步。对话管理、数据流同步、重新同步。
  • 传输层:(运输层)建立传输连接,传送数据(一般数据传送或加速数据传送)、传输连接释放。差错恢复、流量控制。
  • 网络层:提供跨越多个网络的选路功能,为端点提供无连接的数据报访问,并定义端到端通过整个互联网网络的寻址功能。
  • 数据链路层:(数据链路控制层)管理数据格式。数据链路的建立、拆除,对数据的检错、纠错。
  • 物理层:为设备之间的数据通信提供传输媒体(架空明线、平衡电缆、光纤、无限通道)及互连设备(数据终端设备<物理设备> + 数据通信设备<电路连接设备>),为数据传输提供可靠的环境。

3.TCP/IP协议对应一个4层模型,成为DARPA模型:

  • 应用层:对应于OSI模型的应用层。
  • 传输层:对应于OSI模型的传输层和部分会话层功能。核心协议是传输控制协议(TCP)和用户数据报协议(UDP)。
  • 网络层:对应于OSI模型的网络层。
  • 网络访问层:对应于OSI模型的物理层和数据链路层。

4.TCP/IP协议族:

  • IP:网间协议,负责主机间数据的路由和网络上数据的存储。用户进程不涉及这一层。
  • ARP:地址解析协议,将网络地址映射到硬件地址。
  • RARP:反向地址解析协议,将硬件地址映射到网络地址。
  • ICMP:网际控制报文协议,处理信息和主机的差错和传送控制。
  • TCP:传送控制协议,为用户进程提供虚拟电路服务,并为数据可靠传输建立检查。大多数网络用户程序使用TCP。
  • UDP:用户数据报协议,提供给用户进程的无连接协议。用于传输数据而不执行正确性检查。
  • FTP:文件传输协议,允许用户以文件操作的方式(文件的增、删、改、查、传送)与另一主机相互通信。
  • SMTP:简易邮件传送协议,为系统之间传送电子邮件。
  • TTP:终端协议,允许用户以虚拟终端方式访问远程主机。
  • HTTP:超文本传输协议,用于传输HTML写的文件(网页)。
  • TFTP:简易文件传输协议,与FTP不同的是,使用的是UDP的69端口,可以穿越许多防火墙。

5.Socket(套接字)= IP(网络地址)+ port(端口号)

Socket:标准Socket,又称为Berkeley Socket,主要用于Linux/Unix系统开发;Winsock,主要用于在Windows平台上开发。

Socket通信流程:

6.一个网络连接需要:

本地协议端口 + 远程协议端口 + 本地主机地址 + 远程主机地址 + 协议

7.Socket函数:

  • Socket函数:用于创建一个Socket套接字
  • Connect函数:用于尝试与远端建立一个Socket连接
  • Send函数:用于在某个Socket上向远端发送数据
  • Recv函数:用于接收远端发送的数据
  • Closesocket函数:用于关闭不再需要的Socket
  • Listen函数:用于在某个Socket上建立监听
  • Accept函数:用于接收一条新的连接(接收连接而不接收数据)
  • Bind函数:用于给一个Socket套接字分配一个本地协议地址
  • Select函数:用于检测Socket状态,主要用于高级的网络通信模型

猜你喜欢

转载自blog.csdn.net/qq_23996157/article/details/89330946