「从URL到网页🌏」构建计算机网络知识体系-04

543 阅读6分钟

大家好,我是速冻鱼🐟,一条水系前端💦,喜欢花里胡哨💐,持续沙雕🌲
欢迎小伙伴们加我微信sudongyuer拉你进群
关注我的公众号:前端速冻鱼一起进步,期待与大家共同成长🥂

阅读本文 📖

1.您将了解到输入URL到浏览器展示内容的网络全貌

2.对计算机网络有个宏观的认识

3.用宏观的角度去了解计算机网络,构建计算机网络知识体系,鱼鱼将会一章章跟新

4.对基础知识充满了兴趣和爱好,培养自己对计算机的兴趣

前言 🌵

学习了很长时间的计算机网络,我发现计算机网络是非常有意思的一个课题,但是它的知识面广而深,通过学习我发现,很多书都是深入某一部分去讲解,未免让人失去兴趣,从URL到浏览器展示画面能够让我们全面的了解到网络的从零到一

知识点 📒

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

断开的操作顺序

(1)客户端发送 FIN

(2)服务器返回 ACK 号

(3)服务器发送 FIN

(4)客户端返回 ACK 号

image-20211218174037716

和服务器的通信结束之后,用来通信的套接字也就不会再使用了,这 时我们就可以删除这个套接字了。不过,套接字并不会立即被删除,而是 会等待一段时间之后再被删除。

这个等待时间就是经常面试考察内容了,为什么要等地一段时间后再被删除呢?

  • 如果最后客户端返回的ACK号丢失了,客户端套接字已经删除了,但是服务端没有收到ACK号,于是会重新发送FIN。
  • 套接字被删除意味着,内存里面的控制信息也会被删除,正好这个时候有新的应用程序创建了套接字刚好被分配了同一个端口。
  • 服务器重发的FIN就正好到达了,那么会导致新套接字就开始执行断开操作了,之所以不马上删 除套接字,就是为了防止这样的误操作。

IP 与以太网的包收发操作

网络包的结构

image-20211218180447745
  • 路由器根据目标地址判断下一个路由的位置
  • 集线器在子网中将网络包传输到下一个路由

路由器对应IP层,也就是网络层

集线器对应MAC层,也就是物理层

  • IP协议根据目标地址判断下一个IP转发设备的位置
  • 子网中的以太网协议将包传输到下一个转发设备

先谈谈网络的分层设计:

为什么要分层来设计呢?个人理解就是解耦了,便于扩展。网络层的就不需要关心物理层的实现,这样我们就可以随意的去切换物理层的设备和协议了(物理层可以无线网卡,有线、ADSL、FTTH)

回归正题,IP模块负责添加两个头部到数据包中

  • MAC头部:以太网用的头部,包含MAC地址
  • IP头部:IP用的头部,包含IP地址

生成包含接收方的IP地址和IP头部

IP地址从哪里来呢,是从TCP模块告知的,因为我们在创建套接字的时候,是使用的IP加端口创建的,套接字中保存了我们的控制信息。

TCP里面的IP地址又是从应用层拿到的

IP头部的格式

image-20211218181744056

这里面的TTL可以重点关注一下,为了避免网络出现回环时,一个包在网络中打转。

IP 头部的“接收方 IP 地址”填写通信对象的 IP 地址。 发送方 IP 地址需要判断发送所使用的网卡,并填写该网卡的 IP 地址。

通过ARP查询目标路由器的MAC地址

image-20211218195142511

ARP 协议就好比一个广播📢,在子网中,呼叫,谁是xxx IP地址,就可以拿到这个IP的mac地址,然后IP协议就可以将这个MAC地址加入到IP头部中

接下来就是将IP包转换成电或者光信号发送出去

网卡的ROM中保存着全世界唯一的MAC地址,这是生产时写入的。

通过网卡驱动 网卡从IP模块获取数据包以后,会将其放在网卡的内的缓冲区中,然后向mac模块发送发送包的指令,然后添加mac头部,并将数字信号通过网卡中的PHY模块转换成可以在网线中传入的通用信号

image-20211218205430592

报头:用来测定时机,就是那个电信号的高低的时机

SFD:起始帧分节符,用来确定帧的起始位置。

这两个的作用,报头相当于把电信号的规律传递出来,SFD用来表示那一截是帧的数据了。

FCS:是帧校验序列(用来检测这个帧是否在传输过程中被噪音等干扰了,导致数据错误)

ICMP: ICMP就好比一个IP层的侦察兵

ICMP消息

image-20211218210253837

UDP 协议的收发操作

不需要重发的数据用 UDP 发送更高效,和TCP都属于传输控制层

和TCP反着来的,很简单,下面介绍一下他的场景

  • 控制用的短数据
  • 音频和视频数据,实时性的,有实效性

总结 🍁

  • IP层数据包的基本知识
  • 包的收发操作
  • 物理层层相关知识
  • ICMP是什么
  • UDP简单介绍

参考文献 📚

  • 《网络是怎样连接的》
  • 《图解TCP/IP》
  • 《图解HTTP》
  • 《计算机网络自顶向下》
  • 小林哥的图解计算机网络

结束语 🌞

那么我的「从URL到网页🌏」构建计算机网络知识体系-04就结束了,文章的目的其实很简单,就是对日常工作的总结和输出,输出一些觉得对大家有用的东西,菜不菜不重要,但是热爱🔥,希望大家能够喜欢我的文章,我真的很用心在写,也希望通过文章认识更多志同道合的朋友,如果你也喜欢折腾,欢迎加我好友,一起沙雕,一起进步

github🤖:sudongyu

个人博客👨‍💻:速冻鱼blog

vx👦:sudongyuer

写在最后

伙伴们,如果喜欢我的口水话给🐟🐟点一个赞👍或者关注➕都是对我最大的支持。