TCP和UDP相关概念

位于传输层的协议,都是基于IP协议的。

TCP是面向连接的、可靠的传输,UDP是无连接的、不可靠的传输。要进行TCp传输时候,需要进行三次握手,建立连接,然后才能发送数据,而且在发送过程中,有数据的确认和重传机制,因此TCP适用于传输大量数据,而且要求传输质量的长和;UDP没有上述繁琐的步骤,它直接向指定的主机的端口发送数据,不用建立连接,而且在发送的过程中也不管对方是否收到数据,因此UDP适用于一次传输少量数据,不要钱传输质量的场合。因此UDP比TCP更快。

TCP三次握手:

a)        
Client发送SYN数据包,SYN=1,seq=X请求Server的响应;

b)        
Server发送SYN+ACK数据包ACK=X+1,SYN=1,seq=Y,确认client的请求,同时发送自己的SYN包;

c)        
Client收到SYN+ACK数据包,知道自己的请求已经被允许,则发送一个ACK数据包对Server发送的SYN数据包进行确认ACK=Y+1,
seq=Z;

SYN攻击:在TCP三次握手中,Server发送了SYN+ACK包之后,client并没有发送ack包之前的这段时间,这个握手被称为半连接。此时Server会进入SYN_RECV,当收到client的ack包之后,才会进入established状态,握手才完成。SYN攻击就是利用这一点,使用大量不存在的IP地址发送SYN包给Server,此时Server的连接队列会存在大量的半连接,等待客户端发送ack包,由于client的ip地址是伪造的,所以Server会一直重发,要求客户确认,这就会占用Server的大量系统资源,使得Server服务变慢甚至宕机,造成新的正常连接无法进行。这是一种典型的DDOS攻击。

TCP四次断开,TCP连接断开可以任一方发起的,总共需要四次握手,具体过程如下:

a)        
主动方发送fin+ack+syn数据包(fin=1,seq=X,ack=Y),要求结束连接;

b)        
被动方收到fin数据包,对其进行确认(ack= X +1,seq=
Y+1),说明收到了主动方的fin数据包。此时主动方就不能在给被动方发数据了,关闭了了一半的链接;

c)        
(可省略)被动方还有数据要发送给主动方,则会继续发送(ACK=X+1)数据包,直到数据发送完毕;

d)        
被动方数据发送完毕,发送fin数据包(fin=1,ack=Y+1,seq=Z),表示自己的数据也发送完毕,请求关闭链接;

e)        
主动方收到对方的fin包,则知道对方数据也已经发完,则发送ack包确认关闭(ack=z+1,seq=x+1)数据包。

需要注意的时候当主动方发完第四个握手的包之后,并不会马上关闭连接,它会进入一个2MSL等待状态,其实就是一来一回数据包传输时间,确认这个数据包被动方收到,也关闭连接。设置这个状态主要就是为了确保第四个数据包能够到达被动方,并且被动方收到这个包,如果在一定时间内被动方还没有收到第四个包的话,就会重发fin包,则此时如果主动方已经关闭连接,就收不到这个包了。这也就是2MSL等待状态产生的原因。

http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html

时间: 2024-12-16 14:01:45

TCP和UDP相关概念的相关文章

TCP和UDP的区别

TCP和UDP的区别 TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了. TCP/IP协议集包括应用层,传输层,网络层,网络访问层. 其中应用层包括: 超文本传输协议(HTTP):万维网的基本协议

理解TCP和UDP协议

目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 ·        Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号:用于区别主机中的不同进程,而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一的确定一个TCP连接: ·        Sequence Number:用来标识从T

TCP和UDP基本原理

TCP和UDP基本原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 传输层的主要任务就是建立应用程序间的端到端连接,并且为数据传输提供可靠或不可靠的通信服务,TCP/IP协议族的传输层协议主要包括TCP和UDP ,TCP是面向连接的可靠的传输层协议,它支持在不可靠网络上实现面向连接的可靠的数据传输 ,UDP是无连接的传输协议,主要用于在相对可靠的网络上的数据传输,或用于对延迟较敏感的应用等. 1.传输层的作用 a>.提供面向连接或无连接的服务 b>.维护连接状态 c>

Http、TCP、UDP

1 理清概念: TCP/IP是一个大的协议族(只不过TCP和IP是super star所以就这么命名了),它包括了: 应用层协议:FTP.HTTP.TELNET.SMTP.DNS(协议): 传输层协议:TCP.UDP(协议) 网络层协议:IP.ICMP.ARP.RARP.BOOTP(协议) 其中:HTTP(超文本传输协议)是基于TCP在两台主机间传递信息的协议. Sockct:是实用了TCP/IP协议的一种实现,用以开发TCP/IP网络上的应用. UDP:无链接的不安全的网络协议.ping就是基

TCP、UDP、HTTP、SOCKET之间的区别

IP:网络层协议: TCP和UDP:传输层协议: HTTP:应用层协议: SOCKET:TCP/IP网络的API. TCP/IP代表传输控制协议/网际协议,指的是一系列协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等.TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议.虽然TCP和UD

HTTP、TCP、UDP以及SOCKET之间的区别/联系

一.TCP/IP代表传输控制协议/网际协议,指的是一系列协组. 可分为四个层次:数据链路层.网络层.传输层和应用层. 在网络层:有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层:中有TCP协议与UDP协议. 在应用层:有FTP.HTTP.TELNET.SMTP.DNS等协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的

通信协议------Http、TCP、UDP

CP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.在传输层中有TCP协议与UDP协议.在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议.因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器

[转]TCP、UDP区别

转自:http://zhangjiangxing-gmail-com.iteye.com/blog/646880 TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了.TCP/IP协议集包括应用层

socket、tcp、udp、http 的认识及区别

一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议. 2.HTTP协议是建立在请求/响应模型上的. 首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器, 请求