本文最后更新于:2020年10月31日 下午
总结/思考:
UDP协议
UDP协议的首部有8个字节,一共四个字段,每个字段的长度都是2个字节,16比特(位)。
UDP 特点
1、无连接:UDP是无连接的协议,他在进行数据传输之前不需要先建立连接,也没有各种重传机制、拥塞控制和流量控制,所以传输速度很快,消耗很低,延迟小,数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。
2、不可靠:只负责数据的发送,不关心数据是否送达,没有确认机制,主机收到数据也不会有响应
3、分组首部开销小,TCP的首部是20字节,UDP的首部是8字节
4、面向报文的:TCP(面向连接的传输控制协议)是面向字节传输,而UDP是面向报文传输,对于应用层交下来的报文段不进行拆分合并,直接保留原有报文段的边界然后添加UDP的首部就交付给网络层。不论报文的长短,UDP都不会进行处理。因此为了避免报文段过短降低传输效率以及报文段过长导致网络层对IP数据进行分片操作,应用层应该选择合适长度的报文交付给运输层的UDP。
TCP协议
TCP 用于从应用程序到网络的数据传输控制。
TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。
是面向连接的、可靠的、基于字节流的传输层通信协议。
TCP 特点
1、点对点(不能广播、多播),面向连接
2、双向传递(全双工)
3、字节流:打包成报文段、保证有序接收、重复报文自动丢弃
缺点:不维护应用报文的边界(需要HTTP协议自己定义/r/n或content length进行结尾、GRPC)
优点:不强制要求应用必须离散的创建数据块,不限制数据块大小
4、流量缓存:解决速度不匹配问题(滑动窗口)
5、可靠的传输服务(保证可达,丢包时通过重发进而增加时延实现可靠性)
6、拥塞控制
MSS:Max Segment Size
定义:仅指TCP承载数据,不包含TCP头部大小,参见RFC879
MSS选择目的:
尽量每个Segment报文段携带更多的数据,以减少头部空间占用比率
防止Segment被某个设备的IP层基于MTU拆分
默认MSS:536字节(标准默认MTU576字节,20字节IP头部,20字节TCp头部)
滑动窗口
是TCP流量控制的一个手段。这里说的窗口,指的是接收通告窗口(Receiver Window,RWND)。它告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度。
拥塞控制
拥塞控制包含四个方式:慢启动、拥塞避免、快速重传和快速恢复,用于应对通信网络环境差时的丢包问题
丢包情况严重时采用慢启动+拥塞避免方式;当丢包情况不严重时,可进行快速重传和快速恢复方式;不一定会进入慢启动状态.
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!