计算机网络:运输层

0 本节主要内容

问题描述
解决思路

1 问题描述

1.1 知识回顾

利用如下拓扑对前面的知识进行回顾。
在这里插入图片描述
问题:源主机 H 1 \textrm{H}_1 H1要和目的主机 H 2 \textrm{H}_2 H2进行通信,源主机 H 1 \textrm{H}_1 H1要构建数据包封装来自应用层的数据。根据MAC层和IP层首部字段信息,同学们可以去思考如何填充以下四个字段:(MAC目的地址,MAC源地址,IP源地址,IP目的地址)?
在这里插入图片描述
在这里插入图片描述
步骤:

  • 源主机 H 1 \textrm{H}_1 H1知道自己的IP地址,以及要送达的目的主机 H 2 \textrm{H}_2 H2的IP地址,也知道自己的MAC地址,唯一不知道的信息是目的MAC地址,那么首先要解决的是目的MAC地址填哪个的?
  • 根据前面的知识,我们知道 H 1 \textrm{H}_1 H1要填的目的MAC地址是路由器 R 1 \textrm{R}_1 R1接口0的MAC地址,那怎么才能知道接口0的MAC地址呢?
  • 由于 H 1 \textrm{H}_1 H1主机在配置网络的时候配置了缺省网关,缺省网关就是接口0的IP地址,知道了接口0的IP地址,利用ARP协议,就可以知道接口0的MAC地址,这样就可以把数据包完整的构建出来了;
  • 根据交换机的原理,数据包利用交换机转发机制转发到路由器 R 1 \textrm{R}_1 R1
  • 路由器 R 1 \textrm{R}_1 R1如何把数据交给目的主机 H 2 \textrm{H}_2 H2?利用数据包中目的IP地址查路由表,按照最长匹配原则,发现路由器 R 1 \textrm{R}_1 R1的路由表中的第二项匹配,也就是数据包要转发给接口1;
  • 接下来就是接口1如何把数据包交给目的主机 H 2 \textrm{H}_2 H2的问题了?因为目的主机 H 2 \textrm{H}_2 H2和路由器 R 1 \textrm{R}_1 R1接口1处于同一个子网,又需要重新构建数据包,四个字段(MAC目的地址,MAC源地址,IP源地址,IP目的地址)的“MAC源地址,IP源地址,IP目的地址”都是已知的,只有MAC目的地址未知,同样利用ARP协议,就可以知道目的主机 H 2 \textrm{H}_2 H2的MAC地址,这样就可以把数据包完整的构建出来了;
  • 再利用交换机转发机制,将数据包转发给目的主机 H 2 \textrm{H}_2 H2

同学们也可以利用这个拓扑,复习一下如下知识:

  • 交换机工作原理:在一个局域网中,如何利用交换机进行转发的?交换机中的转发表又是如何学习到的?
  • 子网划分:给定一个网络号128.1.0.0/16,如何划分为拓扑所示的三个子网?
  • IP分片:源主机 H 1 \textrm{H}_1 H1向目的主机 H 2 \textrm{H}_2 H2发送的数据包长度超过了以太网的运输能力,如何进行分片?分片的数据包又如何进行转发?到达目的主机后又如何进行重组?
  • 路由选择协议:拓扑中路由器 R 1 \textrm{R}_1 R1 R 2 \textrm{R}_2 R2的路由表是如何学习得到的?
  • ARP协议:已知对方的IP地址,如何学习到对方的MAC地址?

1.2 问题描述

  • 问题1:通过上面的描述,我们知道源主机 H 1 \textrm{H}_1 H1是如何把数据传输给目的主机 H 2 \textrm{H}_2 H2的,但是网络通信实际上是源主机 H 1 \textrm{H}_1 H1的一个进程和目的主机 H 2 \textrm{H}_2 H2的一个进程进行通信,又如何来表示这种进程间通信呢?
  • 问题2:网络层提供的是尽最大努力交付的服务,换句话说,提供的是不可靠服务;面对有些应用,需要提供可靠服务,怎么办?

2 解决思路

2.1 进程间通信的问题:端口

在这里插入图片描述

  • 复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。
  • 分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。如何指明各应用进程?

实际网络存在如下的现象:

  • 发送方很难获得接收方的进程id号,因为进程的创建和撤销都是动态的;
  • 发送方实际上只需要接收方提供一个功能来识别终点,并不关心是哪个进程来实现这个功能,也就是说,实现这个功能的进程是接收方本地的事,发送方并不关心;
  • 上面的意思可以换一种说法:接收方可以改变接收报文的进程,但不需要通知发送方。

解决方法:在运输层使用协议端口号 (protocol port number),简称为端口 (port)。把端口设为通信的抽象终点
在这里插入图片描述
端口用一个 16 位端口号进行标志,允许有 65,535 个不同的端口号。
两大类、三种类型的端口:
在这里插入图片描述
常用的熟知端口:
在这里插入图片描述

2.2 可靠传输的问题:TCP协议

TCP协议包括三个重要的技术:

  • 可靠传输协议:停止等待协议、连续ARQ协议(滑动窗口);
  • 流量控制:滑动窗口协议;
  • 拥塞控制。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 10:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 10:54:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 10:54:01       82 阅读
  4. Python语言-面向对象

    2023-12-15 10:54:01       91 阅读

热门阅读

  1. 力扣labuladong——一刷day74

    2023-12-15 10:54:01       55 阅读
  2. filecmp --- 文件及目录的比较

    2023-12-15 10:54:01       56 阅读
  3. mysql binlog_ignore_db参数的效果详解

    2023-12-15 10:54:01       53 阅读
  4. 9月7日算法学习笔记(栈)

    2023-12-15 10:54:01       56 阅读
  5. 力扣面试150题 |有效的括号

    2023-12-15 10:54:01       69 阅读
  6. LintCode 123 · Word Search (DFS字符处理经典题!)

    2023-12-15 10:54:01       60 阅读
  7. c#面试基础语法——as和is的区别

    2023-12-15 10:54:01       58 阅读
  8. RT-1配置文件

    2023-12-15 10:54:01       48 阅读
  9. 【前端设计模式】之享元模式

    2023-12-15 10:54:01       63 阅读
  10. vue混入、路由、动态路由匹配

    2023-12-15 10:54:01       63 阅读
  11. HTML5结构规范

    2023-12-15 10:54:01       62 阅读