分享

几个常用的网络协议

 星夜白科 2018-03-18

之前的文章了解了一下网络编程,这里我们来看网络协议。网络协议规定了计算机之间连接的物理,机械(网线与网卡的规定连接),电气(有效的电平范围)以及计算机之间的相互寻址规则,数据发生冲突的解决,长的数据如何分段传送与接收等。下面简单地介绍几个常用的网络协议。

1.TCP/IP协议组

TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成

IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。

TCP层负责面向应用的可靠的或费可靠的数据传输机制,这是网络编程的主要对象。

TCP/IP是个协议组,可分为三个层次:网络层,传输层和应用层:

网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议

传输层:TCP协议与UDP协议;

应用层:FTP、HTTP、TELNET、SMTP、DNS等协议

2.TCP

TCP,即传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接前,TCP连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求。

TCP是一个面向连接的保证可靠的传输协议。通过TCP协议,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个Socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个Socket(通常都是Server Socket)等待建立连接时,另一个Socket可以要求进行连接,一旦这两个Socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送和接收操作。

TCP的适用情况:

TCP发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此TCP最大的优点是可靠。一般网页(http)、邮件(SMTP)、远程连接(Telnet)、文件(FTP)传送就用TCP

TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。

3.UDP

UDP,即用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户端和服务器之间建立一个连接,且没有超时重发等机制,固而传输速度很快。

UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网路上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间已经内容的正确性都是不能被保证的。

UDP的适用情况:

UDP是面向消息的协议,通讯时不需要建立连接,数据的传输自然是不可靠的,UDP一般多用于多点通讯和实时的数据业务,比如语音广播、视频、QQ、TFTP(简单文件传送)、SNMP(简单网络管理协议)、RTP(实时传送协议)RIP(路由信息协议,如报告股票市场,航空信息)、DNS(域名解释)。注重速度流畅。

UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

注:TCP与UDP的区别:

1.TCP是可靠的,通过数据校验保证发送和接收到的数据是一致的;UDP是不可靠的,发送一串数字分组(1,2,3)可能接收到时就变成(1,0,0)了,做UDP连接时需要自己做数据校验。

2.TCP数据是有序的,以什么顺序发送的数据,接收时同样会按照此顺序;UDP是无序的,发出(1,2,3),有可能按照(1,3,2)的顺序收到。应用程序必须自己做分组排序。

3.TCP因为建立连接、释放连接、IP分组校验排序等需要额外工作,速度较UDP慢许多。TCP适合传输数据,UDP适合流媒体。

4.UDP比TCP更容易穿越路由器防火墙。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多