计算机通信两种情况:①发送内容分成多个数据包;②一个数据包能发送全部内容。
UDP用户数据包协议。如果一个数据包能发送全部内容,在传输层使用UDP协议,不需要分段、编号、不需要建立连接。UDO协议不实现可靠传输,而是将传输、排序等功能移交给上层应用来完成。
TCP传输控制协议。TCP协议在通信中需要和客户端一直维持TCP连接,需要占用两端计算机的通信资源,拥有流量控制、拥塞避免,是一种可靠传输。
无连接。发送数据之前不需要建立连接,减少开销及发送前延迟。
最大努力交付。即,不保证可靠交付,通信两端不保持连接,节省系统资源。
面向报文。应用层交付的报文,UDP保持原样发送,一次只发送一个(报文太长,网络层会分片;报文太短,网络冲会又首部填充。均降低IP层的效率。)
无拥塞控制。适宜某些实时应用,恒定速率法宝,且允许拥塞丢失部分数据,不允许有较大时延。
支持一对一、一对多、多对一、多对多的交互通信。
首部开销小,8字节,比TCP20字节要短。
源端口。需对方回信时可用。
目的端口。终点交付报文时可用。
长度。UDP用户数据报的长度,最小值为8(仅首部时)
检验和。检测传输中是否有错,有错则丢弃。
Tips:图中伪首部,实在检验和时计算用,不向下传送同时也不向上提交。
面向连接。应用程序在使用TCP协议之前,必须先建立TCP连接。
点对点。TCP连接只能有两个端点,只能是点对点。
可靠交付。TCP连接传送的数据,不差错、不丢失、不重复且按序发放。
提供全双工通信。通信双方,任何时候都能发送数据,两端都设有发送、接收缓存,用以临时存放双向通信数据。
面向字节流。程序与TCP交互一次一个数据块,TCP将交付数据视为一连串无结构的数据流,要求接收放能够有能力识别收到的字节流。
TCP虽然时面向字节流,传送单位是报文段。首部长度不固定,前20字节固定,后4N字节根据需要增加,最小20字节。
源端口、目的端口。各占2字节源端口、目的端口号。
序号。占4字节,在TCP连接中传送的字节流的每个字节都按顺序编号。
确认号。占4字节,期望收到对方下一个报文段的第一个数据字节的序号。(数据报连续确认一样的机制)
数据偏移。占4位,TCP报文数据距离TCP报文段起始处有多远,四位二进制,表示最大十进制15,也就是数据偏移量最大值是60字节。
保留。占6位,保留为今后使用。
应急URG。值=1,应尽快传送优先数据。
确认ACK。TCP规定,在建立连接后所有传送报文段必须将ACK置为1。
推送PSH。接受发TCP接收到PSH=1报文段时,应尽快交付至应用程序。
复位RST。表示TCP连接中出现严重差错,需要释放,然后重新建立连接。
同步SYN。建立连接时用来同步的序号。
终止FIN。FIN=1时,表明报文发送方已发送完毕,用来释放连接。
窗口。占2字节本报文首部确认号起,接收方允许对方发送的数据量(字节)。
检验和。占2字节,计算检验和时,需要加上12位的伪首部。
紧急指针。占2字节指出紧急数据的末尾在报文段的位置,配合应急使用。
选项。最高40字节
理想传输条件下两特点:传输不产生差错,不丢包;发送发发送速度,接受方总是能及时处理收到的数据。
我们使用一些可靠传输协议,①当出现差错时让发送方重传出现差错的数据;②接收方来不及处理收到的数据时,及时告诉发送方适当降低发送数据的速度。
滑动窗口协议是面向字节流,滑动窗口协议是为解决停止等待协议中确认迟到、确认丢失情况。
流量控制就是人发送方的速率不要太快,让接收方来得及接收。
网络系统的吞吐量与输入负载之间的关系永远不是线性。
RFC2581定义了阻塞的四种算法,慢开始、拥塞避免、快重传、快回复。
假定:①数据单方向粗汉宋,另外一个方向只传送确认;②接受方有足够大的缓存空间,发送窗口大小又网络堵塞来决定。
cwnd<ssthresh(慢开始门限)时,使用满开始算法。
cwnd>ssthresh(慢开始门限)时,使用停止慢开始算法改用拥塞避免算法。
cwnd=ssthresh(慢开始门限)时,慢开始也可以拥塞避免算法。
Tips:①加法增大,执行拥塞算法后,使拥塞窗口缓慢增大;乘法减小,在任何时候开始拥塞,慢开始门限值快速下降,整个传输情况就变得缓慢。
假定,接收方每收到一个失序的分组后就立即发出重复确认,而不是等之间发送数据时才进行捎带确认。
快重传算法规定,发送方只要一连接收到三个重复确认就应当立即重传对方尚未确认的报文段,而不必等到设置的重传计时器到期。约可以使网络吞吐量提升20%
快恢复,①在发送发接收到三个重复确认时,就开始执行“乘法减小”,将慢开始门限减半,预防网络堵塞。②发送方认为网络并没有发生拥塞,开始使用快恢复算法,将拥塞窗口缓慢的线性增大。(虚线为旧版)
Tips:慢开始算法只是在TCP连接建立时和网络出现超时时才使用。
主要参考韩立刚老师老师的《计算机网络原理创新教程》
以上
原文:https://www.cnblogs.com/Novelist/p/14887652.html