编辑
2025-12-09
计算机网络
00
请注意,本文编写于 54 天前,最后修改于 39 天前,其中某些信息可能已经过时。

目录

第一章:浏览器生成信息
ip地址
DNS服务
委托协议栈发送消息
第二章:用电信号传输tcp/ip数据 --探索协议与网卡
协议栈处理数据发送请求
创建套接字
连接服务器
数据收发
从服务器断开并删除套接字
IP 与以太网的包收发操作
大概流程
包收发操作流程
以太网
接下来讲了IP协议的具体工作过程,包括添加报头,将数据包传到网卡发送,将收到的数据返回给TCP协议等等,这里不细讲,等后面见的多了再进行补充
第三章:网线到网络设备
双绞线
集线器会将信号发送给所有以太网内的设备,设备通过接收方mac地址判断是不是发给自己的,是自己的就接受,否则就忽略。
交换机
mac地址表的维护
路由器
路由表中的信息
路由聚合
网关的作用
路由器与交换机的关系
路由器附加功能
第四章 通过接入网进入互联网内部
ADSL接入网的结构和工作方式
第五章 服务器端的局域网
防火墙的结构和原理

第一章:浏览器生成信息

image.png

ip地址

ip地址一共有32位,由两部分组成,网络号和主机号,为了区分,设计了子网掩码

image.png

DNS服务

DNS是域名解析 域名具有层级结构,比如blog.yxjxxr.site 就是yxjxxr.site的子域名

域名解析的流程

image.png 先去找根域名服务器,在顺藤摸瓜,一步步找到到存放目标域名的服务器,从而获取IP地址

委托协议栈发送消息

知道了IP地址之后,就可以委托操作系统的协议栈向目标web服务器发送消息了 大概流程如下: image.png

  1. 创建套接字
  2. 连接
  3. 传递消息
  4. 断开连接

实际负责收发消息的是协议栈,网卡驱动和网卡。

第二章:用电信号传输tcp/ip数据 --探索协议与网卡

协议栈处理数据发送请求

协议栈是根据套接字中记录的控制信息来工作的。

创建套接字

image.png

  1. 像浏览器、邮件等一般的应用程序都是使用 TCP 收发数据的,而像 DNS 查询等收发较短的控制数据的时候则使用 UDP。
  2. 下面一半是用 IP 协议控制网络包收发操作的部分此外,IP 中还包括 ICMPA 协议和 ARPB 协议。ICMP 用于告知网络包传送过程中产生的错误以及各种控制消息,ARP 用于根据 IP 地址查询相应的以太网 MAC 地址 C。
  3. IP 下面的网卡驱动程序负责控制网卡硬件,而最下面的网卡则负责完成实际的收发操作,也就是对网线中的信号执行发送和接收的操作。

image.png

连接服务器

连接的目的是将客户端的请求发送给协议栈,同时客户端向服务端传递连接的请求

image.png

当知道服务端的IP地址和端口号之后,这些信息会传递给协议栈中的 TCP 模块。然后,TCP 模块会与服务器的 TCP 模块交换控制信息。TCP模块将信息传递给IP模块并委托其发送,信息发送到服务端的IP模块再传到服务端的TCP模块。然后服务器的 TCP 模块会返回响应,向上面一样传回到客户端的TCP模块,然后客户端也需要将 ACK 比特设置为 1 并发回服务器,告诉服务器刚才的响应包已经收到,至此,连接完成(3次握手)

数据收发

数据收发操作是从应用程序调用 write 将要发送的数据交给协议栈开始的,协议栈收到数据后执行发送操作 (其中涉及很多很复杂的操作,这里先不写,看看视频教程再进行补充)

从服务器断开并删除套接字

image.png

image.png

IP 与以太网的包收发操作

大概流程

image.png

包收发操作流程

image.png IP 头部中包含 IP 协议规定的、根据 IP 地址将包发往目的地所需的控制信息;MAC 头部包含通过以太网的局域网将包传输至最近的路由器所需的控制信息

以太网

以太网是一种为多台计算机能够彼此自由和廉价地相互通信而设计的通信技术

image.png

接下来讲了IP协议的具体工作过程,包括添加报头,将数据包传到网卡发送,将收到的数据返回给TCP协议等等,这里不细讲,等后面见的多了再进行补充

第三章:网线到网络设备

两个目标: 信号如何在网线和集线器上面传输? 信号在传输的过程中会衰减,还会受到噪声的干扰而失真,如何抑制这些影响?

双绞线

双绞线通过交叉抵消相互产生的噪声和相邻网线产生的噪声

image.png

集线器会将信号发送给所有以太网内的设备,设备通过接收方mac地址判断是不是发给自己的,是自己的就接受,否则就忽略。

交换机

image.png

RJ-45是网线接口,PHY(MAU)模块进行接收,然后传入mac模块,将信号转化为数字信息。校验通过后将包放进内存(缓冲区),缓冲区通过包的接收方mac地址与mac地址表进行对比,在交换电路把包发往相应端口

mac地址表的维护

  1. 更新维护:收到包时,将发送方 MAC 地址以及其输入端口的号码写入MAC 地址表中。
  2. 删除维护:移动设备可能会移动,(比如手机从5教拿到宿舍楼)。这时候当一段时间的mac地址和端口没有进行手法操作的时候,就自动删除记该录

路由器

image.png 首先通过端口将包接收进来。转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址,在路由表中进行查询,以此判断转发目标。然后,转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去

image.png

路由表中的信息

image.png

路由器在进行包的转发的时候只会将包发往对应的网络号。将包发往xxx区 image.png 在子网掩码的右边 还有网关和接口两列,它们表示网络包的转发目标。根据目标地址和子网 掩码匹配到某条记录后,路由器就会将网络包交给接口列中指定的网络接 口(即端口)B,并转发到网关列中指定的 IP 地址。

主机号部分比特全部为 0 可以表示一个子网,主机号部分比特不全部为 0 可以表示某一台计算机

路由聚合

有时候同一个IP地址的子网掩码和路由表中的不一样,这是路由聚合的结果

image.png 但在这个例子中,无论发往任何一个子网,都是通过路由器 A 来 进行转发,因此我们可以在路由表中将这 3 个子网合并成 10.10.0.0/16,这 样也可以正确地进行转发,但我们减少了路由表中的记录数量,这就是路 由聚合。

网关的作用

当接收方的IP地址不在路由表里面的时候,就会触发兜底机制:子网掩码 0.0.0.0 ,这时候数据包会通过网关转发到互联网接入路由器

image.png 这样一来,无论目标地址是表示一个子网还是表示某台设备,都可以 用相同的方法查找出转发目标,而且也避免了不知道转发到哪里的问题。

路由器与交换机的关系

image.png

路由器附加功能

  1. 通过地址转换有效利用 IP 地址。 image.png
    虽然通过划分内网和外网可以有效缓解IP资源的压力,但是当内网地址与要访问的外网地址一样的话,就不能进行正确有效的数据传输了。为此,设计了以下结构来解决这个问题

image.png
将公司内网分成两个部分,一部分是对互联网开放的服务器,另一 部分是公司内部设备。其中对互联网开放的部分分配公有地址,可以和互 联网直接进行通信,这一部分和之前介绍的内容是一样的。相对地,内网 部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是 通过一种特别的机制进行连接,这个机制就叫地址转换。

  1. 地址转换基本原理

QQ_1766306706124.png 首先将发送方的私有IP地址改写为地址转换设备的接入互联网的公网地址,将地址和端口号进行对应,写在对应表里,发往服务器之后,从服务器接收数据之后,根据对应表,将公网IP和端口号映射到原来的内网IP和端口号,实现数据传输。当收发结束之后,进入断开阶段,访问互联网的操作全部完成后,对应表中的记录就 会被删除。

  1. 路由器的包过滤规则

在对包进行转发时,根据 MAC 头部、IP 头部、TCP 头部的内容,按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的

第四章 通过接入网进入互联网内部

ADSL接入网的结构和工作方式

image.png

第五章 服务器端的局域网

image.png

防火墙的结构和原理

image.png

image.png

本文作者:Deshill

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!