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

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.mzph.cn/pingmian/1756.shtml

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

相关文章

day07 51单片机-串口通信

51 单片机-串口通信 1 串口通信 1.1 需求描述 本案例讲解如何通过串口和PC以9600波特率,无校验位、1停止位通信。最终实现PC向单片机发送字符串,单片机回复PC。本案例中采用串口1通信。 1.2 硬件设计 1.2.1 串口工作原理 串口是将数据按照比特逐一发送的通信接口。在串…

Python 开发实现登陆和注册模块

Python 开发实现登陆和注册模块 一、案例介绍 本例设计一个用户登录和注册模块,使用Tkinter框架构建界面,主要用到画布、文本框、按钮等组件。涉及知识点:Python Tkinter界面编程、pickle数据存储。本例实现了基本的用户登录和注册互动界面…

web前端 html5+css3相关知识点(跟着黑马学)8

先总结一下网页常见的布局方式: 1. 标准流 块级元素独占一行 -> 垂直布局 行内元素/行内块元素一行显示多个 -> 水平布局 2. 浮动 可以让原本垂直布局的块级元素变成水平布局。 3. 定位 可以让元素自由的摆放在网页的任意位置 一般用于盒子之间的层叠…

分布式锁(Redis)

一、序言 本文和大家聊聊分布式锁以及常见的解决方案。 二、什么是分布式锁 假设一个场景:一个库存服务部署在上面三台机器上,数据库里有 100 件库存,现有 300 个客户同时下单。并且这 300 个客户均摊到上面的三台机器上(即三台…

React 19 带来了 JSX 运行时的重要更新

在 React 的发展历程中,JSX 运行时一直扮演着重要的角色。在以前的的版本,JSX 运行时会克隆传入的 props 对象,这背后有着两大原因。 历史原因 React 保留了一些特殊的 prop 名称,如 key 和在 React 19 之前的 ref。这些 prop 并…

SpringBoot整合Swagger3生成接口文档

一:前言 Swagger 是一个 RESTful API 的开源框架,它的主要目的是帮助开发者设计、构建、文档化和测试 Web API。Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式,以提高 API 的可读性、可靠性和易用性,同时降低 …

深度图转点云

一、理论分析 二、其他分析 1、相机内参 相机内参主要是四个参数fx,fy,u0,v0。要明白相机内参就是相机内部参数,是参考像素坐标系而言,有了这个前提,这四个参数也就很好理解了。 (1)首先,。其中F是相机的…

Oracle中的 plsql语法

01-plsql 为什么要plsql 复杂的业务逻辑 可以使用 编程语言实现 sql无法实现 plsql也可以实现复杂的业务逻辑 为不直接使用编程语言 而是学习plsql plsql会比直接使用 编程语言 速度更快 基本语法: [declare --声明变量 变量名 变量类型 ] begin --代码逻辑 …

Springboot Gateway 报错Failed to resolve “bogon”的原因及解决办法

一、问题出现原因及初步分析 今天遇到一个奇怪的错误,一个一直正确运行的微服务后台,突然无法访问,如何重启都会报错。 想到近期有人在服务器上安装过其它服务,因此,考虑可能是配置问题,可配置问题修复后…

1.基于Springboot对SpringEvent初步封装

一:前置知识 Spring Event是Spring框架提供的一种事件机制,用于处理组件之间的通信。在复杂的系统中,模块或组件之间的通信是必不可少的。Spring Event可以用于以下场景: 1.系统间解耦:模块或组件之间通过事件进行通…

账号安全基本措施1

一、系统账号清理 1.1 将用户设置为无法登录 useradd -s /sbin/nologin lisi shell类型设置为/sbin/nologin用户将无法使用bash或其他shell来登录系统。 1.2 锁定用户。passwd -l 用户名 正常情况下是可以送普通用户切换到其他普通用户的 当锁定密码后passwd -l lisi就用普…

LeetCode:组合求和III之回溯法

题目 题目链接 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。题目图解 ** ** cpp代码 class …

AI预测体彩排列3第2套算法实战化测试第1弹2024年4月22日第1次测试

从今天开始,开始新一轮的测试,本轮测试,以6码为基础,同步测试杀号情况,争取杀至4-5码。经过计算,假如5码命中,即每期125注,投入250元,十期共计2500元,则命中率…

牛客NC233 加起来和为目标值的组合(四)【中等 DFS C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/7a64b6a6cf2e4e88a0a73af0a967a82b 解法 dfs参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** param nums int整型…

日本二次元团建国内院线:一周一部,占据36.2%票房

从《你想活出怎样的人生》开始,到《哈尔的移动城堡》结束,日本动画正在占据国内院线的整个4月份档期。 包括《数码宝贝02:最初的召唤》、《间谍过家家 代号:白》多部作品在内,整个国内四月份院线日本动画平均一周上映…

【Linux实践室】Linux高级用户管理实战指南:Linux用户与用户组编辑操作详解

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux查看用户属性命令2.1.1 👻…

数据结构PT1——线性表/链表

1:顺序存储实现(数组实现) Data: a1 a2 .....ai ai1 .... an .... typedef struct LNode *List; //指向LNode的指针,这是typedef的,你可以随时声明,而不加typedef只是创建一个 struct LNode{ //结构体成员ElementT…

【前端】掌握按钮的显示与隐藏

目录 一、前言二、实现显示与隐藏的四种方式1、CSS属性控制2、JavaScript控制3、Vue.js响应式控制 三、需求背景四、代码实现1、定义变量2、绑定事件3、监听选中的学生4、返回return 五、整体效果1、没有勾选学生2、已勾选学生 六、设置按钮显示与隐藏的优势利弊1、优势2、劣势…

MySQL慢查询怎么办?需要关注Explain的哪些关键字?

目录 1-引言:什么是慢查询1-1 慢查询定义1-2 为什么排查慢查询 2-核心:慢查询排查2-1 慢查询定位2-2 慢查询解决2-2-1 Explain 排查慢查询2-2-2 Explain 重点关键字 3-总结:慢查询知识点小结 1-引言:什么是慢查询 1-1 慢查询定义…