入门网络,少不了这份详细的网络基础学习指南!

简介: 入门网络,少不了这份详细的网络基础学习指南!


前言

计算机网络基础是研发/运维工程师都需掌握的知识,但往往会被忽略。

今天,我将献上一份详细 & 清晰的计算机网络基础学习指南,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。


1. 计算机网络体系结构

1.1 简介

  • 定义
    计算机网络的各层 + 其协议的集合。
  • 作用
    定义该计算机网络的所能完成的功能。

1.2 结构介绍

计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构。

  • OSI 体系结构:概念清楚 & 理念完整,但复杂 & 不实用;
  • TCP / IP 体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网和广域网;
  • 五层体系结构:融合了OSI 与 TCP / IP的体系结构,目的是为了学习 & 讲解计算机原理。


低三层为通信子网,负责数据传输;

高三层为资源子网,相当于计算机系统,完成数据处理;

传输层承上启下。

  • TCP / IP的体系结构详细介绍
    由于 TCP / IP体系结构较为广泛,故主要讲解。



- 点击图片可查看大图 -

  • OSI的体系结构详细介绍




- 点击图片可查看大图 -

2. TCP协议

Transmission Control Protocol,即传输控制协议

  1. 属于传输层通信协议
  2. 基于TCP的应用层协议有HTTP、SMTP、FTP、Telnet 和 POP3。

关于TCP的其他知识:如三次握手、四次挥手、无差错控制原理等,具体请看文章:计算机网络:这是一份全面 & 详细 的TCP协议攻略

3. UDP协议

3.1 定义

User Datagram Protocol,即用户数据报协议

  1. 属于传输层通信协议
  2. 基于UDP的应用层协议有 TFTP、SNMP 与 DNS

3.2 特点

无连接的、不可靠的、面向报文、无拥塞控制,具体介绍如下:


3.3 优缺点

  • 优点:速度快
  • 缺点:消息易丢失(特别是 网络较差时)

3.4 应用场景(对应应用层协议)

要求通信速度高

如:

域名转换:DNS协议

文件传输:FTP协议

网络管理:SNMP协议

远程文件服务器:NFS协议

3.5 报文段格式

UDP的报文段共有2个字段:数据字段 & 首部字段

下面主要介绍首部(8字节、4个字段)



3.6 TCP、UDP协议的区别


4. HTTP协议

  • 简介



5. Socket

5.1 简介

即套接字,是应用层 与 TCP/IP 协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)


  1. Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)
  2. 即:通过Socket,我们才能在Andorid平台上通过 TCP/IP协议进行开发
  3. 对用户来说,只需调用Socket去组织数据,以符合指定的协议,即可通信。
  • 成对出现,一对套接字:
Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}
  • 一个 Socket 实例 唯一代表一个主机上的一个应用程序的通信链路

6. 其他知识

6.1 在浏览器中输入url地址 ->> 显示主页的过程

打开一个网页,整个过程会使用哪些协议


6.2 IP地址(IPv4地址)

  • 定义
    连接在Internet中的每一台主机(或 路由器)的全球唯一的标识符
  • 组成
    IP地址 = 32位 = 网络号 + 主机号;即IP地址::={<网络号>,<主机号>}

其中:

网络号:标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。

主机号:标志该主机(或路由器)。一个主机号在它面前的网络号所指明的网络范围必须是唯一的。

不同类型的IP地址,其主机号 & 网络号所占字节数不同;故:一个IP地址在整个网络范围内是唯一的。

  • 分类
    传统的IP地址是分类的地址,分为A,B,C,D,E五类

区别在于网络号 & 主机号占的字节数不同


  • 特别注意:在各类IP地址中,有一些IP地址用于特殊用途,不能用于做主机IP地址


6.3 ICMP协议

  • 定义
    Internet Control Message Protocol,即 网际控制报文协议
  1. 属于IP层协议
  2. 注:ICMP报文不是高层协议,而是作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去
  • 作用
    更有效地转发IP数据包 & 提高交付成功的机会

同时允许主机 / 路由器报告差错 & 异常情况

  • 分类
    ICMP差错报告报文 & ICMP询问报文
  • 主要应用
    PING(分组网间探测)、Traceroute(跟踪1个分组从源点到终点的路径,原理 = 从源主机向目的主机发送一连串的IP数据报)

下面,将主要介绍Ping的过程。

6.4 Ping的过程

  • 定义
    Packet InterNet Groper,即分组网间探测
  1. 是 ICMP报文的1个重要应用:使用了IPCM回送请求 & 回送回答报文
  2. 是应用层直接使用网络层ICMP的1个例子,无经过传输层的TCP、UDP
  • 作用
    测试2个主机的连通性
  • 原理
  1. 向目的主机发送多个ICMP回送请求报文
  2. 根据 目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
  3. 最终显示的结果:发送到目的主机的IP地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值
  • 过程
    假设有两台主机:
    (目的主机)PC1:IP = 192.168.1.1
    (源主机)PC2:IP = 192.168.1.2


6.5 路由器与交换机的区别


6.6 Cookie 与 Session

  • 简介



  • 区别 & 对比



6.7 Cookie 与 Token

  • 简介


  • 基于Cookie的身份验证 & 验证流程




  • 基于Token的身份验证 & 验证流程




目录
打赏
0
0
0
0
49
分享
相关文章
云栖大会 | Terraform从入门到实践:快速构建你的第一张业务网络
云栖大会 | Terraform从入门到实践:快速构建你的第一张业务网络
使用通义灵码AI高效学习muduo网络库开发指南
Muduo 是一个基于 C++11 的高性能网络库,支持多线程和事件驱动,适用于构建高效的服务器和应用程序。它提供 TCP/IP 协议支持、异步非阻塞 I/O、定时器、异步日志等功能,并具备跨平台特性。通过 Git 克隆 muduo 仓库并切换至 C++17 分支可开始使用。借助 AI 工具如 Deepseak-v3,用户可以更便捷地学习和理解 Muduo 的核心模块及编写测试用例,提升开发效率。
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
117 8
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
237 3
图卷积网络入门:数学基础与架构设计
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
171 2
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
138 3
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
457 0
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
783 1

热门文章

最新文章