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

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

image.png

阅读本文 📖



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

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

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

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


前言 🌵



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


知识点 📒



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


断开的操作顺序

(1)客户端发送 FIN

(2)服务器返回 ACK 号

(3)服务器发送 FIN

(4)客户端返回 ACK 号


image.png



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


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

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

IP 与以太网的包收发操作



网络包的结构


image.png


  • 路由器根据目标地址判断下一个路由的位置


  • 集线器在子网中将网络包传输到下一个路由


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


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


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


先谈谈网络的分层设计:


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


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

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

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


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


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


IP头部的格式


image.png


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


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


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

image.png

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


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


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


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


image.png


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


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


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


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


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

ICMP消息


image.png


UDP 协议的收发操作



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

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


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


总结 🍁



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


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
18天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
46 11
|
3月前
|
2月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
68 9
|
3月前
|
安全 网络架构
MPLS线路构建稳定、高效网络的优选方案
【10月更文挑战第17天】MPLS线路构建稳定、高效网络的优选方案
84 5
|
11天前
|
数据采集 机器学习/深度学习 人工智能
基于AI的网络流量分析:构建智能化运维体系
基于AI的网络流量分析:构建智能化运维体系
73 13
|
2月前
|
人工智能 自然语言处理
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
WebDreamer是一个基于大型语言模型(LLMs)的网络智能体框架,通过模拟网页交互来增强网络规划能力。它利用GPT-4o作为世界模型,预测用户行为及其结果,优化决策过程,提高性能和安全性。WebDreamer的核心在于“做梦”概念,即在实际采取行动前,用LLM预测每个可能步骤的结果,并选择最有可能实现目标的行动。
64 1
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
|
24天前
|
云安全 人工智能 安全
|
29天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
70 3
|
2月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
2月前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。

热门文章

最新文章