TCP/IP 协议族简介

2022-06-27 12:38:59 浏览数 (1)

1. 概述

虽然计算机的型号、种类、操作系统各不相同,但是他们可以依据一套相同的协议进行通信,这套协议就是起源于上世纪 60 年代的 TCP/IP 协议,通过这套协议组成的网络就是遍布世界的因特网。

2. TCP/IP 分层

上一篇文章中,我们介绍了计算机网络的 OSI 分层模型和互联网网际协议分层

下图展示了互联网网际协议的分层:

TCP 和 UDP 作为最著名的传输层协议,都是使用 IP 作为网络层协议的,而 IP 协议则是一个不可靠的网络层协议,他并不保证数据报传输的安全无误。 有很多应用程序使用 TCP 或 UDP 协议进行通讯,但是却很少有应用直接使用 IP 协议进行通信的,TCP、UDP、IP 都有很多附属协议,ICMP 就是 IP 协议的一个附属协议,虽然 ICMP 主要供 IP 使用,但是也有应用程序直接使用它,比如 Ping 和 Traceroute。 IGMP 是 Internet 组管理协议,它是用来把一个 UDP 数据报多播到多个主机。

事实上,互联网的目的之一就是在应用程序中隐藏物理细节,因此,在上图中,越是下层的协议越接近物理细节,也越少有用户或协议调用或关心,上层协议对下层协议进行了封装和隐藏。 最底层的链路层就是与传输媒介相互通信的硬件接口和某些网络接口使用的特殊协议,如 ARP(地址解析协议)和 RARP(逆地址解析协议),他们主要用来转换 IP 层和网络接口层使用的地址。

3. 互联网地址与域名

互联网上每个接口必须有一个唯一的地址,这个地址就是 IP 地址,对于 IPv4 版本的 IP 地址,由一个 32bit 的数字来表示,他通常被按照每 8 位为单位划分成 4 个部分,每部分的 8bit 被转换成一个十进制数字,也就是点分十进制的表示。 随着互联网资源的不断增长,IPv4 的 32bit 数已经无法表示全部有效的地址了,因此,IPv4 的下一版本 IPv6 应运而生,他由 128 位构成。

由于 IP 地址不便于记忆,人们通常使用主机名对网络上的主机进行标识,这些主机名就是所谓的“域名”,域名系统就是 DNS,是一个分布式数据库,存储了域名与 IP 地址之间的关系,以便对他们进行映射和转换。

4. 封装

当应用程序使用 TCP 协议传输数据时,数据被送入协议栈中,然后逐个通过每一层直到完成完整的封装,并以一串比特流的形式送入网络,这个通过以太网传输的比特流被称作帧(Frame),而 IP 传给网络接口层的数据单元被称为 IP 数据报,TCP 传给 IP 的数据单元则称为 TCP 报文段(简称 TCP 段) 下图展示了整个封装过程:

发送主机进行上述的封装后就可以向以太网上的目的主机发送相应的以太网帧了。 当目的主机接收到以太网帧时,他需要从协议栈中由底向上检测并去掉各层协议的首部,这个过程就被称为“分用”。

5. IP、UDP、TCP 首部

下图展示了 IP、UDP、TCP 首部的结构:

0 人点赞