--- title: 计算机网络-运输层复习 mathjax: true date: 2019-06-28 21:34:11 tags: [计算机网络] --- # 解决的问题 实现两台主机中**进程之间**的通信。 - 复用和分用 - 复用 多个应用层进程可使用同一运输层服务 - 分用 运输层把收到的信息分别交付上面应用层的相应进程 - 提供可靠性 # TCP - 面向连接 - **面向字节流** - 提供可靠性 - 不提供广播或多播服务 - 协议数据单元是**TCP报文段** - 有拥塞控制 每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。 **套接字**:IP地址+端口号 # UDP - 无连接 - 面向报文(给什么数据,传什么数据) - 尽最大努力交付 - 可以一对多、多对一、多对多 - 协议数据单元是**UDP用户数据报** - 没有拥塞控制 # 停止等待协议 - **无差错情况**:停止等待 每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。 - **出现差错**:超时重传 每发送完一个分组时设置一个超时计数器。 如果超时还未收到确认,就重传分组;在超时前收到确认则撤销该超时计数器。 - A发送完一个分组后**必须暂时保留已发送到分组的副本**,在收到响应确认后才能清除这个副本。 - 分组和确认分组必须进行**编号**,这样才能明确发送出去的分组是哪一个收到了确认,哪一个没有收到确认。 可以处理确认迟到的情况。 - 超时计数器设置的**重传时间应当比数据在分组传输的平均往返时间长一些**。如果设定得很长,通信效率就会降低;如果设定得太短,会导致不必要的重传,浪费了网络资源。 - **确认丢失** 确认丢失时,发送方进行超时重传,而**接收方丢弃这个重复的分组**,**向发送方发送确认**。 - **确认迟到** 确认迟到了,发送方进行超时重传,而**接收方丢弃这个重复的分组**,**向发送方发送确认**。 发送方收到迟到的确认什么也不做。 # 慢开始 TCP进行拥塞控制的一种算法。 拥塞是运输层的概念。 发送方维持一个变量:**拥塞窗口**,让自己的**发送窗口等于拥塞窗口**,**拥塞窗口的大小取决于网络的拥塞程度**。 **判断网络拥塞的依据就是出现了超时**。网络拥塞时就把拥塞窗口减小一些。 慢开始:**由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值**。 发送方每收到一个对新报文段的确认就使发送方的拥塞窗口+1。 --- 作者:[@臭咸鱼](https://github.com/chouxianyu) 转载请注明出处: 欢迎讨论和交流! ---