【计算机网络】网络基础知识

一. 网络发展史

  • 独立模式(单机模式):计算机之间相互独立,各自拥有独立的数据。
    在这里插入图片描述

  • 网络互连:将多台计算机连接在一起,完成数据共享。
    在这里插入图片描述

随着时代的发展,越来越需要计算机之间进行互相通信,共享软件和数据,即让多个计算机协同工作来完成业务,因此网络互连随即诞生。

数据共享的本质就是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。

根据网络互连的规模不同,可划分为局域网广域网

局域网(LAN)又称为内网,它英文全称为Local Area Network。若干台计算机可以通过网线、集线器、路由器、交换机 + 路由器等4种方式组成一个局域网,其中同一个局域网的计算机之间可以自由进行网络通信,而不同的局域网之间若没有通过连接,则无法进行通信。通常情况下局域网的范围可覆盖一片地区。
在这里插入图片描述

广域网(WAN)的英文全称为Wide Area Network。一个广域网由若干个局域网组成,各个局域网之间通过路由器相连。通常情况下,一个广域网的范围可以覆盖一座城市,甚至一个国家。
在这里插入图片描述

局域网和广域网是一个相对的概念,在某个程度上,由我们国家形成的广域网也可以看作世界网络关系网中的一个局域网。

注意:以上图片均出自《图解TCP/IP》一书

二. 网络通信基础

网络互连的目的就是网络通信,即网络数据传输,更具体来说是两台主机上不同进程间基于网络进行的数据传输。

1. 网络通信五元组

不同主机进行数据传输主要依靠网络数据包,一个数据包包括 5 个基本属性,也称作五元组。

网络通信五元组包括:

  1. 源 IP 地址
  2. 目的 IP 地址
  3. 源端口号
  4. 目的端口号
  5. 传输协议

以上五个属性共同构成了一个数据包的唯一标识,使一个数据能够从一台主机正确传输到另一台主机。

2. IP

数据在网络传输过程中,如何判断由哪一台主机传送到另一台主机呢?答案其实就是依靠 IP地址!

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址,它使得数据能够在网络中准确路由和传递。

IP地址就好比收/发快递时,需要为快递公司提供的商家发货地址/顾客收件地址,有了这两个地址,快递员才能正确为顾客派发快递,顾客也能在购买商品不满意时为退货提供寄件依据。

IP地址由一系列数字组成,通常以“点分十进制”表示,主要可以分为 IPv4(Internet Protocol version 4) 和 IPv6(Internet Protocol version 6) 两种类型。

其中 IPv4 是一个32位二进制数字(即4个字节),通常被分割为 4 个“8位二进制数字”,如:01100100.00000100.00000101.00000110。
由于二进制数字表示并不直观,因此通常以“点分十进制”来表示一个IP地址,即 a.b.c.d 的形式(其中a、b、c、d均表示0 ~ 255的十进制整数),如:136.25.45.1。

IPv6 则采用 128位二进制数字(即16字节)来表示一台设备的网络地址,它通常被分割为 8 个 “16位二进制数字”,每16位都使用十六进制表示,用 : 来分隔,如2000:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6 的出现主要是为了解决未来 IPv4 地址空间不足的问题。

3. 端口号

在网络通信中,IP地址 主要用于标识网络设备的唯一网络地址,而端口号则用来标识主机中发送数据/接收数据的进程或网络服务,简单来说:端口号用于定位主机中的进程。

端口号的作用类似于购买快递时填写的收件人信息,某个收货地址(IP地址)可能存在大量不同顾客购买的快递,有了收件人信息(端口号),快递员才能准确将快递送达顾客手上。

端口号是一个 0~65535(2个字节)范围的数字,其中 0号端口通常不使用,1 ~ 1023号端口称为“知名端口号”,通常被系统留作特殊用途,如:HTTP协议(80端口)、HTTPS协议(443端口)、SSH协议(22端口)、FTP协议(21端口)等。在网络通信中,某个进程可以通过绑定的端口号来接收或发送网络数据。

注意:一个进行可以同时绑定多个端口号,但一个端口号号只能被一个进程绑定

4. 协议

什么是协议?

协议是网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
协议通常由三要素组成:语法、语义、时序。

  1. 语法:即数据与控制信息的结构或格式。
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
  3. 时序:即事件实现顺序的详细说明。

协议最终体现为网络传输中数据包的格式。

为什么需要协议?
协议好比一个人为另一个人写一份策划文案,只要做好就能得到相应的奖励,如果文案没有完成或约定的奖励与原先不符,则这次交易就会失败,因此只有双方都遵守约定交易才能顺利达成(网络数据才能被正确传输)。

在真实的网络世界中,数据以光信号或电信号作为媒介,利用信号的“频率”和“强弱”来表示 0、1这样的二进制数字。只有约定好双方的数据格式(即协议),才能保证各式各样的数据被正确传递。

对于一台计算机,生产厂商有很多,计算机操作系统有很多,计算机网络硬件设备也很多,如何让任意两台主机都能顺利完成通信呢?
答案就是约定一个公共的数据传输标准。并且让大家都去遵守这个约定。简单来说,数据传输的约定就是网络协议!

5. 协议分层

为什么需要进行协议分层?
在网络通信中,一条简单的数据(如:“你好,世界”)的传输需要约定好各种数据格式,如果这些数据格式由一个整体的巨大的协议提供支持,协议会显得十分臃肿和复杂,不利于别人理解。因此,将功能各异的协议进行分层,就显得十分必要了。

协议分层最大的好处:简化协议的复杂性,将协议划分为多个功能不同、相对独立的层次,对于每一层的来说只需利用下层提供的服务来完成本层的通信功能,不必关心下层协议具体的实现细节。

OSI七层模型

OSI:即Open System Interconnection,开放系统互连。它将网络协议从上到下分为以下7层:
在这里插入图片描述
注意:OSI七层模型既复杂且不实用,因此最终没有落地实现。

TCP/IP 五层模型(四层模型)

TCP/IP 五层模型将OSI七层模型中的表示层、会话层、应用层的功能合并为一层,从上到下具体表现为 以下5层:

  1. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程
    访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  2. 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发
    送到目标主机。
  3. 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表
    的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  4. 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上
    检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。
    有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  5. 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同
    轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理
    层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

参考资料出自:TCP/IP四层模型和OSI七层模型的概念

如何理解TCP/IP五层模型?
还是拿网购一件商品来说,应用层表现为该商品的用途,传输层关注快递的发货地址和收货地址,网络层关注这两个地址间的路径规划(如有多少条路径,每条路径经过哪些地方等),数据链路层关注中间两个路径间该使用什么交通工具去运输更加合适,物理层则是公路、铁路等基础设施,为运输提供最基本的保障。

OSI七层模型与TCP/IP五层模型的对比如下:
在这里插入图片描述

网络设备所在分层

主机:它的操作系统内核实现了TCP/IP五层模型中的下4层,即传输层到物理层。
路由器:它实现了TCP/IP五层模型中的下3层,即网络层到物理层。
交换机:它实现了TCP/IP五层模型中的下2层,即数据链路层到物理层。
集线器:它只实现了物理层。

6. 两台主机之间的网络通信流程

在了解两台主机间通信的具体流程前,我们需要理解客户端和服务器是什么,请求和响应是什么。

客户端:客户端是指连接到服务器的计算机或设备,用于发送请求或处理服务器提供的服务或数据。客户端可以是任何设备,如个人电脑、智能手机、平板电脑等。

服务器:服务器是一种用于存储、处理和传输数据的计算机系统。它通常用于提供网络服务、存储文件和托管网站。服务器可以是物理设备,也可以是虚拟系统。

请求:请求是客户端向服务器发送的消息,用于请求特定的资源或执行特定操作。

响应:响应是服务器对客户端发送的请求的回复,其中包含请求的结果或执行的操作。

TCP/IP 通讯的流程如下图:
在这里插入图片描述

客户端发送的请求数据会从 应用层到数据链路层 会被一层层进行封装,加上数据首部,其中首部信息中包含了类似首部长度、载荷信息和长度、上层协议是什么等信息;当数据包通过传输介质到达目的主机时,数据从下到上又会被一层层解析,去除数据首部信息,并根据这些信息将数据交给不同的协议处理。

封装的过程如下:
在这里插入图片描述

分用的过程如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/402891.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#1.4w字长文#仿抖音项目架构设计与实现

一、项目介绍 本文介绍了一个Web端短视频应用,致力于为用户提供交互友好、功能完备的短视频浏览体验和直播体验。 集成了Gorse推荐算法,旨在为用户提供更个性化的推荐视频流和更权威的热门视频流。接入大模型,通过对视频内容进行语言分析&a…

旧物回收小程序开发,开启绿色生活新篇章

随着科技的发展和人们生活水平的提高,物质生活的丰富带来了大量的废弃物。如何合理处理这些废弃物,实现资源的再利用,已成为社会关注的焦点。旧物回收小程序的开发与应用,为这一问题提供了有效的解决方案。本文将探讨旧物回收小程…

洛谷C++简单题小练习day14—闰年推算小程序

day14--闰年推算小程序--2.18 习题概述 题目描述 输入 x,y,输出 [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。 输入格式 输入两个正整数 x,y,以空格隔开。 输出格式 第一行输出一个正整数&#xf…

C++笔记:OOP三大特性之多态

前言 本博客中的代码和解释都是在VS2019下的x86程序中进行的,涉及的指针都是 4 字节,如果要其他平台下测试,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。 文章目录 前言一、多态的概念二、…

Linux网络编程(三-UDP协议)

目录 一、UDP概述 二、UDP的首部格式 三、UDP缓冲区 四、基于UDP的应用层协议 五、常见问题 一、UDP概述 UDP(User Datagram Protocol,用户数据协议报)是传输层协议,提供不可靠服务,其特点包括: 无连接:知道对端…

探针类型、方式及实验

目录 1、tcpSocket方式 2、就绪检测 3、就绪检测2 4、启动、退出动作 5、探针 5.1探针的三种类型 5.2探针的三种方式 1、tcpSocket方式 vim tcpsocket.yaml apiVersion: v1 kind: Pod metadata:name: probe-tcp spec:containers:- name: nginximage: soscscs/myapp:v1live…

300分钟吃透分布式缓存-10讲:MC是怎么定位key的?

我们在进行 Mc 架构剖析时,除了学习 Mc 的系统架构、网络模型、状态机外,还对 Mc 的 slab 分配、Hashtable、LRU 有了简单的了解。本节课,将进一步深入学习这些知识点。 接下来,进入 Memcached 进阶的学习。会讲解 Mc 是如何进行…

UIKit 在 UICollectionView 中拖放交换 Cell 视图的极简实现

概览 UIKit 中的 UICollectionView 视图是我们显示多列集合数据的不二选择,而丰富多彩的交互操作更是我们选择 UICollectionView 视图的另一个重要原因。 如上图所示:我们实现了在 UICollectionView 中拖放交换任意两个 Cell 子视图的功能,这…

YOLOv9来了! 使用可编程梯度信息学习你想学的内容, v7作者新作!【文献速读】

YOLOv9文献速读,本文章使用 GPT 4.0 和 Ai PDF 工具完成。 文章地址:https://arxiv.org/pdf/2402.13616.pdf 文章目录 文章简介有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?论文试图解决什么问题&a…

实现律所高质量发展-Alpha法律智能操作系统

律师行业本质上属于服务行业,而律师团队作为一个独立的服务单位,应当包含研发、市场、销售、服务等单位发展的基础工作环节。但现实中,很多律师团队其实并没有区分这些工作。鉴于此,上海市锦天城律师事务所医药大健康行业资本市场…

2.22 day3、4 QT

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示"登录成功”,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

MIT-6.824-Lab2,Raft部分笔记|Use Go

文章目录 前记Paper6:RaftLEC5、6:RaftLAB22AtaskHintlockingstructureguide设计与编码 2BtaskHint设计与编码 2CtaskHint question后记 LEC5:GO, Threads, and Raftgo threads技巧raft实验易错点debug技巧 前记 趁着研一考完期末有点点空余…

十四、图像几何形状绘制

项目功能实现&#xff1a;矩形、圆形、椭圆等几何形状绘制&#xff0c;并与原图进行相应比例融合 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 drawing.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class DRAWING { public:void…

“最会写”的中文大模型Weaver来了,中文创意写作能力超GPT-4

分享&#xff5c; Weaver ChatGPT等通用大模型支持的功能成百上千&#xff0c;但是对于普通日常用户来说&#xff0c;智能写作一定是最常见的&#xff0c;也是大模型最能真正帮上忙的使用场景之一。尽管大模型经常能写出看起来像模像样的文字&#xff0c;但是大多数情况下内容…

详细·Kubeadm安装

目录 实验前准备部署K8S集群初始化kubeadm&#xff08;只需要master做&#xff09;部署网络插件flannel测试 pod 资源创建 测试访问部署Dashboard&#xff08;master01&#xff09;浏览器访问 实验前准备 master&#xff1a;192.168.188.11 node01&#xff1a;192.168.188.13 …

Code Composer Studio (CCS) - 全局搜索功能

Code Composer Studio [CCS] - 全局搜索功能 1. Ctrl H&#xff0c;全局搜索功能References 1. Ctrl H&#xff0c;全局搜索功能 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

如何用代理IP防止被泄露真实IP地址?

随着互联网的普及&#xff0c;我们的网络行为越来越离不开IP地址。然而&#xff0c;由于一些不法分子利用IP地址进行网络攻击、窃取个人信息等行为&#xff0c;保护我们的真实IP地址变得尤为重要。代理IP地址是一种隐藏真实IP地址的方法&#xff0c;通过使用代理服务器来中转网…

Cartographer 栅格地图更新

栅格地图更新过程 首先来了一帧雷达数据&#xff0c;对应到每一个栅格点&#xff0c;即观测得到该栅格点是occupied或者是Free。 在cartographer中&#xff0c;使用CorrespondenceCostValue&#xff08;整数表示的空闲概率&#xff09;表示栅格状态&#xff0c;所以现在的目的就…

学习鸿蒙背后的价值?星河版开放如何学习?

现在是2024年&#xff0c;华为在1月18开展了鸿蒙千帆起仪式发布会。宣布了鸿蒙星河版&#xff0c;并对开发者开放申请&#xff0c;此次发布会主要是说明了&#xff0c;鸿蒙已经是全栈自研底座&#xff0c;鸿蒙星河版本的编程语言改为ArkTS/仓颉&#xff0c;内核改为鸿蒙原生内核…

5.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-测试需求与需求拆解

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;模拟游戏登陆器启动游戏并且完成注入 首先正常分析软件程序有没有漏洞&#xff0c;需要通过它的操作侵入&#xff0c;比如买东西&#xff0c;就通过买东西的按钮它背后有源代码就看源代码&#xff0c…