网络开发基本知识

来源:互联网 发布:手机订电影票软件 编辑:程序博客网 时间:2024/05/17 12:49

网络开发基本知识

 (2013-11-28 05:44:32)
转载
标签: 

it

 

unity3d教程

 

unity3d

 

unity

分类: Unity3d之Web服务器篇

                            网络开发基本知识

OSI
OSI是Open System Interconnect的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层数据链路层网络层传输层会话层表示层应用层
网络开发基本知识

UDP
User Datagram Protocol,用户数据报协议,是 OSI中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序
网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的QQ就是使用的UDP协议。
UDP报头由4个域组成,其中每个域各占用2个字节,具体如下: 
UDP

UDP

源端口号
目标端口号
数据报长度
校验值


TCP
Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

3服务类型

  1. 3.1 FTP 文件传送
  2. 3.2 RLogin 远程登录
  3. 3.3 SMTP POP3 电子邮件
  4. 3.4 NFS 网络文件系统
  5. 3.5 远程打印
  6. 3.6 远程执行
  7. 3.7 名字服务器
  8. 3.8 终端服务器

连接建立

TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。
TCP的三次握手

TCP的三次握手

连接终止

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
TCP连接的终止

TCP连接的终止

6





TCP/IP
Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
TCP/IP协议并不完全符合OSI的七层参考模型。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
网络开发基本知识


TCP UDP对比
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!   UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。 tcp协议和udp协议的差别                           TCP                          UDP 是否连接             面向连接             面向非连接 传输可靠性        可靠                         不可靠 应用场合        传输大量数据             少量数据 速度                     慢                              快
HTTP SOCKETIP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,
socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:  “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。  如果想要使传输的数据有意义,则必须使用到应用层协议。  应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。  WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”
  而我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。  通过Socket,我们才能使用TCP/IP协议。      形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。
0 0
原创粉丝点击