网络中的基本概念

目录

正文:

1.IP地址

2.端口号

3.协议

4.协议分层

5.封装

6.分用

7.客户端

8.服务器

9.客户端-服务器模型(Client-Server Model)

10.请求

11.响应

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


正文:

1.IP地址

IP地址(Internet Protocol Address)是互联网中设备的唯一标识符,类似于现实世界中的门牌号码。IP地址是用来定位和识别网络中的设备,使得数据包能够准确传输到目标设备。IPv4(Internet Protocol version 4)是目前使用最广泛的IP协议版本。IPv4地址由32位二进制数组成,通常以点分十进制表示,例如:192.168.1.1。由于IPv4地址空间有限,导致IP地址资源短缺的问题,因此IPv6地址也被引入,它是128位的二进制数字,被分为八个16位的组,每个组用十六进制表示,中间用冒号(:)分隔,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。IP地址还分为公有IP地址和私有IP地址。公有IP地址是可以在互联网上使用的IP地址,用于标识网络中的设备;私有IP地址是在局域网内部使用的IP地址,不会直接暴露在互联网中。

2.端口号

端口号是网络通信中用于标识应用程序或服务的逻辑地址。在一台计算机上,不同的应用程序或服务需要进行网络通信,为了区分它们,每个应用程序或服务都会使用不同的端口号。端口号的范围是从0到65535,其中0到1023是被系统保留的一些知名端口,用于一些常见的服务,比如HTTP服务使用的端口号是80,FTP服务使用的端口号是21。

端口号的使用遵循以下规则:

  1. 服务器监听:服务器应用程序通常会监听一个特定的知名端口,等待客户端的连接请求。

  2. 客户端发起连接:客户端在需要连接到某个服务时,会指定服务器的IP地址和端口号。

  3. NAT和端口转发:在网络地址转换(NAT)环境中,内部网络的私有IP地址可以通过端口转发被映射到公网IP地址的特定端口。

  4. 防火墙规则:防火墙可以根据端口号来允许或阻止数据流,增强网络安全。

  5. 端口冲突:如果多个应用程序尝试监听同一个端口,可能会导致冲突。在大多数操作系统中,只有一个应用程序可以监听一个给定的端口。

3.协议

网络协议是网络通信中用于规定数据传输和通信规则的一系列约定和规范。网络协议定义了数据如何在网络中传输、如何被解释和处理,以及网络设备之间如何进行通信。网络协议通常分为不同的层次,常见的网络协议体系结构是TCP/IP协议栈和OSI模型。

  1. OSI模型:OSI模型是一种通用的网络协议体系结构,将网络通信划分为七个层次,每个层次负责不同的功能,从物理层到应用层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。每个层次之间通过接口进行通信,上层向下层提供服务,下层向上层提供数据传输。

  2. TCP/IP协议栈:TCP/IP协议栈是互联网通信中最常用的协议体系结构,将网络通信划分为四个层次,从底层到高层分别是:网络接口层、网络层、传输层、应用层。TCP/IP协议栈是由TCP(Transmission Control Protocol)和IP(Internet Protocol)两个核心协议组成,TCP负责可靠的数据传输,IP负责数据包的路由和传输。

4.协议分层

协议分层是将网络通信中的功能划分为多个层次,每个层次负责不同的功能,层与层之间通过接口进行通信。常见的协议体系结构有OSI模型和TCP/IP协议栈。

分层的优点:

  • 模块化:分层可以将网络通信划分为多个模块,方便设计和管理。
  • 简化:每个层次只需关注自己的功能,降低了复杂性。
  • 可扩展性:可以方便地添加新的功能层次。
  • 互操作性:不同厂商的设备可以遵循相同的协议标准,实现互操作。

5.封装

封装是将数据添加协议头部信息的过程,将数据包装成符合网络协议格式的数据包。在发送端,数据从应用层经过每一层的协议处理,每一层都会在数据上添加相应的协议头部信息;在接收端,数据包经过每一层的处理,每一层都会解析并去掉相应的协议头部信息,将数据传递给更高层的协议。封装的目的是为了确保数据能够正确传输和被解释。

6.分用

分用是指在发送端将多个不同来源的数据流合并成一个数据流进行传输,而在接收端将这个数据流分解成多个不同的数据流。在网络通信中,分用通常通过端口号来实现,不同的应用程序或服务可以使用不同的端口号进行通信,这样在接收端可以根据端口号将数据包分发给相应的应用程序或服务。

7.客户端

 客户端是指请求服务的一端,通常是用户使用的设备或应用程序。客户端向服务器发送请求,并等待服务器的响应。

客户端的主要功能包括:

  • 发起请求:客户端向服务器发送请求,请求特定的服务或资源。
  • 接收响应:客户端接收服务器返回的数据或响应,根据需要进行处理或显示。
  • 用户界面:客户端通常具有用户界面,用户可以通过界面与服务进行交互。

8.服务器

 服务器是提供服务的一端,通常是运行在网络上的计算机或设备。服务器接收客户端的请求,并提供相应的服务或资源。

服务器的主要功能包括:

  • 接收请求:服务器接收客户端发送的请求,根据请求提供相应的服务或资源。
  • 处理请求:服务器处理客户端的请求,执行相应的操作或逻辑。
  • 返回响应:服务器生成响应数据,并将响应发送给客户端。

9.客户端-服务器模型(Client-Server Model)

客户端和服务器之间的通信遵循客户端-服务器模型,其工作流程如下:

  1. 建立连接:客户端通过IP地址和端口号与服务器建立连接。

  2. 发送请求:客户端向服务器发送服务请求。

  3. 处理请求:服务器接收请求,并进行处理。

  4. 发送响应:服务器将处理结果作为响应发送回客户端。

  5. 接收响应:客户端接收响应,并进行相应的处理。

  6. 断开连接:数据传输完成后,客户端和服务器断开连接。

10.请求

 请求是客户端向服务器发送的消息,用于请求特定的服务或资源。请求通常包含以下要素:

  • 请求行:包含请求方法(如GET、POST等)、请求的URL和协议版本。
  • 请求头部:包含请求的元数据信息,如请求的数据类型、长度等。
  • 请求体:包含请求的具体数据或参数。

11.响应

响应是服务器向客户端发送的消息,用于回应客户端的请求。响应通常包含以下要素:

  • 状态行:包含响应的状态码(如200表示成功、404表示未找到资源等)和状态消息。
  • 响应头部:包含响应的元数据信息,如响应的数据类型、长度等。
  • 响应体:包含响应的具体数据或内容。

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

网络通信是指两台或多台计算机通过计算机网络进行数据交换的过程。以下是两台主机之间进行网络通信的详细流程,通常涉及OSI模型或TCP/IP模型的不同层次:

1. 应用层交互

  • 建立会话:通信的发起方(客户端)的应用程序首先建立一个会话,这可能涉及到如HTTP、FTP、SMTP等应用层协议。

  • 数据生成:客户端应用程序生成要发送的数据。

2. 传输层处理

  • 分段和流量控制:传输层(如TCP或UDP)将应用层数据分割成较小的段,并进行流量控制以避免数据溢出。

  • 封装:TCP头或UDP头被添加到数据段上,形成TCP段或UDP数据报。这些头部包含了端口号、序列号等信息。

3. 网络层处理

  • 寻址和路由选择:网络层(如IP协议)处理数据包的寻址和路由选择。源IP地址和目的IP地址被添加到数据包中。

  • 分片:如果数据包太大,无法通过网络中的某个链路,网络层将进行分片处理。

4. 数据链路层处理

  • 帧封装:数据链路层将IP数据包封装成帧,帧中包含了如源MAC地址、目的MAC地址和错误检测等信息。

  • 介质访问控制:通过介质访问控制(如CSMA/CD或CSMA/CA)决定数据帧何时在物理介质上发送。

5. 物理层传输

  • 信号传输:物理层负责将数据帧转换为电信号或光信号,并在物理介质(如以太网电缆、光纤或无线电波)上进行传输。

6. 路由器和交换机

  • 路由器转发:数据帧通过网络中的路由器和交换机被转发至目的地。路由器使用路由表来决定如何转发数据包。

7. 目的主机接收

  • 帧解封装:目的主机的数据链路层接收到帧后,去除帧头和帧尾,并进行错误检测。

  • IP处理:网络层去除IP头部,并将剩余的数据包传递给传输层。

  • 端口交付:传输层去除TCP/UDP头部,并根据端口号将数据交付给对应的应用程序。

8. 应用层接收

  • 会话管理:目的主机的应用程序接收数据,并可能与源主机的应用程序建立一个会话,以便进行双向通信。

9. 响应和数据传输

  • 响应生成:如果需要,目的主机的应用程序将生成响应数据,并重复上述流程发送回源主机。

10. 连接终止

  • 关闭连接:对于如TCP这样的面向连接的协议,通信完成后,双方将关闭已建立的连接。

注意事项

  • NAT和防火墙:在通信过程中,网络地址转换(NAT)和防火墙可能会对数据包进行检查和修改。

  • 网络安全:加密协议(如TLS/SSL)可以用于保护传输中的数据安全。

  • 错误处理:网络层和传输层都有错误检测和纠正机制,如IP的ICMP和TCP的确认与重传机制。

总结:

计算机网络是将多台计算机通过通信设备连接在一起,实现数据交换和资源共享的系统。这些通信设备通过不同规模和范围的网络使用不同的网络协议进行通信。路由器、交换机、网桥等网络设备用于实现数据包的转发、路由和交换。网络会根据你的ip地址和端口号定位到你的设备,从而能够对你发送一些数据。

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

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

相关文章

LeetCode 198—— 打家劫舍

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题使用动态规划求解,假设 d p [ i ] [ 0 ] dp[i][0] dp[i][0] 代表不偷窃第 i i i 个房屋可以获得的最高金额,而 d p [ i ] [ 1 ] dp[i][1] dp[i][1] 代表偷窃第 i i i 个房屋可以获…

【右一的开发日记】全导航,持续更新...

文章目录 📚前端【跟课笔记】🐇核心技术🐇高级技术 📚捣鼓捣鼓🐇小小案例🐇喵喵大王立大功🐇TED自用学习辅助网站🐇世界top2000计算机科学家可视化大屏🐇基于CBDB的唐代历…

GitHub Copilot 简单使用

因为公司安全原因,并不允许在工作中使用GitHub Copilot,所以,一直没怎么使用。最近因为有一些其它任务,所以,试用了一下,感觉还是很不错的。(主要是C和Python编程) 一:常…

python中的进程线程和协程

目录 进程(Process)多进程代码实例 线程(Thread)多线程存在原因及其缺点多线程代码实例 协程(Coroutine)协程的优点协程代码实例 进程、线程和协程适合的任务性质和环境多进程更适合的场景多线程更适合的场…

LeetCode 11—— 盛最多水的容器

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 暴力法,遍历所有可能的垂线对 ( i , j ) (i, j) (i,j),求取最大面积: a r e a m i n ( h [ i ] , h [ j ] ) ∗ ( j − i ) area min(h[i]…

Node.js -- MongoDB

文章目录 1. 相关介绍2. 核心概念3. 命令行交互3.1数据库命令3.2 集合命令3.3 文档命令 4. 数据库应用场景4.1 新增4.2 删除4.3 更新4.4 查询 1. 相关介绍 一、简介 Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/try/d…

一个C++小程序调试过程记录

Top 20 C Projects With Source Code [2024 Update]https://www.interviewbit.com/blog/cpp-projects/ 这个网页有一些简单的C程序的源码,闲来无事,把第一个程序(Bookshop Management System Using C)的源码下载了下来。 源文件…

第N1周:one-hot独热编码

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、OneHot独热编码原理 独热编码(One-Hot Encoding)是一种将分类数据转换为二进制向量的方法,其中每个类别对应一个唯一的…

如何下载AndroidStudio旧版本

文章目录 1. Android官方网站2. 往下滑找到历史版本归档3. 同意软件下载条款协议4. 下载旧版本Androidstudio1. Android官方网站 点击 Android官网AS下载页面 https://developer.android.google.cn/studio 进入AndroidStuido最新版下载页面,如下图: 2. 往下滑找到历史版本归…

Delta lake with Java--利用spark sql操作数据2

上一篇文章尝试了建库,建表,插入数据,还差删除和更新,所以在这篇文章补充一下,代码很简单,具体如下: import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession;publi…

谈一谈电影《飞驰人生》

文章目录 1.概述2.电影情节3.观后感 1.概述 电影《飞驰人生》是一部关于赛车的电影,主要演员是沈腾,因此电影中有不少的喜剧片段,不过电影整体偏向于剧情类电影。该电影的导演是韩寒,就是哪个曾经写出高分高考作文的考生&#xf…

【跟我学RISC-V】(一)认识RISC-V指令集并搭建实验环境

写在前面 现在计算机的体系架构正是发展得如火如荼的时候,占领桌面端市场的x86架构、占领移动端市场的arm架构、在服务器市场仍有一定地位的mips架构、国产自研的指令集loongarch架构、还有我现在要讲到的新型开源开放的RISC-V指令集架构。 我先说一说我的学习经历…

十二、视觉内容生成模型

1 判别式模型和生成式模型 1. 判别式模型 学习策略函数 Y f ( X ) Yf(X) Yf(X)或者条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)不能反映训练数据本身的特性学习成本低,需要的训练样本少无法转为生成式 2. 生成式模型 学习联合概率密度分布 P ( X ∣ Y ) P(X|Y) P(X∣…

C++ 矩阵

目录 了解矩阵的数学原理(大学线性代数) 矩阵及转置矩阵 矩阵乘法 矩阵快速幂 相伴矩阵模板 [相伴矩阵,快速矩阵幂]CSES1722 Fibonacci Numbers 了解矩阵的数学原理(大学线性代数) 矩阵及转置矩阵 这里A就是一个矩阵&…

动态数据结构中的表扩张性:摊还分析、伪代码与C语言实现

动态数据结构中的表扩张性:摊还分析、伪代码与C语言实现 引言表扩张性的概念摊还分析在表扩张性中的应用伪代码示例:TABLE-INSERT操作C语言实现结论 引言 在处理数据结构时,尤其是表(或数组),我们经常面临…

Swift - 可选项(Optional)

文章目录 Swift - 可选项(Optional)1. 可选项(Optional)2. 强制解包(Forced Unwrapping)3. 判断可选项是否包含值4. 可选项绑定(Optional Binding)5. 等价写法6. while循环中使用可选…

DVWA 靶场命令注入通关解析

介绍 命令注入(Command Injection)是一种常见的安全漏洞,它允许攻击者通过在应用程序中执行恶意命令来获取系统权限或执行非授权操作。 命令注入通常发生在需要将用户输入作为命令执行的地方,例如Web应用程序的输入框、参数传递…

制作一个RISC-V的操作系统十五-软件定时器

文章目录 定时器分类定时器相关分类软件定时器设计初始化创建删除触发流程图形示意 优化代码 定时器分类 硬件定时器:由硬件频率和触发限制的大小决定,只有一个,精度高 软件定时器:基于硬件定时器实现,精度大于等于硬…

搭建vue3组件库(三): CSS架构之BEM

文章目录 1. 通过 JS 生成 BEM 规范名称1.1 初始化 hooks 目录1.2 创建 BEM 命名空间函数1.3 通过 SCSS 生成 BEM 规范样式 2. 测试 BEM 规范 BEM 是由 Yandex 团队提出的一种 CSS 命名方法论,即 Block(块)、Element(元素&#xf…

AngularJS 的生命周期和基础语法

AngularJS 的生命周期和基础语法 文章目录 AngularJS 的生命周期和基础语法1. 使用步骤2. 生命周期钩子函数3. 点击事件4. if 语句1. if 形式2. if else 形式 5. for 语句6. switch 语句7. 双向数据绑定 1. 使用步骤 // 1. 要使用哪个钩子函数,就先引入 import { O…
最新文章