📖
Computer Network
  • 计算机网络
  • 第一章:网络基础知识
  • 第二章:TCP/IP基础知识
  • 第三章:数据链路层
    • 1. 数据链路层基本概念
    • 2. 数据链路层功能
    • 3. 介质访问控制
    • 4. 局域网 & 应用
    • 5. 数据链路层设备
  • 第四章:网络层
    • 1. 网络层概述 & 功能
    • 2. IP 数据报
    • 3. 网络层相关协议
    • 4. IPv6
    • 5. 路由算法 & 路由协议
    • 6. IP 组播
    • 7. 移动 IP
    • 8. 网络层设备:路由器
  • 第五章:传输层
    • 1. 传输层概述
    • 2. UDP
    • 3. TCP
  • 第六章:应用层
    • 1. 网络应用模型
    • 2. 域名解析系统 DNS
    • 3. 文件传输协议 FTP
    • 4. 电子邮件
    • 5. 万维网 & HTTP 协议
Powered by GitBook
On this page
  • 1. TCP/IP 出现的背景及其历史
  • 从军用技术的应用谈起
  • 2. TCP/IP 的标准化
  • 3. 互联网基础知识
  • 互联网定义
  • 互联网与 TCP / IP 的关系
  • 互联网的结构
  • ISP 和区域网
  • 4. TCP/IP 协议分层模型
  • TCP/IP 与 OSI 参考模型
  • 硬件(物理层)
  • 网络接口层(数据链路层)
  • 互联网层(网络层)
  • 传输层
  • 应用层
  • 5. TCP/IP 分层模型与通信示例
  • 数据包首部
  • 发送数据包
  • 经过数据链路的包
  • 数据包接收处理

Was this helpful?

第二章:TCP/IP基础知识

Previous第一章:网络基础知识Next第三章:数据链路层

Last updated 4 years ago

Was this helpful?

OSI 参考模型 和 TCP/IP 的对应关系:

1. TCP/IP 出现的背景及其历史

从军用技术的应用谈起

最开始,通信传输运用在军用。为了在遭到敌方攻击和破坏,也可以经过迂回实现通信,分布式通信的概率出现了,最后分组交换技术便应运而生。

2. TCP/IP 的标准化

3. 互联网基础知识

互联网定义

最开始 互联网(Internet) 是指将多个网络连接使其构成 一个更大的网络。

现在,互联网(The Internet) 变成了专有名词,是指由 ARPANET 发展而来、互连全世界的计算机网络。

互联网与 TCP / IP 的关系

互联网进行通信时,需要相应的网络协议。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

互联网的结构

小范围的网络互相连接就形成了连接全世界的互联网。

互联网中的每个网络都是由骨干网(BackBone)和末端网(Stub)组成的。

每个网络之间通过 NOC(Network Operation Center 网络操作中心)相连。

如果网络的运营商不同,就称为异构网络。

如果异构网络相连,就需要有 IX(Internet Exchange 网络交换中心)的支持。

ISP 和区域网

ISP:Internet service provider,网络服务提供商

区域网:在特定区域内由团体或志愿者所运营的网络。

连接互联网需要向 ISP 或区域网提出申请。

4. TCP/IP 协议分层模型

TCP/IP 与 OSI 参考模型

硬件(物理层)

TCP/IP 的最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备。

网络接口层(数据链路层)

网络接口层利用以太网中的数据链路层进行通信。

互联网层(网络层)

传输层

应用层

5. TCP/IP 分层模型与通信示例

数据包首部

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层的必要信息,如发送的目标地址以及协议相关的信息。

通常,为协议提供的信息为包首部,所要发送的内容为数据。

包、帧、数据报、段、消息

  • 包:全能性术语

  • 帧:表示数据链路层中包的单位

  • 数据报:表示 IP 和 UDP 等网络层以上的分层中包的单位

  • 段:表示 TCP 数据流中的信息

  • 消息:指应用协议中数据的单位

包首部

数据包包括两个部分:协议要用到的首部,上层传过来的数据

首部的结构由协议的具体规范详细定义。如:

  • 识别上一层协议的域应该从包的哪一位开始取多少比特

  • 如何计算校验和并插入包的哪一位

所以,在包的首部,明确标明了协议应该如何读取数据

最后,每个包首部至少包含两个信息:

  • 发送端和接收端地址

  • 上一层协议类型

发送数据包

示例:A 向 B 发送邮件

  • 应用程序处理

    • (应用层)启动应用程序新建邮件,将收件人邮箱填好,再由键盘输入邮件内容,鼠标点击 发送 按钮就可以开始TCP/IP 通信

    • (表示层)应用程序中会进行编码处理

    • (会话层)编码转化后,实际邮件也不一定会马上发出,因为有些邮件软件有一次同时发送多个邮件的功能。像这种何时建立连接、何时发送数据的管理,属于 OSI 参考模型的 会话层功能

    • 应用在发送邮件的那一刻建立 TCP 连接,从而利用这个 TCP 连接发送数据。首先将应用数据发送到下一层的 TCP,再做实际的转发处理

  • TCP 模块的处理

    • TCP 根据应用的指示(根据会话层建立销毁连接的时机),负责建立连接、发送数据以及断开连接

    • TCP 提供将应用层发来的数据顺利发送到对端的可靠传输

  • IP 模块的处理

    • 首先,IP 将 TCP 传来的首部和数据部分当做自己的数据部分,并添加自己的 IP 首部

    • IP 首部中包含 接收端 IP 地址、发送端 IP 地址

    • 紧随 IP 首部的还有用来判断后面数据是 TCP 还是 UDP 的信息

    • IP 包生成以后,参考路由控制表决定接受此 IP 包的路由或主机。随后,IP 包将被发送给连接这些路由器或主机网络接口的驱动程序,以实现真正的发送数据

    • 如果尚不知道接收端的 MAC 地址,可以利用 ARP 查找。只要知道了对端的 MAC 地址,就可以将 MAC 地址和 IP 地址交给以太网的驱动程序,实现数据传输

  • 网络接口(以太网驱动)的处理

    • 同理,从 IP 传过来的 IP 包,对于以太网驱动来说就是数据,给数据附加上自己的首部并进行发送处理

    • 以太网首部中包含:接收端 MAC 地址、发送端 MAC 地址、标志以太网类型的以太网数据的协议

    • 同时,在整个包的最后面,加上 FCS

    • 根据上述信息产生的以太网数据将通过物理层传输给接收端

经过数据链路的包

数据包接收处理

包的接收流程是发送流程的逆序过程

  • 网络接口(以太网驱动)的处理

    • 主机收到以太网包以后,首先从以太网的包首部找到 MAC 地址判断是否为发给自己的包,如果不是就丢弃数据。

    • 如果是发送给自己的包,就检查包首部的类型域从而确定以太网协议所传过来的数据类型

      • 如果数据类型为 IP 包,则传给处理 IP 的子程序

      • 如果数据类型为 ARP 协议,则传给 ARP 处理

      • 若无法识别类型,则丢弃

  • IP 模块的处理

    • 收到 IP 包后,做类似的处理,根据包首部的 IP 地址和自己的 IP 匹配,则查找上一层的协议

      • 若上一层协议为 TCP,则传给 TCP 处理

      • 若上一层协议为 UDP,则传给 UDP 处理

    • 对于有路由器的情况下,往往目标地址不是自己,需要进行转发,则根据路由转发表进行转发包

  • TCP 模块的处理

    • 检查校验和,判断数据是否被破坏

    • 检查是否按照序号接收数据

    • 检查端口号,确定具体应用程序

    • (可靠传输)数据接收完毕后,接收端会发送一个 “确认回执” 给发送端。若这个信息没有顺利达到发送端,那么发送端会认为数据没有收到,从而一直反复发送数据

    • 数据完整的接收后,会传给由端口号识别的应用程序

  • 应用程序的处理

    • 接收端应用程序会直接接收发送端发送的数据。通过解析数据可以获知邮件的收件人的地址。如果主机 B 上没有收件人的邮件信箱,那么主机 B 就返回一个 无此收件地址 的报错信息