Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

news2024/12/23 3:04:28

Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

文章目录

  • Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素
    • 一、计算机网络
      • 基本概念:
      • 组成部分:
      • 主要技术:
    • 二、网络编程
      • 基本概念:
      • 基本步骤:
      • 常用技术和工具:
      • 安全性和性能优化:
    • 三、网络模型
      • 基本概念:
      • OSI 模型:
      • TCP/IP 模型:
      • 区别和联系:
    • 四、 网络编程三要素
      • 1. IP地址:
      • 2. 端口号:
      • 3. 协议:

一、计算机网络

计算机网络是指将多台计算机通过通信设备互相连接起来,以便彼此之间可以进行数据交换和资源共享的系统。计算机网络的基本概念和组成部分包括以下内容:

基本概念:

  1. 通信协议:计算机网络中的通信规则和约定,确保不同设备之间可以正确地交换数据。
  2. 网络拓扑:计算机网络中设备之间的物理或逻辑连接方式,如总线、星型、环形等。
  3. 网络协议栈:由多个层次组成的网络协议集合,常见的有TCP/IP协议栈和OSI模型。
  4. IP地址:用于标识网络中设备的唯一地址,分为IPv4和IPv6。
  5. 域名系统(DNS):将域名解析为对应的IP地址的系统,方便用户记忆和访问网站。

组成部分:

  1. 通信设备:如路由器、交换机、网卡等,用于实现设备之间的数据传输。
  2. 传输介质:如光纤、铜缆、无线信道等,用于在设备之间传输数据。
  3. 网络协议:如TCP、IP、HTTP、FTP等,用于规定数据传输的格式和规则。
  4. 网络服务:如Web服务、电子邮件、文件传输等,提供不同的网络功能和应用。

主要技术:

  1. 局域网(LAN):覆盖较小范围的网络,如家庭、办公室等。
  2. 广域网(WAN):覆盖较大范围的网络,如跨城市、跨国家等。
  3. 无线网络:通过无线信号进行数据传输的网络,如Wi-Fi、蜂窝网络等。
  4. 互联网:由多个计算机网络互相连接而成的全球性网络,提供丰富的信息和资源。

注意: 网络安全和隐私保护等问题,确保网络的稳定和安全运行

二、网络编程

基本概念:

网络编程是指通过计算机网络实现不同设备之间数据交换和通信的程序开发过程。在网络编程中,开发人员可以利用各种网络协议和技术来实现客户端和服务器之间的通信,实现数据传输、资源共享和远程控制等功能。以下是网络编程的一般步骤和常用技术:

基本步骤:

  1. 创建Socket:在客户端和服务器端分别创建Socket对象,用于建立网络连接。
  2. 建立连接:客户端向服务器端发起连接请求,服务器端接受连接并建立通信。
  3. 数据传输:通过Socket对象进行数据的发送和接收。
  4. 关闭连接:通信结束后,关闭Socket连接。

常用技术和工具:

  1. Socket编程:基于TCP/IP协议的Socket编程是网络编程的基础,可以使用Java、Python等语言进行Socket编程。
  2. HTTP协议:用于Web服务的通信协议,常用于浏览器和Web服务器之间的通信。
  3. RESTful API:基于HTTP协议的API设计风格,用于实现客户端和服务器之间的数据交互。
  4. WebSocket:一种在单个TCP连接上进行全双工通信的协议,用于实时通信和推送服务。
  5. RPC框架:远程过程调用框架,如gRPC、Dubbo等,用于实现跨网络的方法调用。
  6. 异步编程:利用异步编程模型提高网络应用的性能和并发能力,如使用回调函数、Promise等机制。

安全性和性能优化:

  1. 加密和认证:使用SSL/TLS等加密协议保障数据传输的安全性,实现身份认证和数据加密。
  2. 防火墙和安全策略:设置网络防火墙、访问控制列表等安全策略,保护网络免受攻击。
  3. 负载均衡和缓存:利用负载均衡技术和缓存机制优化网络性能,提高系统的吞吐量和响应速度。

**理解:**实现多台计算机之间实现数据的共享和传递,网络应用程序主要组成为:

网络编程+IO流+多线程

三、网络模型

基本概念:

网络模型是用来描述计算机网络体系结构和通信协议的抽象框架,通常将网络通信的功能划分为多个层次,每个层次负责特定的功能,从而实现网络通信的分层管理和协作。两个最常用的网络模型是 OSI 模型和 TCP/IP 模型。

OSI 模型:

  1. 物理层:负责传输比特流,定义物理介质和传输速率等。
  2. 数据链路层:负责建立和管理直接连接的设备之间的数据传输。
  3. 网络层:负责在不同网络之间传输数据包,实现路由和转发。
  4. 传输层:负责端到端的数据传输,提供可靠的数据传输和错误恢复。
  5. 会话层:负责建立、管理和终止会话连接。
  6. 表示层:负责数据的格式化、加密和压缩。
  7. 应用层:提供用户接口和应用程序之间的通信服务。

TCP/IP 模型:

  1. 应用层:包含应用层协议,如HTTP、FTP、SMTP等。
  2. 传输层:包含传输层协议,如TCP、UDP,负责端到端的数据传输。
  3. 网络层:包含网络层协议,如IP,负责数据包的路由和转发。
  4. 链路层:包含数据链路层和物理层,负责直接相连设备之间的数据传输。

区别和联系:

  • OSI 模型是一个七层模型,提供了更加详细的网络通信功能划分,而 TCP/IP 模型是一个四层模型,更加贴近实际网络通信的需求。
  • TCP/IP 模型中的网络层和链路层合并了 OSI 模型中的网络层和数据链路层的功能。
  • OSI 模型是一个理论模型,而 TCP/IP 模型是实际应用最广泛的网络模型,符合实际网络通信的需求。

网络模型理解图

在这里插入图片描述

四、 网络编程三要素

1. IP地址:

  • 作用:IP地址是用来唯一标识网络中的设备(如计算机、路由器等)的地址,类似于房屋的门牌号,用于在网络中准确定位设备。
  • 分类:IP地址分为IPv4和IPv6,IPv4是32位地址,通常以点分十进制表示(如192.168.1.1),IPv6是128位地址,以冒号分隔的八组十六进制数表示(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
  • 用途:在网络通信中,发送方和接收方通过IP地址来确定数据包的发送和接收位置。
  • IP地址的组成网络号段+主机段

A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码

----可以配置256256256台主机

B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码

C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码

注意一个IP可以对应多个域名,但是一个域名在一个时刻只能对应一个IP

2. 端口号:

  • 理解:正在运行的程序的标识
  • 作用:端口号是用来标识主机上运行的进程或服务的编号,类似于房屋中的门牌号,用于在主机内部定位具体的应用程序。

  • 范围:端口号范围从0到65535,其中0到1023为系统保留端口,用于常见的服务(如HTTP的80端口、FTP的21端口)。

  • 用途:在网络通信中,数据包通过目标主机的IP地址和目标端口号来确定具体的应用程序或服务。

    注意:端口与协议有关:TCP和UDP的端口互不相干,同一个协议的端口不能重复,不同协议的可以重复

3. 协议:

  • 作用:协议是规定数据传输的格式和规则,确保通信双方能够正确地解析和处理数据。
  • 常见协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等。
  • 选择:根据需求选择合适的协议,如TCP提供可靠的数据传输,而UDP提供更快的数据传输但不保证可靠性。

协议理解图

(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等。

  • 选择:根据需求选择合适的协议,如TCP提供可靠的数据传输,而UDP提供更快的数据传输但不保证可靠性。

协议理解图
在这里插入图片描述

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

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

相关文章

JAVA学习笔记28(常用类)

1.常用类 1.1 包装类 1.包装类的分类 ​ 1.针对八中基本数据类型相应的引用类型–包装类 ​ 2.有了类的特点,就可以调用类中的方法 2.包装类和基本数据类型的转换 ​ *装箱:基本类型 --> 包装类型 //手动装箱 int n1 100; Integer integer ne…

Web3钱包开发获取测试币-Base Sepolia(二)

Web3钱包开发获取测试币-Base Sepolia(二) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b0c0ac86b04a496087471388532bc54a.png) 基于上篇 Web3钱包开发获取测试币-Polygon Mumbai(一) :https://suwu150.blog.csdn.net/article/details/137949473 我…

Centos7.9云计算CloudStack4.15 高级网络配置(3)

上两章的文章都是用的CloudStack的基本网络,这一篇我们来介绍CloudStack的高级网络,这里虚拟机用的是自己配置的内部网络,通过nat方式到物理网络。按照第一篇的文章,安装管理服务器和计算服务器。 并且在管理服务器配置好如下的全…

“EDM邮件营销”如何构建企业获客增长新赛道

在这个瞬息万变的数字时代,企业的营销策略不断进化,以求在激烈的市场竞争中脱颖而出。其中,“EDM(Electronic Direct Mail)邮件营销”作为一项经典且高效的营销手段,正借助先进的技术力量,重新焕…

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告 1.实践内容 (1)动手实践Metasploit windows attacker 任务:使用metasploit软件进行windows远程渗透统计实验 具体任务内容:使用windows Attacker/BT4攻击机尝试对wind…

一篇文章带您了解面向对象(java)

1.简单理解面向过程编程和面向对象编程 面向过程编程:开发一个一个的方法,有数据需要处理,我们就可以调用方法来处理。 package com.web.quictstart;public class demo1 {public static void main(String[] args) {totalScore("张三&q…

05 JavaScript学习:语法

JavaScript 是一种动态类型的脚本语言,广泛用于网页开发和构建交互式网页。JavaScript 的语法相对简单,但功能强大,它可以在客户端执行,并与HTML和CSS一起构建交互式的网页。 JavaScript 字面量 在 JavaScript 中,字…

CUDA编程---线程束洗牌指令

从Kepler系列的GPU(计算能力为3.0或更高)开始,洗牌指令(shuffle instruction)作为一种机制被加入其中,只要两个线程在相同的线程束中,那么就允许这两个线程直接读取另一个线程的寄存器。 洗牌指…

实验 3--表的基本操作与数据查询

文章目录 实验 3--表的基本操作与数据查询4.3.1 实验目的4.3.2 实验准备实验内容1.在 SSMS 中向数据库 YGKQ 中的表插入数据。2.使用 T-SQL 语句向 YGKQ 中的表插入数据。3.在 SSMS 中删除数据库 YGKQ 中的表数据。4.使用 T-SQL 语句删除数据库 YGKQ中的表数据。5.在 SSMS 中修…

高级IO和5种IO模型

目录 1. 高级IO1.1 IO的基本概念1.2 OS如何得知外设当中有数据可读取1.3 OS如何处理从网卡中读取到的数据包1.4 IO的步骤 2. 五种IO模型2.1 利用钓鱼来理解2.2 阻塞IO2.3 非阻塞IO2.4 信号驱动IO2.5 IO多路转接2.6 异步IO 3. 高级IO的概念3.1 同步通信 VS 异步通信3.2 阻塞 VS …

《C语言深度解剖》(9):深度剖析数据在内存中的存储

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

ubuntu22.04 CH340/CH34x 驱动安装

CH34x驱动地址:CH341SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 1、卸载旧驱动(如果存在) sudo rmmod ch341.ko 2、解压进入 driver 目录 unzip CH341SER_LINUX.ZIP cd CH341SER_LINUX/driver 3、编译 make 可能错误: make[1]…

Linux的学习之路:18、进程间通信(2)

摘要 本章主要是说一下命名管道和共享内存 目录 摘要 一、命名管道 1、创建一个命名管道 2、匿名管道与命名管道的区别 3、命名管道的打开规则 4、代码实现 二、system V共享内存 1、共享内存 2、共享内存函数 三、代码 四、思维导图 一、命名管道 1、创建一个命…

企业车辆管理系统平台是做什么的?

企业车辆管理系统平台是一种综合性的管理系统,它主要集车辆信息管理、车辆调度、车辆维修、油耗管理、驾驶员管理以及报表分析等多种功能于一体。通过这个平台,企业可以实现对车辆的全面管理,优化车辆使用效率,降低运营成本&#…

SpringAOP从入门到源码分析大全(四)SpringAOP的源码分析

文章目录 系列文档索引六、EnableAspectJAutoProxy源码分析1、AnnotationAwareAspectJAutoProxyCreator源码(1)wrapIfNecessary方法(2)createProxy 2、getAdvicesAndAdvisorsForBean查找所有Advisor(1)find…

进程概述与进程创建

进程概述 程序和进程是计算机科学中的基本概念,它们经常被提到,尤其是在操作系统的上下文中。这两个概念虽然紧密相关,但有明显的区别: 程序(Program) 程序是指存储在磁盘上的一组指令和数据&#xff0c…

【Vue3】$subscribe订阅与反应

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

STM32标准库编程与51单片机直接写寄存器的区别和联系

简介: 在学完51单片机之后,我们去学习32的时候,会发现编程的方法有很大的区别,让人非常的不适应,但是通过不断的调用相应外设的库函数之后,你也可以去编程STM32,来实现功能,但是你真…

nodejs版本过高导致vue-cli无法启动的解决方案

目录 前言异常现象解决方案总结 前言 之前使用软件管家升级了Nodejs,今天在运行Vue项目的时候老是报错,查了很多资料,最后确定是Nodejs版本过高导致的。 异常现象 E:\project\ry\RuoYi-Cloud\ruoyi-ui>npm run dev> ruoyi3.6.4 dev …

Attention和Transformer灵魂七问

1. 引言 最近,ChatGPT和其他聊天机器人将大语言模型LLMs推到了风口浪尖。这就导致了很多不是学ML和NLP领域的人关注并学习attention和Transformer模型。在本文中,我们将针对Transformer模型结构提出几个问题,并深入探讨其背后的技术理论。这…