第二章总结

本文深入探讨了网络数据传输的过程,从协议栈的角色开始,它负责打包消息并处理通信错误。接着,介绍套接字作为控制信息的容器,如何通过描述符协助应用程序与协议栈进行通信。IP协议在其中负责确定包的目的地,并通过以太网协议将数据转换为电信号发送。整个流程涉及连接操作、IP头部和MAC头部的添加,最终由网卡将数据转化为电信号传输。
摘要由CSDN通过智能技术生成

学习第二章知识之前,仍然得第二章在整个体系中的位置以及第二章的整体内容了解一下。
在这里插入图片描述
第 2 章我们将探索搬运数据的机制。其中最先出场的是协议栈(网络控制软件叫作协议栈)。这个软件会将从浏览器接收到的消息打包,然后加上目的地址等控制信息。
如果拿邮局来比喻,就是把信装进信封,然后在信封上写上收信人的地址。这个软件还有其他一些功能,例如当发生通信错误时重新发送包,或者调节数据发送的速率等,或许我们可以把它当作一位帮我们寄信的小秘书。
接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬件)。然后,网卡会将包转换为电信号并通过网线发送出去。这样一来,包就进入到网络之中了。

在这里插入图片描述

套接字

这里记录了用于控制通信操作的控制信息,例如通信对象的 IP 地址、端口号、通信操作的
进行状态等。本来套接字就只是一个概念而已,并不存在实体,如果一定要赋予它一个实体,我们可以说这些控制信息就是套接字的实体,或者说存放控制信息的内存空间就是套接字的实体。

创建完套接字之后,协议栈会将这个套接字的描述符告知应用程序。描述符相当于用来区分协议栈中的多个套接字的号码牌。

收到描述符之后,应用程序在向协议栈进行收发数据委托时就需要提供这个描述符。由于套接字中记录了通信双方的信息以及通信处于怎样的状态,所以只要通过描述符确定了相应的套接字,协议栈就能够获取所有的相关信息,这样一来,应用程序就不需要每次都告诉协议栈应该和谁进行通信了。

连接操作是从应用程序调用 Socket 库的 connect 开始的,connect(< 描述符 >, < 服务器 IP 地址和端口号 >, …)(应用程序调用connect,同时必须明确要和谁连接,所以需要提供一个套接字,这个套接字就来自之前的描述符)

IP

我们就知道这个包应该发往哪里,IP 协议就可以根据这一地址查找包的传输方向,从而找
到下一个路由器的位置,也就是图 2.16 中的路由器 R1。接下来,IP 协议会委托以太网协议将包传输过去。这时,IP 协议会查找下一个路由器的以太网地址(MAC 地址),并将这个地址写入 MAC 头部中。这样一来,以太网协议就知道要将这个包发到哪一个路由器上了。

IP协议只是确认要发完哪个路由器,而真正的发送过程还是由以太网协议完成。

IP 模块会将包的内容当作一整块数据,在前面加上包含控制信息的头部。

IP 模块负责添加如下两个头部
(1) MAC 头部:以太网用的头部,包含 MAC 地址
(2) IP 头部:IP 用的头部,包含 IP 地址

接下来,封装好的包会被交给网络硬件(图 2.17 中的“②发送”),例如以太网、无线局域网等。网络硬件可能是插在计算机主板上的板卡,也可能是笔记本电脑上的 PCMCIA 卡,或者是计算机主板上集成的芯片,不同形态的硬件名字也不一样,本书将它们统称为网卡 B。传递给网卡的网络包是由一连串 0 和 1 组成的数字信息,网卡会将这些数字信息转换为电信
号或光信号,并通过网线(或光纤)发送出去,然后这些信号就会到达集线器、路由器等转发设备,再由转发设备一步一步地送达接收方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值