计算机网络2TCP和UDP的区别

北京专门治疗白癜风的医院 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/
在中,我们主要介绍了TCP和UDP的特点。这一篇,我们着重介绍这两者的区别所在。UDP的首部格式用户数据报UDP主要由两个字段组成:数据字段和首部字段。这里我们介绍下它首部字段格式。UDP的首部字段主要由四个字段组成(共8个字节,每个字段两个字节)。各字段介绍如下:源端口源端口号,在需要对方回信时选用,不需要时可用全0;目的端口目的端口号,这在终点交付报文时必须要使用到;长度UDP用户数据报的长度,其最小值是8(仅首部);检验和检测UDP用户数据报在传输中是否有错。有错就丢失该数据报;UDP数据报的格式如下图所示:TCP的首部格式对比UDP报文段的首部格式,TCP相对来说来复杂得多。跟UDP一样,TCP报文段也同样分为首部和数据两部分。下面简单介绍下TCP报文段首部格式。TCP报文段首部前20个字节是固定的,后面4N个字节是根据需要而增加的选项。因此,TCP报文段首部最小长度为20个字节。首部固定部分各字段意义如下:源端口和目的端口各占两个字节,分别写入源端口号和目的端口号(同UDP类似);序号占4个字节。从第一篇我们知道,TCP是面向字节流的。在传输的字节流中,每一个字节都按顺序编号。而这个序号字段存储的正是本报文所发送的数据的第一个字节的序号。因此,我们也叫这个字段为“报文段序号”;确认号占4个字节,是期望收到对方下一个报文段的第一个数据字节的序号。举个例子:假如说B收到了A发送过来的一个报文段,其序号字段是,数据长度是个字节,也就是说B收到了A发送到序号为为止的数据。因此,B希望收到A下一个数据序号为,于是B在发送给A的确认报文段中吧确认号置为。数据偏移占4位。这个字段指出了TCP报文段数据起始处距离TCP报文段起始处便宜了多少字节。这是因为TCP的首部是不固定的,数据偏移字段还是有必要的。保留预留的字段,占6位紧急URG(URGent)当URG==1时,表明紧急指针字段有效。它会告诉系统此报文段中有紧急数据,需要尽快传送(相当于高优先级的数据)。这通常用于数据传送过程中的紧急中断处理操作。确认ACK(ACKnowlegment)当ACK==1时,确认号才有效,反之则无效。在TCP连接建立后,必须把所有报文段的ACK置为1。推送PSH(PuSH)当两个应用程序在使用TCP进行数据交互时,有时候一方需要在键入一个命令后马上得到对方的响应,这个时候可以吧PSH置为1,并立即创建一个报文段发送出去。接收方接收到此报文段后,会尽快推送交付给应用程序,给不需要等待缓存填满再向上交付。复位RST(ReSet)当RST==1时,表明TCP连接出现错误,需要释放连接并重新建立运输连接。RST置1还可用来拒绝一个非法的报文段或拒接打开一个连接。该位也称为重建位或重置位。同步位SYN(SYNchronization)在连接建立时用来同步信号。当SYN==1而ACK==0时,表明这是一个连接请求报文段。若对方同意连接后,则应在响应报文段中使SYN==1和ACK==1。因此,SYN==1表明这是一个连接请求或连接接受报文。(这里涉及到TCP的连接过程相关知识,后面篇章再对这一块进行详解)终止FIN(FINis)用来释放一个连接,当FIN==1时,表明此报文段发送端的数据已发送完毕,并要求释放运输连接窗口占2个字节。窗口是指发送本报文段一端的接收窗口(注意!不是发送窗口);窗口字段明确指出了现在允许对方发送的数据量,这是因为接收方数据缓存是由限制的。窗口值处于动态变化中。检验和占2个字节。检验范围包括首部和数据这两部分。计算时,需要加上TCP报文段前面12字节的伪首部。紧急指针占2个字节。紧急指针仅在URG==1时才有意义。它指出了本报文段中紧急数据的字节数(紧急数据结束后就是普通数据)。紧急指针指出了紧急数据末尾在报文段中的位置。当所有紧急数据处理完后,TCP会告诉应用程序恢复正常操作。(注:窗口值为0也可以发送紧急数据)选项长度可变,最长可达40个字节。当没有使用选项时,TCP首部的长度是20个字节。(该字段这里就不再赘述了)以上就是TCP和UDP报文首部字段的区别,其实差别还有体现在其他方面(比如TCP和UDP两者数据的传输过程,TCP的连接等),这里会在后续篇章叙述。今天就暂时先到这里吧。想要了解更多TCP/IP知识点,


转载请注明:http://www.twoac.com/wyzl/13441.html


  • 上一篇文章:
  • 下一篇文章: 没有了
  • .