计算机网络原理-网络七层-传输层

计算机网络原理-网络七层-传输层_第1张图片

一、传输层的基本服务

1、传输层功能

  1. 传输层的核心任务:应用进程之间提供端到端逻辑通信服务
  2. 只有主机才有传输层,网络核心中的:路由器、交换机、集线器,只有下三层
  3. 传输层的功能
    1. 对应用层报文进行段重组
    2. 面向应用层实现用与分解
    3. 实现端到端的量控制
    4. 塞控制
    5. 传输层
    6. 对报文进行差错检测
    7. 实现进程间端到端的可靠数据控制传输

2、传输层寻址与端口

  1. 一台计算机中,不同应用进程用进程标识符(进程ID)区分
  2. 在全网范围内利用ip地址+端口号唯一标识一个通讯端点
  3. 传输层端口号为16位整数,可以编号65536个(2的16次方):常用端口号:小于256的端口号
  4. 计算机网络原理-网络七层-传输层_第2张图片

3、无连接服务与面向连接服务

计算机网络原理-网络七层-传输层_第3张图片

二、 传输层的复用与分解

1、复用与分解

  1. 多路复用:在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,并为每个数据块包装上首部信息(包括用于分解的信息)构成报文段,然后将报文段传递给网络层
  2. 多路分解:在目的主机,传输层读取报文段中的数据,标识出接收套接字,进而通过该套接字,将传输层的报文段数据交付给正确的套接字
  3. 多路复用与多路分解(复用与分解/复用与分用):支持众多应用进程公用一个传输层协议,并能够将接收到的数据准确的交付给不同的应用进程

2、无连接的多路复用与多路分解

  1. UDP(用户数据报协议):无连接服务的传输层协议
  2. UDP套接字二元组:<目的ip地址,目的端口号>

3、面向连接的多路复用与多路分解

  1. TCP(传输控制协议):面向连接服务的传输层协议
  2. TCP套接字四元组:<源ip地址,源端口号,目的ip地址,目的端口号>

计算机网络原理-网络七层-传输层_第4张图片

三、停-等协议与滑动窗口协议

1、可靠数据传输基本原理

基于不可靠信道实现可靠数据传输的采取的措施

  1. 差错检测:利用编码实现数据包传输过程中的比特错误检测
  2. 确认:接收方向发送方反馈接收状态(ACK:成功;NCK:失败)
  3. 重传:发送方重新向接收方发送接收方没有收到的数据
  4. 序号:确保数据按序提交
  5. 计时器:解决数据丢失问题

2、停-等协议(自动重传协议(ARQ))

停-等协议工作流程:发送方经过报文段等待接收方确认,接收方校验通过接收后返回ACK,校验不通过返回NCK,发送方接收到ACK后继续发送后续报文,否则重发刚刚发送的报文

计算机网络原理-网络七层-传输层_第5张图片

3、滑动窗口协议

流水线协议(管道协议):允许发送方在没有收到确认前连续发送多个分组;最典型的流水线协议:滑动窗口协议

根据窗口大小,可具体分为:

  1. 回退N步协议:GBN协议:发送窗口Ws ≥1 ,接收窗口Wr =1。
  2. 选择重传协议:SR协议:发送窗口Ws >1,接收窗口Wr >1。

四、用户数据报协议(UDP)

UDP:传输层协议,提供无连接、不可靠、数据报尽力传输协议

1、UDP特点

  1. 应用进程容易控制发送什么数据何时发送,会出现分组的丢失和重复
  2. 无需建立连接
  3. 无连接状态
  4. 首部开销小,只需8个字节

2、UDP数据报结构

UDP首部四个字段:每个字段2字节,共8个字节

  1. 源端口号、目的端口号:UDP实现复用与分解
  2. 长度:UDP报文中的字节数(首部和数据的总和)
  3. 校验和:接收方用来校验数据报是否有差错

计算机网络原理-网络七层-传输层_第6张图片

3、UDP校验和

UDP校验和计算规则

  1. 所有参与计算的内容按16位对齐求和
  2. 计算过程中如有溢出则进行反卷(进位与和的最低位再进行相加)
  3. 最后得到的和取反码,就是UDP校验和,填入数据报的校验和字段

UDP校验和参与计算的内容包含3部分:伪首部(只参与计算,不传输)、首部、应用数据

计算机网络原理-网络七层-传输层_第7张图片

五、传输控制协议(TCP) 

传输控制协议(TCP):传输层协议,提供面向连接、可靠、有序、字节流传输服务

  1. 应用进程先建立连接
  2. 每条TCP连接只有两个端点
  3. 可靠交付:无差错、不丢失、不重复、按序到达
  4. 全双工通讯
  5. 面向字节流

1、TCP报文结构

计算机网络原理-网络七层-传输层_第8张图片

TCP首部分为:固定首部(20字节)、选项(0-40字节) 

  1. 序号字段:对每个应用层数据的每个字节进行编码
  2. 确认序号字段:期望从对方接受数据的字节序号,即还未接收到的数据,用ack_seq表示
  3. TCP首部长度最短20字节,最长60字节
  4. 首部长度的单位是4字节,所以首部长度=首部长度字段值*4

URG、ACK、PSH、RST、SYN、FIN各占1位。为标志位字段;
各占1位,值为0或1;

  1. 紧急URG=1,紧急指针字段有效,优先传送。
  2. 确认ACK=1,确认序号字段有效;ACK=0时,确认序号字段无效。
  3. 推送PSH=1,尽快将报文段中的数据交付接收应用迚程,丌要等缓存满了再交付。
  4. 复位RST=1,TCP连接出现严重差错,释放连接,再重新建立TCP连接。
  5. 同步SYN=1,该TCP报文段是一个建立新连接请求控制段或者同意建立新连接的确认段。
  6. 终止FIN=1,TCP报文段的发送端数据已经发送完毕,请求释放连接。

2、连接管理

三次握手

计算机网络原理-网络七层-传输层_第9张图片

解释:

  1. 期初客户端和服务器都处于CLOSED(关闭阶段),第一步首先服务器启动,服务器进入LISTEN(监听状态)
  2. 第一次握手:客户端向服务器发送请求(SYN=1(建立连接请求),seq=x(该报文段的序号x)),此时客户端进入SYN_SENT(同步发送)
  3. 第二次握手:服务端接收到客户端请求后给客户端返回应答(SYN=1(响应建立连接请求)ACK=1(同意建立连接响应)seq=y(响应报文的序列号y)ack_seq=x+1(下次请求需要的报文序列号)),此时服务端进入SYN_RCVD(同步收到)
  4. 第三次握手:客户端对服务端的同意连接进行确认(ACK=1(正常响应)seq=x+1(本次报文序列号)ack_seq=y+1(客户端希望下次接收到服务端的序列号)),此时客户端进入ESTABLISHED(已建立连接),服务端接收到ACK后进入ESTABLISHED(已建立连接)(注意:第三次握手可携带数据

计算机网络原理-网络七层-传输层_第10张图片

解释:

  1. 拆除连接之前客户端和服务端都处于(ESTABLISHED:已建立连接传输数据状态)
  2. 第一次挥手:客户端发送释放连接报文(FIN=1(数据发送完毕请求释放连接)seq=u(本次报文的序列号)),此时客户端从ESTABLISHED进入到FIN_WAIT_1(终止等待1)
  3. 第二次挥手:服务端接收到客户端释放连接请求后响应客户端(ACK=1(确认请求)seq=v(本次请求报文序列号)ack_seq=u+1(服务端希望下次接收到的报文序列号)),服务端进入到CLOSE_WAIT(关闭等待),客户端接收到响应后进入FIN_WAIT_2(终止等待2)
  4. 第三次挥手:服务端发送完数据后给客户端发送释放连接报文(FIN=1(终止请求)ACK=1(确认响应)seq=v+1(本次报文序列号)ack_seq=u+1(下次希望收到的序列号)),服务端进入到LAST_ACK(最后应答)
  5. 第四次挥手:客户端接收到服务端释放连接请求后响应服务端(ACK=1,seq=u+1,ack_seq=v+1+1)此时客户端进入TIME_WAIT,等待2MSL时间进入到CLOSED状态,服务端接收到响应后进入到CLOSED状态

计算机网络原理-网络七层-传输层_第11张图片

 3、TCP可靠数据传输工作机制

  1. 应用层数据被分割成TCP认为最合适发送的数据块
  2. 序号,发送方对发送的数据进行编号,确保数据按照编号提交跟接收方
  3. 确认,接收方向发送方反馈接收状态,确认是否正确接收数据(TCP采用累积确认)
  4. 差错检测,利用差错编码实现数据包传输过程中的比特差错检测
  5. 重传,发送发重新发送没有被接收方正在接收的数据
  6. 计时器,在发送方引入计时器,解决数据丢失问题

计算机网络原理-网络七层-传输层_第12张图片

4、TCP流量控制

流量控制:协调接收方和发送方的数据发送接收速度

TCP报文结构中,接收窗口字段用于实现TCP的流量控制

5、TCP拥塞控制

拥塞控制:通过合理调度、规范、调整向网络中发送数据的主机数量、发送速率、数据量,以避免拥塞消除已发生的拥塞

概念:

  1. 拥塞窗口(CongWin):连接开始为1MSS(一个报文段最大长度)
  2. 阈值(Threshold):临界值

TCP拥塞控制算法:

1、慢启动:在TCP建立连接时,每经过1个RTT时间,拥塞窗口增大1倍

2、拥塞避免:当拥塞窗口大于等于阈值时,每经过1个RTT时间,拥塞窗口加1

3、快速重传:收到3次重复确认,则推断该报文段已丢失,于是立即重传被重复确认的报文段

4、快速恢复:当发生3次重复确认时,不再从慢启动开始而是从新的阈值开始直接进入拥塞避免阶段(网络拥塞程度并不严重)

怎么算报文丢失?

  1. 收到3次重复确认(网络拥塞并不是很严重):触发快速恢复算法,计算新的阈值(新的阈值=当前拥塞窗口/2),新拥塞窗口调整为新阈值,从新的阈值直接进入拥塞避免阶段
  2. 计时器超时(网络拥塞严重):新的阈值=当前拥塞窗口/2;新的拥塞窗口调整为1MSS,然后从1MSS进入到慢启动阶段,到达新阈值后进入到拥塞避免阶段

计算机网络原理-网络七层-传输层_第13张图片

你可能感兴趣的:(计算机网络原理)