其他分享
首页 > 其他分享> > 运输层 ,跑腿的秘书

运输层 ,跑腿的秘书

作者:互联网

运输层

本节重点

运输层最近又添加了第三种协议 ,STCP(Stream Cntrol Transmission Protocol) [建议标准] 它具有TCP和UDP的协议的共同优点

运输层协议概述

进程间的通信

运输层向他上面的应用层提供通信。
当网络边缘的主机使用网络的核心功能进行端对端通信时,只有主机的协议栈才有运输层,核心部分一般都只有三层结构 。
通信的真正端点时主机和主机之间的进程
逻辑通信 : 从应用层来看,只要把应用层报文交给下面的运输层,运输层就可以把报文传输给对方的物理层。
运输层还要对收到的报文进行检错。前面的网络层, 只是对应的数据报的首部的检测。
网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信

运输层的两个协议

TCP/IP运输层的两个协议都是互联网的正式标准即:

应用 应用层协议 运输层协议
域名转换 DNS(域名)系统 UDP
文件传输 TFTP(简单文件传输) UDP
路由选择协议 DHCP(动态主机配置) UDP
网络管理 SNMP(简单网络管理协议) UDP
远程文件服务器 NFS(网络文件系统) UDP
IP电话 专用协议 UDP
流式多媒体通信 专用协议 UDP
多播 IGMP(网络组管理协议) UDP
电子邮件 SMTP(简单邮件传输协议) TCP
远程终端接入 TELNET(远程终端协议) TCP
万维网 HTTP(超文本传输协议) TCP
文件传送 FTP(文件传送协议) TCP

TCP和UDP使用一个16位的端口号来标示一个端口号。端口号只有本地意义,就是为了表示计算机应用层中的个进程在 和运输层在交互时的接口。 16位的端口号允许65535个不同的端口号。

常用的熟知的端口号

应用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP SNMP(trao) HTTPS
熟知的端口号 21 23 25 53 69 80 161 162 443

另一类叫做登记端口号,数值为1024-49151 。 这类端口时为没有熟知端口号的应用程序的使用, 使用这类端口号必须在IANA按照规定的手续登记,以防止重复

用户数据包协议UDP

UDP只在IP的数据报之上添加了很少的功能。就是复用和分用以及 差错检错的功能 :

  1. 特点:

UDP的首部格式

共8个字节

  1. 用0填充首部检验和字段
  2. 取偶数个字节进行加法运算 (奇数,补零 ,运算,实际的数据中没有)
  3. 结果求反码放入到首部检验和字段

传输层控制协议TCP

TCP协议的主要特点 :

套接字socket = (IP地址:端口号) 

每条TCP链接唯一地被通讯两个端点(即套接字) 所确定。即:

TCP链接::={socket1,socket2}= {(IP,端口号),(IP2,端口号)}

TCP报文段的首部格式

其中个别字段解释:

可靠传输的原理

  1. 传输信道不产生差错
  2. 不管发送方以 多块的速度发送数据,接受方总是来得及处理接受到的消息  

停止等待协议

就是每发送一个分组就停止发送,等待对方确认。收到确认后在发送下一个分组。 

连续的ARQ协议

位于滑动窗口内的5个分组都可以连续的发送出去,而不需等待确认。 发送每收到一个确认就把窗口向前滑动一个分组的单位。接受方不必对收到的数据逐个发送确认,而是在收到几个分组红颜,对按序到达的最后一个分组发送确认。 出现差错时,使用Go-back-N(回退N。

TCP实现可靠传输的特点

同样TCP使用的滑动窗口实现的,但是如果存在确认丢失,那么也是采用超时重传的方法来确定。 但是超时时间设置也是比较的复杂 ,采用自适应算法

超时重传时间的选择

TCP采用的是一种自适应算法,它是记录一个报文发出的时间,以及收到相应的确认时间 。这两时间之差就是报文的往返时间RTT TCP保留了一个加权平均往返时间RTTs,这又称为平滑的往返时间。 当第一次测量到RTT样本时,RTTs值就为RTT样本的值,以后没采测到一次,就按照下面的公式计算一次:

新的RTTs=(1-α)× (旧的RTTs) + α× (新的RTT样本) 

标准建议设置为:0.125

RTO  =  RTTs + 4* RTT<sub>D</sub>

RTTD 建议的计算值: 当一次计算时,RTTD 的取值为RTT样本值的一半 ,以后的计算方法

新的RTT<sub>D</sub>  =  (1-β)×(旧的RTT<sub>D</sub>)+ β×ABS(RTTs-新的RTT样本)

β的推荐值0.25
但时这种算法有缺陷。重传后,收到前面的一个确认报文,无法确定时那个分组的RTT。
若是前一个,则RTTS和D增大, 若是后一个减少。

选择确认 SACK

若收到的报文无差错 , 只是序号序号未按照序号,中间的缺少一些数据,不必重传,只需要传输缺少的数据

TCP流量控制

所谓的流量控制(flow contro)就是让发送方发送速率不要太快,要让接受方来的及接受
假设问题:B发送rwnd= 0,A接受到后不在发送数据,但是一段时间后,B的rwnd = 400,但是在发送rwnd=400的报文段丢失了。那么A就一直等待B发送︿( ̄︶ ̄)︿非零窗口的报文段,B也在等待A的数据报陷入相互死锁的问题 。 
解决办法:使用一个持续的计时器,时间一到就发送一个零窗口的探测报文段。  

TCP的拥塞控制

网络中某一资源超过了网络性能就会变坏。
TCP进行拥塞控制的算法一共有四种。
慢开始 拥塞避免 快重传 快恢复

TCP的传输链接管理

TCP时面向链接的协议,运输连接是用来传输TCP报文的。TCP运输连接的建立和选择时面向连接的通信中必不可少的。 因此运输连接必有三个阶段,即: 连接建立,数据传送,连接释放。 运输连接的管理就是使得运输连接的建立和释放都能正常的进行。

  1. TCP连接建立解决的三大问题:
  1. TCP的连接建立  
    TCP建立连接的过程叫做握手(三报文握手), 握手需要在客户和服务器之间交换三个TCP报文段

详细过程: 

TCP的连接释放。

TCP的连接关闭也是比较的复杂的,需要四次握手。

标签:运输,UDP,确认,报文,秘书,TCP,发送,跑腿,连接
来源: https://www.cnblogs.com/king0/p/12932251.html