计算机网络自顶向下之运输层

传输层

考点

1)传输层概述

  • 传输层和网络层的关系
  • 进程到进程的数据交付
  • 复用和分用

2)UDP协议

  • UDP特点
  • UDP报文段结构
  • UDP检验和

3)可靠数据传输原理

  • 流水线可靠数据传输原理
  • 回退N步
  • 选择重传

4)TCP协议和

  • TCP可靠传输原理

5)TCP的拥塞控制

  • TCP流量控制
  • TCP报文段结构
  • TCP建立连接和释放连接
  • TCP的拥塞控制
  • TCP面向字节流与UDP面向报文

运输层的功能

  1. 运输层提供进程和进程之间的逻辑通信。

  2. 复用和分用
    复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
    分用:传输层从网络层收到数据后交付指明的应用进程。
    发送端进行多路复用:从多个Socket接收数据,为每块数据封装上头部信息,生成Segment,交给网络层。
    在这里插入图片描述
    接收端进行多路分用:传输层依据头部信息将受到的Segment交给正确的Socket,即不同的进程。
    在这里插入图片描述

  3. 运输层对收到的报文进行差错检测。

  4. 运输层的两种协议(TCP和UDP)

TCP

  • 面向连接的传输控制协议
  • 传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销;确认、流量控制、计时器及连接管理等。
  • 可靠、面向连接、时延大、适用于大文件

UDP

  • 无连接的用户数据报协议UDP
  • 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
  • 不可靠、无连接、时延小、适用于小文件。

逻辑端口/软件端口端口是传输层的SAP,标识主机中的应用进程。
端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
端口号长度为16bit,能表示65536个不同的端口号。
端口号(按范围分)
1、服务端使用的端口

  • 熟知端口号:给TCP/IP最重要的一些应用程序,让所有用户都知道。0~1023
  • 登记端口号:为没有熟知端口号的应用程序使用的。1024~49151

2、客户端使用的端口号:仅在客户进程运行时才动态选择。49152~65535

常用端口号
在这里插入图片描述
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字Socket=(主机IP地址,端口号)
UDP的Socket用二元组标识(目的IP地址,目的端口号)
TCP的Socket用四元组标识(源IP地址,源端口号,目的IP地址,目的端口号)

UDP只在IP数据报服务之上增加了很少功能,即复用和差错检测功能。
UDP的主要特点:

  • UDP是无连接的,减少开销和发送数据之间的时延。
  • UDP使用最大努力交付,即不保证可靠交付。
  • UDP是面向报文的,适合一次性传输少量数据的网络应用。
  • UDP无拥塞控制,适合很多实时应用。
  • UDP支持一对一、一对多、多对一和多对多的交互通信
  • UDP首部开销小,只有8B,而TCP首部有20B

应用层给UDP多长的报文,UDP就照样发生,即一次发送一个完整报文。既不合并,也不拆分报文。
在这里插入图片描述
TCP/UDP通用格式
在这里插入图片描述

UDP首部格式
在这里插入图片描述
UDP校验
在这里插入图片描述
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
17:封装UDP报文的IP数据报首部协议字段是17
UDP长度:UDP首部8B(字节)+数据部分长度(不包括伪首部)

TCP协议的特点
1、TCP是面向连接(虚连接)的传输层协议。
2、每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
3、TCP提供可靠交付的服务,无差错,不丢失、不重复、按序到达。
4、TCP提供全双工通信。发送缓存(准备发送的数据&已发送但尚未收到确认的数据)接收缓存(按序到达但尚未被接受应用程序读取的数据&不按序到达的数据)
5、TCP面向字节流,TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流

流:流入到进程或从进程流出的字节序列。

TCP报文段首部格式
在这里插入图片描述
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位,即1个数值是4B。
TCP的首部长度为20B

6个控制位
  • 紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
  • 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文都必须把ACK置为1。
  • 推送位PSH、
  • 复位RST(RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。)、
  • 同步位SYN:SYN=1时,表明一个连接请求/连接接受报文。
  • 终止未FIN:FIN=1时,表明此报文段发送方数据已经发完,要求释放连接。

窗口:指的是发送本报文段的一方的接受窗口,即现在允许对方发送的数据量。
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认。。。。。。

重传
超时重传:确认重传不分家,TCP的发送方在规定的时间重传时间)内没有收到确认就要重传已发送的报文段。
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)

rdt1.0:信道完全可靠,不会发生错误,无需进行单独的可靠性机制

rdt2.0

停止等待:每发送完一个分组就停止发送,等待对方确认。在收到确认后再发送下一个分组。
自动重传请求协议ARQ需要三种功能来处理比特差错的情况:差错检测、接收方反馈、重传。
rdt2.0是停等协议
缺陷:没有考虑ACK或者NAK出错的情况!

流量控制

TCP通过让发送方维护一个称为接收窗口的变量来提供流量控制。

拥塞窗口

发送窗口的大小是受到接收窗口和拥塞窗口影响的,发送窗口的大小是取接受窗口和拥塞窗口的最小值。
接收窗口要接收64MB的数据,且一直不向上层提交数据。
在第一次发送的时候,接收窗口,因为没有接收的东西,就是他原来的值64MB,拥塞窗口这个时候按照慢启动应该取1MB,然后发送窗口取他们最小值就是1MB,然后第二步,接收窗口,因为它不像上层提交,所以接收窗口少了一个1MB。那接收窗口应该是剩63MB,然后拥塞窗口在慢启动阶段就变成1*2=2MB,那发送窗口取他们最小值,所以就取二,然后这个时候接收窗口一共就少了3MB,还剩下61MB,因为你要发64MB,然后接着接着按相同的方法往下写。

拥塞控制与流量控制的区别
  • 拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不至于过载。
  • 流量控制就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
  • 拥塞控制是一个全局性的过程,对整个网络有好处。
  • 流量控制往往指点对点通信量的控制,是一个端到端的问题(接收端控制发送端)。
  • 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收.

监测网络拥塞的指标

  • 由于缺少缓存空间而被丢弃的分组的百分数;
  • 平均队列长度;
  • 平均分组时延;
  • 分组时延的标准差;

TCP拥塞控制常被称为加性增,乘性减拥塞控制方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值