东莞seo按天计费,优化服务,深圳建设交易宝安,西安开发网站的公司目录
前言
网络协议概述
OSI模型
OSI模型的规则
第一部分
物理层
数据链路层
网络层
传输层
第二部分
编辑
应用层
表示层
会话层
每层的职能
TCP/IP协议
TCP/IP协议的规则
TCP/IP协议每层的职能
TCP/IP协议中的重要协议
TCP协议
三次握手
四次挥手
U…目录
前言
网络协议概述
OSI模型
OSI模型的规则
第一部分
物理层
数据链路层
网络层
传输层
第二部分
编辑
应用层
表示层
会话层
每层的职能
TCP/IP协议
TCP/IP协议的规则
TCP/IP协议每层的职能
TCP/IP协议中的重要协议
TCP协议
三次握手
四次挥手
UDP协议
TCP与UDP对比
总结 前言 网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合是网络通信的基础。在Unity网络开发中理解和使用网络协议至关重要。 网络协议概述
协议的字面意思
经过谈判、协商而制定的共同承认、共同遵守的文件
网络协议的基本概念
网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合如果你想要在网络环境中进行通信那么网络协议就是你必须遵守的规则。 OSI模型
OSl(Open System Interconnection Reference Model)开放式系统互联通信参考模型简称OSI模型。它是一种概念模型。
由lS0(International Organization for Standardization)国际标准化组织提出是一个试图使各种设备在世界范围内互联为网络的标准框架。不同公司都按照统一的标准来控制网络互联通信那么各设备之间就能够达到真正的互联通信了。
简单来说OSI模型是人为定义的一个标准(规范)它制定了设备之间相互连接相互通信的标准(规范)。各公司按照这个标准设计的规则(协议)就可以让不同设备利用互联网进行互联通信。
OSI模型的规则
由于互联网协议(规则)很庞大很复杂所以OSI模型采用了分而治之的设计方法把网络的功能划分为不同的多个模块以分层的形式有机地组合在了一起。
OSI模型将复杂的互联网实现分成了好几层(部分)每一层都有自己的功能就好像建筑物一样从上到下有很多层构成每一层都要靠下一层的支持。用户接触到的都只是最上面的一层感受不到下面层级的复杂性。
OSI模型把互联通信的过程抽象的分成了七个层级 1.应用层 2.表示层 3.会话层 4.传输层 5.网络层 6.数据链路层 7.物理层 不同层级的职能各有不同 第一部分:从地基开始 物理层-数据链路层-网络层-传输层 第二部分:从屋顶开始 应用层-表示层-会话层
第一部分 物理层
电脑要联网第一件事要干什么?当然是先把电脑连起来可以用光缆、电缆、双绞线、无线电波等方式。
功能: 它就是把电脑连接起来的物理手段它主要规定了网络的一些电气特性作用是负责传送0和1的电信号。物理层将2进制数据利用电脉冲在物理媒介上实现比特流的传输它的主要功能是定义传输模式、定义传输速率比特同步比特编码等等。 数据链路层
物理层用物理硬件来传输0和1但是单纯的0和1没有任何意义必须规定解读方式比如多少个电信号算一组?每个信号位的意义?这就是数据链路层的意义它在物理层的上方确定0和1的分组方式并且明确信息是发送给哪台计算机的网卡(Mac地址)
功能: 将想要发送的信息构成一个数据包叫做“帧’每一个帧分为两个部分标头Head数据Data标头包含数据包的一些说明项比如发送方和接收方的Mac地址数据类型等等。 网络层
通过Mac地址定位一台计算机理论上是可行的但是效率非常低下我们之前学习过IP地址、端口、Mac地址我们知道我们是通过IP地址快速的定位网络上的设备的而网络层的主要功能就和IP地址有关系。
IP选址、路由选择 在网络环境中两台设备之间可能会经过很多个数据链路也可能还要经过很多通信子网网络层的主要作用就是选择一条合适的路径用于通信。它会在上一层的数据基础上添加标头。
包含信息IP地址长度版本等等信息。
传输层
有了Mac地址和IP地址我们已经可以在互联网上任意两台主机上建立通信了但是如果没有端口号我们无法准确的在应用程序之间进行通信。传输层的功能就是建立端口到端口的通信
功能: 建立、管理和维护端到端的连接。传输层也称运输层传输层负责主机中两个进程之间的通信功能是为端到端连接提供可靠的传输服务。它也会在上一层的数据基础上添加标头
包含信息发送方接收方的端口信息、协议信息等等。
第二部分 应用层
应用层为最上层和用户直接打交道的可以联网的应用程序就属于这一层比如浏览器游戏等等。
功能: 为应用程序提供服务我们可以根据自己要传递的信息决定使用哪一种协议(规则)来处理数据进行传输 。
它会在原始数据的基础上添加标头包含信息协议信息等等。
常用的协议(规则)FTPHTTPSMTP等等。
表示层
不同操作系统的应用层代码和数据可能规范都不一样为了让信息可以在各操作系统和设备中通用表示层做的事情就很重要了。
功能: 数据格式转化、代码转换、数据加密。
为了让不同设备之间能够有统一的规则表示层会把数据转换为能与各系统格式兼容并且适合传输的格式。表示层就像是个翻译会把数据相关信息翻译成国际通用的规则。
会话层
有了准备好的上层数据那么这些数据最终就是希望被传递的内容那么在信息传递时我们需要对其进行管理比如消息是否发送完毕对方是否收到是否断开连接等等会话层的主要工作就是完成这些内容。
功能:建立、管理和维护会话。
它主要负责数据传输中设置和维护网络中两台设备之间的通信连接它不参与具体的传输主要提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。
每层的职能 TCP/IP协议
TCP/lP(Transmission Control Protocol/Internet Protocol) TCP/IP传输协议即传输控制/网络协议也叫作网络通讯协议 是指能够在多个不同网络间实现信息传输的协议簇它是一个工业标准(就是实际会使用的标准)TCP/IP协议不仅仅指的是TCP 和IP两个协议而是指一个由FTP、SMTP、TCP、UDP、IP等等协议构成的协议簇只是因为在TCP/IP协议中TCP协议和IP协议最具代表性所以被称为TCP/IP协议 它是正儿八经的用于互联网的通信协议(规则)
TCP/IP协议是一系列规则(协议)的统称他们定义了消息在网络间进行传输的规则 是供已连接互联网的设备进行通信的通信规则
比如:在传输文件时我们使用其中的FTP文件传输协议 在传输电子邮件时我们使用其中的SMTP邮件传输协议 在定位远端计算机位置时我们使用其中的IP互联网协议地址
TCP/IP协议的规则
通过对OSI七层模型的学习我们知道实现网络传输的功能非常繁杂所以采用了分而治之的设计方法把网络的功能划分为不同的多个模块以分层的形式有机地组合在了一起。
TCP/IP网络结构体系实际上是基于OSI七层模型设计出来的。 OSI七层模型只是一个概念模型它主要用于描述、讨论和理解单个网络功能。 而TCP/IP协议是为了解决一组特定的问题而设计的它是基于互联网开发的标准协议(规则)。
OSI模型只是一个基本概念而TCP/IP协议是基于这个概念的具体实现。
TCP/IP协议把互联通信的过程抽象的分成了四个层级 1.应用层 2.传输层 3.网络层 4.网络接口层(数据链路层) 这四层是基于OSI七层模型进行设计的 OSI是国际组织制定的适用于全世界计算机网络的统一标准 是一套基本规则和概念
TCP/IP是基于OSI根据目前的实际情况制定的一套规则 它主要用于对当前互联网结构体系提供一组规则 所有形式的网络传输都遵循这套规则 它是OSI概念的具体实 现在进行网络开发时我们就是基于TCP/IP协议来进行网络通信的
TCP/IP协议每层的职能
TCP/IP协议是层层封装的从应用层到网络接口层每经过一层都会添加一些额外信息 应用层头: 协议头(FTP、HTTP等协议)一般决定传输信息的类型
传输层头: 协议端口头(TCP或UDP协议)一般决定传输信息的规则以及端口
网路层头:IP头决定传输路线
网络接口层头尾:产生帧(消息分段)决定最终路线 TCP/IP协议中的重要协议
TCP/IP协议是基于OSI模型的具体实现 是互联网中设备间通信的基本规则
想要进行网络通信我们就遵循TCP/IP协议的规则进行消息传递就行了 网络通信API都是基于TCP/IP协议的封装 各种语言(C#、C、Java、Go等等)都有对应的网络通信类对TCP/IP协议进行了封装 我们只需要使用对应的类和方法进行网络连接、网络通信就可以完成对应的功能 应用层协议: HTTP协议:超文本传输协议 HTTPS协议:加密的超文本传输协议 FTP协议:文件传输协议 DNS:域名系统
传输层协议: TCP协议:传输控制协议 UDP协议:用户数据报协议
网络层协议: IP协议
TCPUDP连接方面面向连接(比如:打电话要先拨号建立连接)无连接发送数据前不需要建立连接安全方面 无差错、不丢失 不重复、按序到达 只会尽力交付不保证可靠性传输效率相对较低相对较高连接对象一对一 一对一一对多、 多对一、多对多
TCP协议
TCP(Transmission Control Protocol传输控制协议) 是面向连接的协议也就是说在收发数据前必须和对方建立可靠的连接 并且在消息传送过程中是有顺序的并且是不会丢包(丢弃消息)的 如果某一条消息在传送过程中失败了会重新发送消息直到成功
它的特点是:1.面向连接 两者之间必须建立可靠的连接 2.一对一 只能是1对1的建立连接 3.可靠性高 消息传送失败会重新发送不允许丢包 4.有序的 是按照顺序进行消息发送的
三次握手
第一次握手(C-S) TCP连接请求告诉服务器我要和你建立连接
第二次握手(S-C) TCP授予连接告诉客户端准了来吧
第三次握手(C-S) TCP确认连接告诉服务器来就来 四次挥手
断开连接
第一次挥手(C-S) 告诉服务器我数据发完了你如果还有消息就快发完
第二次挥手(S-C) 告诉客户端我知道了请继续等待我的消息
第三次挥手(S-C) 告诉客户端消息发完了你可以正式断开连接了
第四次挥手(C-S) 告诉服务器我等一会如果没有收到你回复我就断开了 UDP协议
UDP(User Datagram Protocol用户数据报协议) 是一种无需建立连接就可以发送封装的IP数据包的方法 提供面向事务的简单不可靠信息传送服务 它的特点是:1.无连接 -- 两者之间无需建立连接 2.可靠性低 -- 消息可能在传送过程中丢失丢失后不会重发 3.传输效率高-- 由于它的可靠性低并且也无需建立连接所以传输效率上更高一些 4.n对n -- TCP只能1对1连接进行消息传递而UDP由于无连接所以可以n对n
UDP协议不像TCP协议需要建立连接有三次握手和四次挥手 当使用UDP协议发送信息时会直接把信息数据扔到网络上所以也就造成了UDP的不可靠性 信息在这个传递过程中是有可能丢失的 虽然UDP是一个不靠谱的协议但是由于它不需要建立连接 也不会像TCP协议那样携带更多的信息所以它具有更好的传输效率它具有资源消耗小处理速度快的特点
TCP与UDP对比
TCP 更可靠保证数据的正确性和有序性(三次握手四次挥手) 适合对信息准确性要求高效率要求较低的使用场景 比如:游戏开发文件传输远程登录等等
UDP: 更效率传输更快资源消耗更少 适合对实时性要求高的使用场景 比如:直播即时通讯游戏开发等等
总结
在进行Unity网络开发时需要根据具体的应用场景选择合适的网络协议。例如对于需要可靠传输的应用场景可以选择TCP协议对于对实时性要求较高、可以容忍一定丢包率的应用场景可以选择UDP协议。