【网络】认识UDP / TCP

在TCP/IP对网络的划分下传输层试很重要的一层,通过阅读《图解TCP/IP》对传输层的TCP/UDP进行总结。

UDP

1、UDP的特点
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发出来的数据在收到的那一刻,立即按照原来发送到网络上的一种机制。(UDP无法进行流量控制等避免网络拥塞的行为;传输丢包UDP不负责重发;包到达顺序乱掉时没有纠正的功能)

2、UDP应用场景
1、包总量较少的通信(DNS、SNMP等)
2、视频、音频等多媒体通信(即时通信)
3、限定于LAN等特定网络中的应用通信
4、广播通信(广播、多播)

3、UDP首部的格式
除去数据的部分正是UDP的首部。UDP首部由源端口号,目标端口号,包长和校验和组成。
在这里插入图片描述
1、源端口号(Source Port)
表示发送端端口号,字段长16位。该字段是可选项,有时可能不会设置源端口号。没有源端口号的时候该字段的值设置为0.可用于不需要返回的通信中。
2、目标端口号(Destination Port)
表示接收端端口,字段长度16位。
3、包长度(Length)
该字段保存了UDP首部的长度之和。单位为字节(8位字节)。
4、校验和(Checksum)
校验和是为了提供可靠的UDP首部和数据而设计。在计算校验和时,附加在UDP伪首部与UDP数据报之前。通过在最后一位增加一个“0”将全长增加16倍。此时将UDP首部的校验和字段设置为“0”.然后以16比特为单位进行1的补码和,并将所得到的1的补码和写入校验和字段。
在这里插入图片描述
在这里插入图片描述

TCP

1、TCP的特点
为了通过IP数据报实现可靠性传输,TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等实现可靠性传输。
2、TCP应用场景
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。在日常生活中,浏览器,用的HTTP;FlashFXP,用的FTP;Outlook,用的POP、SMTP;Putty,用的Telnet、SSH;
QQ文件传输。
3、TCP首部格式
TCP中没有表示包长度和数据长度的字段。可由IP层获知TCP的包长有TCP的包长可知数据的长度。
在这里插入图片描述
1、源端口号(Source Port)
表示发送端端口号,字段长16位。
2、目标端口号(Destination Port)
表示接收端端口号,字段长度16位。
3、序列号(Sequence Number)
字段长32位。序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小。
序列号不会从0或1开始,而是在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机。然后再将没转发过去的字节数累加到初始值上表示数据的位置。此外,在建立连接和断开连接时发送的SYN包和FIN包虽然并不携带数据,但是也会作为一个字节增加对应的序列号。
4、确认应答号(Acknowledgement Number)
确认应答号字段长度32位。是指下一次应该收到的数据的序列号。实际上。它是指已收到确认应答号减一位置的数据。发送端收到这个确认应答以后可以认为在这个序号以前的数据都已被正常接收。
5、数据偏移(Data Offset)
该字段表示TCP所传输的数据部分应该从TCP包的哪个位置开始计算,当然也可以把它看作TCP首部的长度。该字段长4位,单位为4字节。不包括选项字段的话,如图所示TCP的首部为20字节长,因此数据偏移字段可以设置为5。反之,如果该字段的值为5,那说明从TCP包的最一开始到20字节为止都是TCP首部,余下的部分为TCP数据。
6、保留(Reserved)
该字段主要是为了以后扩展时使用,其长度为4位。一般设置为0,但即使收到的包在该字段不为0,此包也不会被丢弃。
7、控制位(Control Flag)
字段长为8位,每一位从左至右分别为CWR、ECE、URG、ACK、PSH、RST、SYN、FIN。这些控制标志也叫做控制位。当它们对应位上的值为1时,具体含义如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
8、窗口大小(Window Size)
该字段长为16位。用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小(8位字节)。TCP不允许发送超过此处所示大小的数据。不过,如果窗口为0,则表示可以发送窗口探测,以了解最新的窗口大小。但这个数据必须是1个字节
9、校验和(Checksum)
在这里插入图片描述
TCP的校验和与UDP相似,区别在于TCP的校验和无法关闭。
使用TCP伪首部。为了让其全长为16位的整数倍,需要在数据部分的最后填充0。首先将TCP校验和字段设置位0。然后以16位为单位进行1的补码和计算,再将它们总和的1的补码和放入校验和字段。
在这里插入图片描述
10、紧急指针(Urgent Pointer)
该字段长为16位。只有在URG控制位为1时有效。该字段的数值表示本报文段中紧急数据的指针。正确来讲,从数据部分的首位到紧急指针所示的位置为止为紧急数据。因此也可以说紧急指针指出了紧急数据的末尾在报文段中的位置。
11、选项(Options)
选项字段用于提高TCP的传输性能。因为根据数据偏移(首部长度)进行控制,所以长度最大为40字节。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了28 篇原创文章 · 获赞 71 · 访问量 1896

猜你喜欢

转载自blog.csdn.net/famur/article/details/104960913