跳转到内容

互联网结构:TCP/IP协议栈

来自维基教科书,开放的书籍,开放的世界

论文 2 - ⇑ 通信和网络基础 ⇑

← 互联网安全 TCP-IP 标准应用程序层协议 →


MAC地址

[编辑 | 编辑源代码]
MAC地址 - 分配给网络连接的唯一标识符,在生产过程中嵌入到每个网络接口卡中

IP地址会改变,例如,如果您将笔记本电脑连接到家里的互联网,您将获得一个IP地址。如果您随后将其带到朋友家并连接到那里,您将获得另一个IP地址。 MAC地址 对分配给它们的设备是唯一的,每个网络接口都有一个MAC地址,包括手机、游戏机和无线网卡。当您考虑到一台计算机可以有多个网络接口时,这一点非常重要。例如,对于笔记本电脑,您可能有一个 cat-6 网络卡和一个无线网卡,一个处理BitTorrent,另一个处理网页浏览。当您收到消息时,应该将其发送到哪个网络接口?MAC地址意味着可以将消息定向到特定网络接口,即无线网卡或cat-6网卡。您很快就会看到我们如何在TCP/IP协议栈中使用MAC地址。

扩展:访问您的MAC地址
  • 为了在Windows操作系统中查看您的设备的MAC地址,请转到控制面板>>网络和共享中心>>点击您的连接(可以是以太网、WLAN(Wi-Fi)等…)。
  • 点击“详细信息”按钮,您会找到一个名为“物理地址”的标签。这就是您的MAC地址。
每个可联网设备都有其自身的唯一MAC地址。

TCP/IP协议栈

[编辑 | 编辑源代码]

互联网上最常见的协议是传输控制协议/互联网协议(TCP/IP)。要通过TCP/IP网络发送数据,需要四个步骤或层。

层名称 描述
应用程序 对要发送的数据进行编码
传输 将数据拆分为可管理的块,添加端口号信息
网络/互联网 添加IP地址,说明数据来自哪里以及去往哪里
链路 添加MAC地址信息,以指定消息来自哪个硬件设备以及要发送到哪个硬件设备
在本地网络链路传输之前,应用程序数据通过协议栈向下逐层进行封装(包装)。

为了向您展示TCP/IP协议栈的工作原理,我们将使用以下数据作为示例。

Matt, Mark, Luke, John

应用程序

[编辑 | 编辑源代码]

应用程序层确保数据以接收方可以理解的格式发送。这意味着将数据格式化为适用于该应用程序的标准方式,例如HTTP、FTP等。在本例中,我们将使用XML标签包装每段数据。

<gospel>Matt</gospel><gospel>Mark</gospel><gospel>Luke</gospel><gospel>John</gospel>

传输层查看要发送的数据,并将其拆分为可以放入数据包中的块。然后它为每个块附加一个编号,指定该块的顺序,这使接收方能够在另一端正确地将数据重新组合在一起。然后,它将端口号附加到每个数据包,该端口号取决于正在使用的应用程序。在本例中,我们将数据发送到端口60。

  • 将数据拆分为块并添加顺序号
  • 添加端口号
传输头 数据
:60 | 1/4 <gospel>Matt</gospel>
:60 | 2/4 <gospel>Mark</gospel>
:60 | 3/4 <gospel>Luke</gospel>
:60 | 4/4 <gospel>John</gospel>

网络/互联网

[编辑 | 编辑源代码]

网络层附加发送者的IP地址,以便接收者知道是谁发送的以及向谁发送确认消息。它还必须附加它要发送数据的宿主的IP地址,这样它就不会丢失!在本例中,我们发送到102.231.4.189,并从98.1.232.99发送。结合端口号,这创建了一个数据发送的套接字和数据发送到的套接字,即102.231.4.189:60

  • 附加发送者IP地址
  • 附加目标IP地址以创建套接字
网络头 传输头 数据
102.231.4.189
98.1.232.99
:60 | 1/4 <gospel>Matt</gospel>
102.231.4.189
98.1.232.99
:60 | 2/4 <gospel>Mark</gospel>
102.231.4.189
98.1.232.99
:60 | 3/4 <gospel>Luke</gospel>
102.231.4.189
98.1.232.99
:60 | 4/4 <gospel>John</gospel>

最后,链路层附加发送者和接收者的MAC地址,使数据包能够定向到IP地址主机上的特定网络接口。在本例中,发送者使用MAC地址为00-17-4F-08-5D-69的无线网卡,目标MAC地址为:11-22-33-44-55。

  • 附加发送者MAC地址
  • 附加目标MAC地址
链路头 网络头 传输头 数据
11-22-33-44-55
00-17-4F-08-5D-69
102.231.4.189
98.1.232.99
:60 | 1/4 <gospel>Matt</gospel>
11-22-33-44-55
00-17-4F-08-5D-69
102.231.4.189
98.1.232.99
:60 | 2/4 <gospel>Mark</gospel>
11-22-33-44-55
00-17-4F-08-5D-69
102.231.4.189
98.1.232.99
:60 | 3/4 <gospel>Luke</gospel>
11-22-33-44-55
00-17-4F-08-5D-69
102.231.4.189
98.1.232.99
:60 | 4/4 <gospel>John</gospel>

然后可以将这四个数据包发送到互联网,它们包含足够的信息来

  1. 到达目的地(来自网络层和传输层的套接字)
  2. 找到正确的网络接口(来自链路层的MAC地址)
  3. 找到正确的服务(来自传输层的端口号)
  4. 以正确的顺序重新组装(来自传输层的顺序信息)
  5. 传递预期消息(来自应用程序层的数据)
扩展:UDP

TCP/IP在确保您请求的数据正确发送以及您发送的数据被接收方面做得很好。但是,正如您所看到的,有时数据可能会在互联网上丢失,或者数据包到达的顺序与您发送的顺序不同。对于像电脑游戏或电信这样的东西,您不能等待慢速数据包找到它在互联网上的路径。这会导致语音消息变慢,电脑游戏变得无响应。还有另一种名为UDP的协议,它不要求确认数据包是否已接收。这种协议在网络电脑游戏和语音 over IP 中被大量使用,因为丢失一个或多个数据包并不会对游戏体验或语音对话产生太大影响。当您玩电脑游戏时,您可能会看到类似“丢失数据包 = xyz”的信息,或者在进行网络会议时,语音或视频的质量可能会短暂下降。这是数据包丢失的实际情况,也是使用UDP的结果。

练习 TCP/IP 协议栈

命名并描述 TCP/IP 协议栈的四个层次。

答案

 

层名称 描述
应用程序 对要发送的数据进行编码
传输 将数据拆分为可管理的块,添加端口号信息
互联网 添加IP地址,说明数据来自哪里以及去往哪里
链路 添加MAC地址信息,以指定消息来自哪个硬件设备以及要发送到哪个硬件设备

IP地址和端口号组合在一起构成什么?

答案

套接字

在TCP/IP协议栈中,MAC地址的作用是什么?

答案

MAC 地址是分配给网络设备的唯一标识符。链路层使用它将消息定向到指定 IP 地址的特定网络接口。

展示发送以下数据的步骤

  • data = Hello(这将适合一个数据包)
  • 来自 IP = 12.32.72.2 | MAC = 43.65.FF.23
  • 至 IP = 98.125.43.88 | 端口 = 80 | MAC = A0.3D.EF.00

答案

  • 应用程序
  • "Hello"
  • 传输
    • :80
    • 1/1
    • "Hello"
  • 互联网
    • To=98.125.43.88
    • From=12.32.72.2
    • :80
    • 1/1
    • "Hello"
  • 链路
    • 来自 MAC = 43.65.FF.23
    • 至 MAC = A0.3D.EF.00
    • To=98.125.43.88
    • From=12.32.72.2
    • :80
    • 1/1
    • "Hello"
华夏公益教科书