赞
踩
IP:网络层协议;
TCP和UDP:传输层协议;
HTTP:应用层协议;
SOCKET:TCP/IP网络的API。
TCP/IP代表传输控制协议/网际协议,指的是一系列协议。
TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。
Socket 接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,用以开发TCP/IP网络上的应用程序。
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
确认应答信号ACK = 收到的SEQ + 1。连接建立中,同步信号SYN始终为1。连接建立后,同步信号SYN=0。
优点:
缺点:
传输慢,效率低,占用系统资源高1、传递数据前,建立连接需要耗时2、传递数据时,确认、重传、拥塞等会消耗大量时间以及CPU和内存等硬件资源
易被攻击1、因为有确认机制,三次握手等机制,容易被人利用,实现DOS 、DDOS攻击
如何保证接收的顺序性:
TCP协议使用SEQ和ACK机制保证了顺序性TCP的每个报文都是有序号的。确认应答信号ACK=收到的SEQ+1
简介:
使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
优点:
传输速率快1、传输数据前,不需要像TCP一样建立连接2、传输数据时,没有确认、窗口、重传、拥塞控制等机制
较安全1、由于没有了TCP的一些机制,被攻击者利用的漏洞就少了
缺点:
用UDP协议通讯时怎样得知目标机是否获得了数据包
仿造TCP的做法,每发一个UDP包,都在里面加一个SEQ序号,接收方收到包后,将SEQ序号回复给发送方。如果发送方在指定时间以内没有收到回应,说明丢包了。
TCP面向有链接的通信服务 | UDP面向无连接的通信服务 |
TCP提供可靠的通信传输 | UDP不可靠,会丢包 |
TCP保证数据顺序 | UDP不保证 |
TCP数据无边界 | UDP有边界 |
TCP速度快 | UDP速度慢 |
TCP面向字节流 | UDP面向报文 |
TCP一对一 | UDP可以一对一,一对多 |
TCP报头至少20字节 | UDP报头8字节 |
TCP有流量控制,拥塞控制 | UDP没有 |
为什么UDP比TCP快
为什么TCP比UDP可靠
什么时候使用TCP
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。在日常生活中,常见使用TCP协议的应用如下:浏览器,用的HTTPFlashFXP,用的FTPOutlook,用的POP、SMTPPutty,用的Telnet、SSHQQ文件传输
什么时候应该使用UDP:
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。比如,日常生活中,常见使用UDP协议的应用如下:QQ语音QQ视频TFTP
TCP无边界,UDP有边界
TCP无边界
客户端分多次发送数据给服务器,若服务器的缓冲区够大,那么服务器端会在客户端发送完之后一次性接收过来,所以是无边界的;
UDP有边界
客户端每发送一次,服务器端就会接收一次,也就是说发送多少次就会接收多少次,因此是有边界的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。