编辑
2025-12-09
计算机网络
00

目录

第一章:浏览器生成信息
ip地址
DNS服务
委托协议栈发送消息
第二章:用电信号传输tcp/ip数据 --探索协议与网卡
协议栈处理数据发送请求
创建套接字
连接服务器
数据收发
从服务器断开并删除套接字
IP 与以太网的包收发操作
大概流程
包收发操作流程
接下来讲了IP协议的具体工作过程,包括添加报头,将数据包传到网卡发送,将收到的数据返回给TCP协议等等,这里不细讲,等后面见的多了再进行补充

第一章:浏览器生成信息

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 头部包含通过以太网的局域网将包传输至最近的路由器所需的控制信息

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

本文作者:Deshill

本文链接:

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