计算机网络自顶向下(1)---网络基础

news2024/9/28 22:11:51

目录

1.网络的分类  

2.网络协议

3.网络分层结构

1.OSI七层模型

2.TCP/IP四层模型

3.网络与OS的关系

4.网络传输基本流程

1.协议报头

5.网络中的地址管理

1.IP地址

2.端口号

6.传输层协议

1.TCP协议

2.UDP协议

3.网络字节序

7.socket


1.网络的分类  

        局域网(Local Area Network,LAN)是指在较小地理范围内,由计算机和终端设备相互连接而成的网络。局域网通常用于家庭、办公室、学校等局部区域内,可以方便地共享资源和信息。

        广域网(Wide Area Network,WAN)是指以广泛地理范围为基础,连接多个局域网或多个计算机网络的网络。广域网通常通过公共的通信线路,如电话线、光纤、卫星等建立起连接,可以实现跨地区、跨国家的通信和数据传输。

局域网与广域网之间的区别主要有以下几点:

  1. 范围:局域网覆盖较小的地理范围,通常在一个建筑物、一栋楼或一个校园内;而广域网可以覆盖更广阔的地理范围,可以跨越多个城市、国家或地区。
  2. 传输速率:局域网通常具有较高的传输速率,可以达到百兆甚至千兆的速度;而广域网的传输速率受到地理距离和网络基础设施的限制,一般较慢。
  3. 管理和控制:局域网由局域网管理员负责管理和控制,可以根据需要设置访问权限和安全策略;而广域网通常由网络运营商或大型企业负责管理和维护,用户的权限和访问控制受到限制。
  4. 成本:局域网相对来说成本较低,因为只需要建设和维护一个较小的网络;而广域网的建设和维护成本较高,需要更多的硬件设备和专业人员。

2.网络协议

        网络协议是网络通信中所使用的一套规则和约定,用于确定数据如何在网络中传输、路由和接收。它定义了通信设备之间的通信规程,包括数据格式、错误检测、数据压缩、数据传输控制和网络安全等。

3.网络分层结构

        网络分层结构是指将网络的功能划分为不同的层次,每个层次负责不同的任务和功能。常见的网络分层结构有OSI模型和TCP/IP模型。

a.软件分层

        任何问题都可以添加一层软件分层来解决,层和层之间是松耦合的,可以随时替换或者方便维护。

b.网络分层

        网络分层是将网络功能划分为不同的层级,每个层级负责不同的任务和功能。每个层级都有自己的协议和规范,各个层级之间通过接口进行交互。网络分层的目的是为了提高网络的灵活性、可扩展性和互操作性。

        为什么要进行网络分层呢?首先,网络分层可以简化网络的设计和管理。通过将网络功能划分为不同的层级,每个层级只需要关注自身的任务,不会受到其他层级的影响。这样可以减少网络的复杂性,提高网络的可管理性。

        其次,网络分层可以提高网络的可扩展性。网络功能的分层设计使得网络可以根据需要进行扩展或添加新的功能,而不会对整体网络产生影响。这样可以更好地应对不断增长的网络需求,提高网络的扩展性。

1.OSI七层模型

        OSI模型(开放系统互连参考模型)是国际标准化组织(ISO)制定的一种网络通信的参考模型。它将网络通信分为七个层次:

  1. 物理层(Physical Layer):负责传输比特流,即将数据从一个节点传输到另一个节点的物理媒介。

  2. 数据链路层(Data Link Layer):负责将数据划分为数据帧,并提供错误检测和纠正。

  3. 网络层(Network Layer):负责将数据包从源节点传输到目标节点,并处理路由选择和拥塞控制等问题。

  4. 传输层(Transport Layer):负责在端到端的通信中提供可靠的数据传输,并处理流量控制和错误恢复。

  5. 会话层(Session Layer):负责建立、管理和终止会话。

  6. 表示层(Presentation Layer):负责数据的格式转换、加密和解密,确保数据的可解释性。

  7. 应用层(Application Layer):负责为用户提供服务,如文件传输、电子邮件等。

2.TCP/IP四层模型

        TCP/IP模型是实际使用的网络分层结构,它将网络通信分为四个层次:

  1. 网络接口层(物理层+数据链路层)(Network Interface Layer):负责将数据从网络传输到物理媒介。

  2. 网络层(Internet Layer):负责将数据包从源节点传输到目标节点,并处理路由选择和拥塞控制等问题。

  3. 传输层(Transport Layer):负责在端到端的通信中提供可靠的数据传输,并处理流量控制和错误恢复。

  4. 应用层(Application Layer):负责为用户提供服务,如文件传输、电子邮件等。

3.网络与OS的关系

        世界上所有的OS只要想入网,就必须得遵守TCP/IP协议,保证不同主机之间的数据通信。双方必须使用同样的数据类型,所以,经过网络传输,对方一定认识每个字段的大小,含义,协议就是双方都能识别的结构体数据类型。

        通过接口、类、消息格式定义和标记等机制,编程语言提供了一种统一的方式来描述和实现协议,从而保证不同实体之间的正确通信和交互。

4.网络传输基本流程

        在同一个局域网中的主机,能不能直接通信呢?能。原理是什么?以太网的通信原理!数据碰撞。任何时候,只允许任何一台主机在局域网中发送消息,网络和OS一统:局域网本质,是一个临界资源!

  1. 物理连接:局域网中的计算机通过物理介质(如以太网电缆、Wi-Fi等)进行连接。计算机通过网卡与物理介质相连,实现数据的物理传输。

  2. MAC地址:每台计算机都有唯一的物理地址,称为MAC地址(Media Access Control Address)。在局域网中,计算机通过MAC地址识别彼此,并进行通信。

  3. 交换机:局域网中通常使用交换机作为网络设备,用于实现数据的转发和交换。交换机根据MAC地址学习和转发数据帧,将数据从发送端直接传输到接收端,提高了数据传输的效率

1.协议报头

        报文不断被自顶向下进行交付的过程,要添加每一层的协议报头,叫做封装。

        报文=协议报头+有效载荷

        协议报头(Protocol Header)是计算机网络通信中,位于数据包(Packet)开头的部分,用于标识和控制数据包的传输和处理方式。它包含了一些必要的信息,使得网络设备可以根据这些信息正确地处理和路由数据包。

        有效载荷(Payload)是计算机网络通信中,除去协议报头后的数据部分。它是应用层向传输层提交的数据,也是网络传输的实际内容。

        解包:将报头和有效载荷进行分离。

        分用:将自己的有效载荷交付给上层的那一个协议。

        任何协议(特殊情况暂不考虑)必须得考虑解包和分用。

5.网络中的地址管理

1.IP地址

        IP地址(Internet Protocol Address)是一个唯一标识网络上设备的数字标签。它用于在Internet上识别和定位设备,使它们能够相互通信。

        IP地址是一个由32位或128位二进制数字组成的标识符。为了方便人们使用和记忆,IP地址被表示为以点分割的四个十进制数(IPv4)或八个十六进制数(IPv6)。每个十进制数或十六进制数代表了8位或16位二进制数。

2.端口号

        端口号是一个用于标识应用程序或服务的数字标识符。在计算机网络中,端口号被用于将传输控制协议(TCP)或用户数据报协议(UDP)数据包传递给正确的应用程序或服务。

1.我们上网,无非就是两种动作:a.把远处的数据拉取到本地 b.把我的数据发送到远端

2.大部分的网络通信行为,都是用户触发的。计算机中谁表示用户呢?进程!!!

3.把数据发送到目标主机,不是目的,是手段。真正的目的,是吧数据交给这个主机上的某一个服务(进程)

4.网络通信的本质,其实是进程在帮我们进行网络通信,无论是对于C还是S

5.IP(唯一的一台主机)+port(该主机上的唯一的一个进程)=互联网中唯一的一个进程

6.client->server:client进程->server进程    client进程=client ip +client port=client是互联网中唯一的一个进程  server进程=server ip +server port=client是互联网中唯一的一个进程   他们两个唯一的找到彼此。

        网络通信的本质:其实就是进程间通信!!!

6.传输层协议

1.TCP协议

        TCP(Transmission Control Protocol,传输控制协议)是一种在计算机网络中常用的传输协议。它是一种面向连接的、可靠的、基于字节流的传输协议。

        TCP协议建立在IP协议之上,它负责将数据分割成合适的大小,并在源和目的之间建立一个可靠的连接。TCP协议通过三次握手建立连接,保证数据的可靠性和顺序传输。一旦连接建立,TCP协议会监控数据的传送情况,并通过确认和重传机制确保数据的可靠性。

        TCP协议还具有拥塞控制的功能,它会根据网络的拥塞程度调整数据的传输速率,以避免网络拥塞。

        TCP协议常用于可靠的数据传输,例如下载文件、发送电子邮件等。它可以保证数据的可靠性和顺序传输,但也因此引入了一定的延迟和开销。

2.UDP协议

        UDP(User Datagram Protocol,用户数据报协议)是一种在计算机网络中常用的传输协议。它是一种无连接的、不可靠的、基于数据报的传输协议。

        与TCP协议不同,UDP协议不需要在发送数据之前建立连接,也不会保证数据的可靠性和顺序传输。UDP协议将数据划分为小的数据报,每个数据报都有源和目的的IP地址以及端口号。UDP协议直接将数据报发送给目标IP地址和端口号,不会有确认和重传机制。

        UDP协议的优点是速度快和开销小,因为它不需要建立连接和维护状态,适用于对实时性要求较高的应用,如实时视频和音频传输。但它的缺点是数据的可靠性和顺序性无法得到保证,因此在一些对数据可靠性要求较高的应用中不适用。

3.网络字节序

        网络字节序是一种约定俗成的字节顺序,用于在不同计算机之间进行数据传输和通信。它定义了在网络中数据的字节顺序,以确保数据在不同计算机上的解析和处理是一致的。

        在网络传输中,数据通常被划分为多个字节进行传输。字节顺序指的是多个字节的排列顺序。在网络中,采用的是大端字节顺序(Big-Endian)。

        在大端字节顺序中,数据的高位字节存储在低地址中,而低位字节存储在高地址中。这意味着在网络中,数据的高位字节先传输,低位字节后传输。例如,16位整数0x1234在网络中传输时,先传输高位字节0x12,再传输低位字节0x34。

7.socket

        套接字(Socket)是在网络通信中用于建立连接和进行数据传输的一种机制。它是对网络通信的抽象,通过套接字可以实现客户端和服务器之间的数据交换。

        套接字可分为两种类型:流套接字(Stream Socket)和数据报套接字(Datagram Socket)。

  • 流套接字:基于TCP协议,提供面向连接的可靠数据传输。它通过创建一个连接,可以实现数据的顺序传输和可靠性保证。
  • 数据报套接字:基于UDP协议,提供无连接的不可靠数据传输。它将数据分成小的数据包进行传输,不保证数据的可靠性和顺序性,但传输效率较高。

        Socket是一种用于网络通信的编程接口,它提供了在计算机之间传输数据的方法。通过使用Socket编程接口,可以实现不同计算机之间的网络通信,例如在客户端和服务器之间进行数据传输。

        Socket编程接口提供了一组用于创建、连接、发送和接收数据的函数和方法。它基于TCP/IP协议栈,可以支持TCP或UDP协议进行数据传输。

        在Socket编程中,有两种常见的类型:客户端Socket和服务器端Socket。客户端Socket用于连接服务器端Socket,并发送请求和接收响应数据。服务器端Socket用于监听客户端的连接请求,并接收和处理客户端发送的数据。

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

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

相关文章

excel-VBA知识点记录

1、计算机硬件的组成部分 内存,一旦断电,存储在里面的数据就消失了,而硬盘是永久存储数据的,所以刚开始我们在文件里面编辑没有按保存的时候,数据是在内存里面的,一旦断电数据就没了,但我们点了…

大语言模型知识点分享

1 目前主流的开源模型体系有哪些? Prefix Decoder 系列模型 核心点: 输入采用双向注意力机制,输出为单向注意力。双向注意力意味着输入的每个部分都可以关注到输入的所有其他部分,这在理解上下文时具有很强的优势。 代表模型&a…

六级翻译 高分笔记

第一节 句子的拆分与重组 核心原则:拆主干,补修饰 一、句子的拆分与重组 1.青藏铁路是世界最高最长的高原铁路。(“的”字前面所有去掉,就是句子主干) The Qinghai-Tibet Railway is the highest and longest plate…

css 数字比汉字要靠上

这个问题通常是由于数字字体的下排的问题造成的,也就是数字的底部边缘位置比汉字的顶部边缘位置更靠下。为了解决这个问题,可以尝试以下几种方法: 使用CSS的vertical-align属性来调整对齐方式。例如,可以将数字的对齐方式设置为to…

数组的练习

1.使用函数的递归方法&#xff0c;输出给定字符串的逆序&#xff0c;如"abcdefg"&#xff0c;输出为“gfedcba”. 方法一&#xff1a;首先不采用递归的方法&#xff0c;如何完成上述要求 #include<stdio.h> #include<string.h> int main() {char arr[]…

3.数据结构与算法-基本概念和术语

数据、数据元素、数据项和数据对象 数据 数据元素 学生表-记录 数-节点 图&#xff1a;顶点 数据项 数据对象 数据对象与数据元素的关系 数据结构 数据结构的三个部分 逻辑结构的种类 存储结构分类 顺序存储结构 链式存储结构 索引存储结构 散列存储结构 数据类型和抽象数据类…

Linux中的文件缓冲区

目录 使用 dup2 系统调用 为命令行解释器添加重定向功能 理解缓冲区问题 缓存区的刷新策略 FILE的本质 尝试封装C语言的FILE 小共识&#xff1a; cd->当前路径->当前进程的工作路径->工作路径可以被修改->每个进程都有当前路径->故cd改的是子进程的路径-…

算力共享平台的控制流程,业务流程

目录 控制流程 业务流程 在提供的计算机网络系统结构示意图和描述中,我们可以区分出控制流程和业务流程的组成部分。 控制流程 控制流程主要涉及系统内部的管理、调度和监控操作,以确保系统能够按照预定的规则和策略运行。在这个例子中,控制流程可能包括但不限于以下部分…

K8S真正删除pod

假设k8s的某个命名空间如&#xff08;default&#xff09;有一个运行nginx 的pod&#xff0c;而这个pod是以kubectl run pod命令运行的 1.错误示范&#xff1a; kubectl delete pod nginx-2756690723-hllbp 结果显示这个pod 是删除了&#xff0c;但k8s很快自动创建新的pod,但是…

【C++算法】5.双指针_乘最多水的容器

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解&#xff1a; 题目链接&#xff1a; 11.盛最多水的容器 题目描述&#xff1a; 解法 7x749 解法一&#xff1a;暴力枚举 输入&#xff1a;[1&#xff0c;8&#xff0c;6&#xff0c;2&#xf…

大厂AI必备数据结构与算法——链表(三)详细文档

冲冲冲&#xff01;开干 神马&#xff01;神马&#xff01;神马&#xff0c;一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程&#xff1f;还那么详细&#xff1f;&#xff1f;真的假的&#xff1f; 那么好&#xff0c;胡广告诉你是假的&#xff0c;哈哈哈哈哈哈哈哈哈…

付费计量系统通用处理类(下)

普通处理类如下定义&#xff1a; 10.11 Class 11: Customer _Delivery process 用户交付过程 The processes associated with transferring delivered electrical energy to the customer’s load circuit. 是关于将传输的电能传递到用户的负荷电路。 Examples…

告别熬夜,追求高效写作:芝士AI写作,效率与质量的双重提升

好的工具&#xff0c;真得能够让我们的学习事半功倍&#xff0c;有了芝士AI&#xff08;paperzz&#xff09;工具的加持&#xff0c;妈妈再也不用担心我熬夜写论文了 。 芝士AI官网&#xff1a;https://www.paperzz.cn/ 不愧是由985硕博团队开发的AI大模型功软件&#xff0c;…

LeetCode 427. 建立四叉树

LeetCode 427. 建立四叉树 &#xff08;题干略&#xff09; """ # Definition for a QuadTree node. class Node:def __init__(self, val, isLeaf, topLeft, topRight, bottomLeft, bottomRight):self.val valself.isLeaf isLeafself.topLeft topLeftself.t…

04_OpenCV图片缩放

import cv2 import matplotlib.pyplot as plt # Python 的 2D绘图库# 读入原图片 img cv2.imread(libarary.JPG) # 打印出图片尺寸 print(img.shape) # 将图片高和宽分别赋值给x&#xff0c;y x, y img.shape[0:2]# 显示原图 #cv.imshow(OriginalPicture, img)# 缩放到原来的…

模拟实战数据落地:MSsql通过存储过程获得销售数据视图

话不多说 目标需求:通过传递参数(查询条件及查询时间)调用存储过程获得销售数据视图,并且在视图中有时间字段供后续引用,实现数据对接获取任务 最终结果如图: 实现以上结果步骤如下: 1)建立users表和orders表分别代表用户及订单,其中订单中用户id与用户表中用户id关联,并随机…

C++初阶:STL详解(九)——stacke和queue的模拟实现

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 我们已将了解了 stack和q…

PHP爬虫:获取商品销量详情API的利器

在电子商务时代&#xff0c;商品的销量数据对于商家来说至关重要。它不仅能够帮助商家了解市场动态&#xff0c;还能够指导库存管理和营销策略。PHP作为一种流行的服务器端脚本语言&#xff0c;结合其强大的HTTP请求处理能力&#xff0c;可以有效地用于编写爬虫程序&#xff0c…

【教学类-18-04】20240508《蒙德里安“黑白格子画” 七款图案挑选》

背景需求 最近有2位客户买了蒙德里安黑白格子画的素材&#xff0c;其中一位问是否是1000张。 【教学类-18-03】20240508《蒙德里安“红黄蓝黑格子画”-A4横版》&#xff08;大小格子&#xff09;_processing简单图形画蒙德里安-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞35次…

记忆osi七层模型的口诀/方法/谐音

物理层、数据链路层、网络层、传输层、会话层、表示层和应用层 物数网传会表应&#xff08;无数网船会飙英&#xff08;语&#xff09;&#xff09; 记忆方法&#xff1a; 想象面前有很多挂着渔网的船&#xff0c;船上的人会说英语。 无数的网船上会有人飙英语。