三、运输层

3.运输层

3.1概述和运输层协议

  • 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信的功能,应用进程使用运输层提供的逻辑通信功能彼此发送报文。
  • 运输层报文: 运输层接收发送应用层进程的报文。将应用报文划分不同的小段,加上运输层头部信息生成运输报文段。运输层将这些报文段传递到网络层,网络层将其封装成网络层分组并向目的地发送。
  • 网络路由器仅作用于该数据报的网络层字段。在接收端,网络层从数据报提取运输层报文段,并将该报文段向上交给运输层,运输层处理接收到的报文段,使该报文段中的数据为接收应用进程使用。
3.1.1 运输层和网络层的关系
  • 运输层协议只工作在端系统中,运输层协议将来自应用程序的报文数据运输到网络边缘,但对有关这些报文在网络核心如何移动不作规定,中间路由器既不处理也不识别运输层加在运输层报文的任何信息。
  • 运输层协议能够提供的服务常常受底层网络层协议的服务模型的限制。
  • 底层网络协议不能在网络层提供相应地服务,运输层也能提供某些服务;例如底层网络协议是不可靠的,运输协议也能为应用程序提供可靠的数据传输服务。
3.1.2 因特网运输层的概述
  • 网络层协议有一个IP协议,为主机之间提供了逻辑通信。IP的服务模型是尽力而为交付服务,为不可靠服务;
  • 而UDP和TCP(应用层为应用层提供的两种可用的运输层协议)是将两个端系统间IP的交付服务拓展为运行在端系统上的两个进程之间的交付服务,即运输层的多路复用和多路分解;

3.2 多路复用和多路分解

将由网络层提供的主机到主机交付服务延伸到为运行在主机的应用程序提供进程到进程的交付服务;

  • 接收端进行多路分用:传输层依据头部信息将收到的 Segment 交给正确的 Socket,即不同的进程;
  • 发送端进行多路复用: 从多个 Socket 接收数据,为每块数据封装上头部信息,生成 Segment ,交给网络层;
  • 分用的工作原理: 主机接收到 IP 数据报(每个数据报携带源 IP 地址,目的 IP 地址;每个数据报携带一个传输层的报文段;每个报文段携带源端口号和目的端口号);主机收到 Segment 之后,传输层协议提取 IP 地址和端口号信息,将 Segment导向响应的 Socket,TCP做更多的处理;
  • 无连接的分用 ,利用端口号创建 Socket ,UDP 的Socket 用二元组织标识(目的 IP 地址,目的端口号),主机收到 UDP 段后检查段中的目的端口号并将 UDP 段导向绑定在端口号的 Socket,来自不同源 IP 地址或源端口号 IP 数据包被导向同一个 Socket;
  • 面向连接的分用: TCP的 Socket 用四元组标识(源IP地址,源端口号;目的 IP 地址;目的端口号),接收端利用所有的四个值将 Segment 导向合适的 Socket;

1.UDP
- UDP:存在的理由:无需建立连接可以减少延迟,实现简单无需维护连接状态,头部开销少,拥塞控制,应用可更好地控制发送时间的速率;无连接,发送方和接受方之间不需要握手,每个 UDP段的处理独立于其他段;
- UDP基于“Best effort”服务,所以有可能丢失数据或者不能按序到达。基于 IP 协议,有简单的错误校验;在应用层增加可靠性机制和应用特定的错误恢复机制了实现可靠数据传输;
- UDP 校验和:检验UDP段在传输中是否发生错误;
1. 发送方:将段的内容视为 16-bits 整数;计算所有整数的和,进位加在和的后面,将得到值按位取反,得到校验和;发送方将校验和放入校验和字段;
2. 接收方:计算所得到的段的校验和,将其与校验和字段进行对比,不相等即检验出错误,相等即没有检验出错误但可能有错误;

2.TCP
- TCP: 点对点一个发送方和一个接收方;可靠的、按序的字节流;流水线机制即TCP拥塞控制和流量控制机制设置窗口尺寸;发送方和接收方都有缓存;同一连接能够传输双向数据流;通信双方在发送数据之前必须建立连接,连接状态只在连接的两端中维护,在沿途节点不维护状态;
- TCP段结构:
1. 序列号:序列号指的是 Segment 中的第一个字节的编号而不是segment的编号,建立连接是,双方随机选择序列号
2. ACKs:希望收到的下一个字节的序列号,该序列号之间的所有字节均已被正确接收到(累积确认);
- TCP可靠数据传输 :流水线确认机制和累积确认,使用单一重传定时器,在超时或者收到重复ACK触发重传事件。

  • TCP发送方事件:

    1. 从应用层收到数据创建 Segment。序列号是Segment的第一个字节,开启计时器,设置超时时间;
    2. 超时:重传引起超时的Segment,重启定时器;
    3. 收到ACK:如果确认此前未确认的Segment,更新sendbase,如果窗口还有未被确认的分组重新启动定时器;、
  • TCP的流量控制机制

    1. 接收方为 TCP 连接分配BUffer。上层应用可能处理buffer中的数据的速度交慢,发送方不会传输太多太快以至于buffer溢出
    2. 接收方可以通过Segment的头部字段将 recWindow告诉发送方,发送方限制自己已经发送但未收到ACK的数据不超过对方的空闲RecWindow尺寸;
  • TCP的连接控制

    1. TCP发送方和接收方在传输数据前需要建立连接,初始化TCP变量,三次握手
    2. TCP连接管理:关闭。客户端想服务端发送TCP FIN 控制Segment;服务端收到FIN回复ACK,关闭连接,发送FIN;客户端收到FIN回复ACK进入等待FIN-如果收到FIN会重新发送ACK;服务端收到ACK,连接关闭。
  • TCP的拥塞控制的方法

    1. 端到端拥塞控制:网络层不需要显示的提供支持,端系统通过观察 loss,delay等网络行为判断是否发生拥塞,TCP采取这种方法;
    2. 网络辅助控制机制:路由器显式的反馈网络拥塞信息;简单的拥塞指示:SNA,DECbit,TCP/IP ECN,ATM;指示发送方应该采取何种速率;
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值