TCP和UDP协议原理及理解1 |
您所在的位置:网站首页 › tcp协议和udp协议有哪些区别和联系 › TCP和UDP协议原理及理解1 |
TCP/UDP:
一、什么是TCP/UDP协议1、回顾一下IP和端口号:2、TCP/UDP协议是什么?
二、UDP协议1、UDP协议的特点2、UDP协议段格式3、UDP数据的封装:4、UDP数据的分用5、UDP数据的校验和机制(Checksum)6、UDP数据的缓冲区
三、TCP
一、什么是TCP/UDP协议
1、回顾一下IP和端口号:
IP:标识网络上的唯一主机port端口号:标识主机上的唯一进程IP+port端口号:标识网络上的唯一主机上的唯一进程端(IP+port)对端(IP+port):四个信息标识唯一的一个端对端通信------->四元组四元组+协议(TCP/UDP协议)=五元组:在TCP/IP协议栈内部用来标识传输层上的唯一一个端对端通信
2、TCP/UDP协议是什么?
TCP和UDP协议是TCP/IP协议的核心。TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。 TCP协议: TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;UDP协议:UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。接下来将对两大协议进行详细讲解。 二、UDP协议 1、UDP协议的特点 无连接: 知道对端的IP和端口号就直接进行传输,不需要建立连接;只是发送数据,具体发送到了没有或者时服务器是否有响应,一概不管。不可靠: 没有确认机制,没有重传机制:如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量。针对无连接和不可靠的特点,我们主要对比TCP来理解。 2、UDP协议段格式由上图可以看出,UDP数据由header(UDP首部)和UDP数据部分组成;Header部分为8字节,也就是64比特位。 3、UDP数据的封装:由上图可以看出:UDP数据的封装就是应用层的数据+UDP的首部,就包装成了UDP数据。 Header中的数据主要作用是:1>解包; 2>分用; 3>内部使用 4、UDP数据的分用当对UDP数据进行分用的时候,应该从什么地方进行切割呢?切割多大长度呢? 我们知道,UDP数据的Header部分是将应用层数据封装成UDP数据的,所以在解包的时候应该将Header和应用层数据之间切割。所以应该切割8字节(Header部分)。 在分用的时候,是谁对数据进行分用呢? 在UDP数据Header中,有四元组信息,其中的目的端口已经唯一确定了某一进程,所以目的端口对应的进程来分用数据。 5、UDP数据的校验和机制(Checksum)校验和机制: 利用Hash做数据正确性验证,也叫数据签名。 校验和不对的情况下,就直接丢包。在我们用户的角度就可能是平时见到的卡(应用层)或者是没有接收到消息。 6、UDP数据的缓冲区UDP没有发送缓冲区,但有接收缓冲区。 我们以发送包裹为例,阐述一下缓冲区问题,见下图。 UDP使用注意事项: 我们注意到, UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部). 然而64K在当今的互联网环境下, 是一个非常小的数字。如果我们需要传输的数据超64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装; 应用层分包: 比如:如果一个聊天应用使用的是UDP协议,UDP一个数据报文最多发送50个字,但是我却要发送180个字,这个时候应用层就需要把这180个字分四次发送。 三、TCP有关TCP的介绍请看下一篇博客,文章链接: TCP. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |