计算机网络概况

news2024/11/26 21:10:07

1 前言

计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网络通信协议的协调管理下,实现资源共享和信息传递的计算机系统。

简单来说,计算机网络就是用于满足不同机器之间通信、共享的一种系统。

1.1 计算机网络的组成

从组成上而言,计算机网络主要由主机协议传输介质以及软件四部分组成。

  • 主机:可以是手机、电脑、服务器、电子手表等任意计算机硬件。

  • 协议:各类定义归法的网络通信协议,如TCP/IP、IPX/SPX、AppleTalk等。

  • 传输介质:传输数据的通道,可以是实体铜线、电缆、光纤,也可以是无形的电磁波空间介质。

  • 软件:涵盖所有联网的应用,如QQ、微信、支付宝、淘宝、京东等各类软件。

1.2计算机网络的功能组成

计算机网络体系的两个核心功能

资源共享:资源子网实现-->OSI中的上三层

数据通信:通信子网实现-->OSI中的下三层

1.3 网络分层与OSI七层模型

而在计算机网络中,当两台机器进行通信时,其过程主要包含数据的封装与解封:

如上图,左侧是发送端,右侧是接收端,当发送端的应用尝试传输一条数据时,数据会根据网络分层结构,从上至下依次封装,每层都对数据做一定的处理,最后在物理层转换为比特流(二进制数据),然后传输至接收端。因为双方之间遵守的都是相同的协议体系(网络模型),因此接收端会首先接收到比特流数据,然后从下至上依次解封数据,最终在应用层还原数据,从而达到通信的目的。

2 通信协议的基本概念

2.1 协议数据单元(PDU)

计算机网络体系中,不同节点通信时交换的信息报文称PDU=协议头信息 + 数据

2.2 TCP/IP体系中数据的通信过程

TCP/IP体系中,一端要想为另一端发送信息数据也会经历封装与解封过程,每一次封装都会形成本层的PDU.

同比生活,也就是类似收发快递的过程:

  • 发件:[发件人]→[货物]→[驿站]→[快递公司站点]

  • 传输介质:[运输路线]→[中转站]

  • 收件:[快递公司站点]→[驿站]→[货物]→[收件人]

3 TCP/IP协议简介

  • 源端口/目的端口:指数据发送方的应用进程端口号和接收方的端口号

  • 序号:TCP为了保证数据的可靠传输,会对分段数据标注序号用于组装和确定数据的正确性

  • 确认序号:当接收方收到接收到本次数据时,下次需要发送的数据段序号

  • 首部:表示TCP报文头的长度,因为TCP头长度可变性,因此需要在头信息中声明每个头的长度

  • 保留位:预留一些空间给未来拓展时使用。

  • URG:表示本次发送的报文数据中是否是紧急数据。

  • ACK:确认信号,当报文中ACK=1的时候表示正确或同意。

  • PSH:表示接收方应该尽快将这个报文交给应用层,为后续数据腾出空间,不要停留在缓冲区。

  • RST:如果收到RST=1的报文,说明与主机的连接出现严重错误(如主机崩溃),必须释放连接,然后重新建立连接。

  • SYN:建立一个新连接,SYN=1表示这是一个请求建立连接的报文段。

  • FIN:断开一个连接,FIN=1表示通知告知对方本段要关闭连接了。

3.1连接管理机制 - 三次握手与四次挥手

TCP的三次握手

所谓的TCP三次握手,其实是指TCP建立连接的过程,因为TCP属于可靠性的传输协议,因此在发送数据前必须要先确保发送/接收数据的双方状态正常,因此需要经过“三次握手”的过程,具体如下:

  • 客户端向服务端发送建立连接的数据包SYN=1,seq=x,然后进入syn-send等待确认连接状态

  • SYN=1:代表请求建立连接。

  • seq=x:当前数据包的序号。

  • 服务端接收到请求建立连接的数据包后,允许建立连接的情况下,会返回响应报文

SYN=1,ACK=1,seq=y,ack=x+1

  • SYN=1:TCP是双全工协议,因此服务端也需向客户端发送SYN=1信号。

  • ACK=1:确认客户端建立连接的请求。

  • seq=y:表示当前服务端返回给客户端的序号。

  • ack=x+1:确认客户端序号x之前的请求都已收到。

  • 因为是双全工协议,连接是双向的,因此客户端也需确认一下服务端的连接请求,收到服务端的SYN=1后,也需返回ACK=1,seq=x+1,ack=y+1的数据包。

  • ACK=1:表示确认服务端的连接建立请求。

  • seq=x+1:当前数据包的请求序号。

  • ack=y+1:确认服务端序号y之前的数据都已成功接收。

经过如上三个步骤,客户端和服务端双方之间确认请求后,连接会成功建立,紧接着双方都会处于estab-lishen状态,数据可以正常传输。

TCP的四次挥手

当一方数据传输完成后,会尝试中断连接,因此又会经历“四次挥手”的过程,如下:

①客户端完成数据传输后,会发出FIN=1,seq=u关闭连接的报文,然后等待服务端响应。

  • FIN=1:代表请求关闭连接。

  • seq=u:请求序号。

②服务端收到客户端的“关闭”请求后,会给客户端返回确认关闭的报文:ACK=1,seq=v,ack=u+1。

  • ACK=1:确认客户端“关闭连接”的请求。

  • seq=v:请求序号。

  • ack=u+1:确认客户端序号u及其以前的数据都已成功接收。

  • 客户端传输完成数据后,会告诉服务端自己要关闭连接了;

  • 但服务端可能数据还未传输完成,因此会继续传输自己的数据,直至自身的数据也传输完成后,也会告诉客户端:自己也要关闭连接了。

③服务端传输完成自己的数据后,向客户端发送关闭连接的报文:FIN=1,ACK=1,seq=w,ack=u+1。

  • FIN=1:表示自己也要“关闭连接”了。

  • ACK=1:确认收到了之前的数据。

  • seq=w:请求序号。

  • ack=u+1:确认客户端序号u之前的数据都已成功接收。

④客户端接收到服务端“关闭连接”的请求后,给服务端响应确认报文:ACK=1,seq=u+1,ack=w+1。

  • ACK=1:确认服务端“关闭连接”的请求。

  • seq=u+1:请求序号。

  • ack=w+1:确认服务端序号w之前的数据都已成功接收。

学习链接: https://juejin.cn/post/7101917676162777119

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧农业灌溉系统-数字农业-农业物联网机井灌溉节水新模式

平升电子智慧农业灌溉系统/农业物联网机井灌溉系统,可实现井电双控(以电控水)、以电折水、以阀控水等各种形式的地下取水井用水计量监测控制需求,助推农业水价改革实施、高效节水灌溉和地下水超采综合治理,促进节水型社…

Python数学建模问题总结(2)数据可视化Cookbook指南·上

概括总结:一、可视化问题1.不会可视化图标;2.可视化效果不好看;3.数据可视化成果无法得到很好的推广使用。二、可视化原则准确的、有帮助的、可扩展的。三、类型1.随时间变化;2.类别比较图表;3.排名列表:有…

proc文件系统下各参数解析

文章目录一、proc文件系统1.1 /proc/[pid]1.1.1 /proc/[pid]/arch_status1.1.2 /proc/[pid]/attr1.1.2.1 /proc/[pid]/attr/current1.1.2.2 /proc/[pid]/attr/exec1.1.2.3 /proc/[pid]/attr/fscreate1.1.2.4 /proc/[pid]/attr/keycreate1.1.2.5 /proc/[pid]/attr/prev1.1.2.6 /…

【操作系统】 第一章 操作系统概述

文章目录第一章 知识体系1.1 操作系统的基本概念1.1.1 操作系统的概念1.1.2 操作系统的特征1.1.3 操作系统的目标和功能1.2 操作系统的发展历程1.3 操作系统的运行环境1.3.1 处理器的运行模式1.3.2 中断和异常的概念1.3.3 系统调用1.4 操作系统结构1.5 操作系统引导1.6 虚拟机第…

C++进阶 红黑树封装map和set

作者:小萌新 专栏:C进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:使用红黑树封装出map和set 红黑树封装map和set红黑树源代码红黑树模板参数的控制红黑树结点当中存储的数据模板参数仿函数的增加正向迭…

react基础Day04-React原理揭秘React路由基础

React原理揭秘 目标 能够说出React组件的更新机制能够对组件进行性能优化能够说出虚拟DOM和DIff算法 组件更新机制 setState() 的两个作用 修改state更新组件 过程:父组件重新渲染时,也会重新渲染子组件,但只会渲染当前组件子树&#xff…

[Android Studio]查看和修改Android API SDK的配置

🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…

高并发系统设计 -- 缓存与数据库一致性问题详细讲解

CAP理论 首先来谈一下数据的一致性这个话题,所谓的一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中的数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读…

steam搬砖项目,信息差赚钱,内含全部讲解

Steam平台就是一个全球的游戏平台,搬砖主要是搬的一款火遍全球的游戏CSGO的装备和饰品。CS听说过吧,这款游戏就是CS的一个系列。(通俗易懂的理解就是,从国外steam游戏平台购买装备,再挂到国内网易buff平台上进行售卖。…

【TypeScript】TS进阶-装饰器(九)

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到…

ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin前言Cygwin 安装工程编译总结前言 之前一篇ADI demo工程的编译是ADI不推荐的方法,而且确实在后面NO…

【Django项目开发】django的信号机制(八)

文章目录1、什么是信号2、代码实现3、要想上面定义的信号机制生效,需要在apps.py中加载信号机制1、什么是信号 通俗来说,信号就是通信双方约定的一种信息通知方式,双方通过信号来确定发生了什么事情,然后决定自己应该做什么。 Django 中的信号用于在框架执行操作时解耦。当某…

2.1总线概述

文章目录一、总线简图二、概念与分类1.总线定义2.总线特点(1)分时(2)共享3.总线特性4.总线的分类(1)按数据传输格式①串行总线②并行总线(2)按总线功能①片内总线②系统总线③通信总…

【原创】linux实时应用如何printf输出不影响实时性?

linux实时应用printf输出 文章目录linux实时应用printf输出1. 前言2. linux终端输出3. 常见的NRT IO输出方案3.1 一种实现方式3.3 改进3. Xenomai3 printf()接口3.1 应用运行前环境初始化1. GCC特定语法2. libcobalt printf初始化流程3.2 libcobalt printf内存管理1. print_buf…

我的周刊(第074期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目code-server[1]这是一款开源的基于 VSCode 的在线编…

【Linux系统】第四篇:Linux中编辑器vim的使用

文章目录一、vim的介绍1、vim的基本模式2、vim的使用二、命令模式1、光标移动操作2、文本复制、粘贴、剪切、撤销操作3、文本编辑相关操作三、插入模式四、底行模式底行模式命令集五、vim的配置原理六、sudo无法提权问题一、vim的介绍 vim是Linux下的一款多模式编辑器。 注意…

【已解决】右键以某应用打开xx文件时,没有“始终”选项怎么办

问题解决方案简单来说详细操作解释问题 右键以某应用打开xx文件时,没有“始终”选项 解决方案 简单来说 在注册表:计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\找到要打开的文件后缀名,删除…

2022尚硅谷SSM框架跟学(五)Spring基础二

2022尚硅谷SSM框架跟学 五Spring基础二3.AOP3.1场景模拟3.1.1声明接口3.1.2创建实现类3.1.3创建带日志功能的实现类3.1.4提出问题(1)现有代码缺陷(2)解决思路(3)困难3.2代理模式3.2.1概念(1)介绍(2)生活中的代理(3)相关术语3.2.2静态代理3.2.3动态代理3.2.4测试3.3AOP概念及相关…

视频 | 生信 linux 实战题目讲解03

点击阅读原文跳转完整教案。1 Linux初探,打开新世界的大门1.1 Linux系统简介和目录理解1.1.1 为什么要用Linux系统1.1.2 Linux系统无处不在1.1.3 免费的Linux系统来一套1.1.4 Linux系统登录-联系远方的她1.1.5 初识Linux系统 - 黑夜中的闪烁是你的落脚点1.1.6 我的电…

使用混沌和非线性控制参数来提高哈里斯鹰优化算法的优化性能,解决车联网相关的路由问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…