当前位置: 首页 > news >正文

网络编程初识(详细易懂)

目录

一.网络发展识

1.独立模式:计算机之间是相互独立的.

2.网络互连

3. 局域网

4. 广域网

二.网络通信基础

思考问题:

2.1 Ip

2.2 端口号

2.3 协议

2.4. 五元组

三.协议分层

3.1 什么是协议分层

3.2 分层的作用

3.3 OSI七层模型

3.4 Tcp/Ip五层模型

3.5 封装和分用

四.网络数据传输过程的解析


一.网络发展识

1.独立模式:计算机之间是相互独立的.

2.网络互连

需要计算机与计算机之间进行数据交互和数据共享的时候,网络互连就出现了.

网络互连:多台计算机之间能够相互连接完成数据共享.

而数据共享就是我们说的网络传输,就是利用计算机之间通过网络进行数据的传输,也被称为网络通信.

当然根据网络互连的规模不同,又可以把网络分为广域网和局域网.

3. 局域网

局域网 即:Local Area Network 简称LAN

局域网就是局部组建一个私有网络,在连接了这个私有网络内的计算机之间可以进行通信,没有连接这个私有网络的计算机是无法进行通信的,当然这个网络仅限局部.

而组建这样的局域网常见的方式有以下几种:

网线直连,集线器组建,交互机组建,交互机和路由器组建.

4. 广域网

广域网,即 Wide Area Network,简称WAN.

广域网就是局域网的一个扩展,局域网只能在这个特定的范围内访问,就好像城市A的局域网只能让城市A的城市居民进行访问,而城市B的居民想访问城市A的局域网是访问不了的,反过来也是不行的,而广域网的出现就是为了解决城市A,B的局域网之间建立网络通信,让两个城市的局域网之间能够相互访问。

二.网络通信基础

网络互连就是为了解决网络通信,就是为了网络的数据传输

思考问题:

我们在进行网络数据的传输的时候,我们怎么判定是对哪台主机进行的数据传输?

我们在传输的过程中,不能只有传输而没有接受,所以,我们又应该如何判断哪台主机接受的数据?

有了传输和接受数据的方式,那我们又是怎样知道我们传输的是什么内容的?

2.1 Ip

ip就是用来标示网络主机或者网络设备的网络地址,简单说,Ip地址用于定位主机的网络地址.

好比发快递一样,需要知道对方的收获地址,我们才能将快递送到该地址.

格式:Ip地址是一个32位的二进制数,但是通常用“点十分进制”表示:127.0.0.1

特殊Ip:127.0.0.1 是用于本机环回测试.

2.2 端口号

我们发快递不仅需要目的地址,还需要人来接收快递,而端口号就是用来接收传输的网络数据的,简单说:端口号就是用来定位主机中的进程的.

格式:一般是在0~65535范围内的数字.

注意:两个不同的进程不能绑定同一个端口号,但是一个进程可以绑定多个端口号.

2.3 协议

网络协议 简称 协议,它就是用来网络数据传输经过所有网络设备都必须遵守的一个规则.

作用:在这个规则下 它能建立网络数据传输的连接和识别传递的数据类型(就是我们传输的内容,是个什么东西).只有遵守这个约定,计算机之间才能相互通信交流.

网络协议三要素

语法:即数据与控制信息的结构或格式.

就好比我们打电话,规定使用普通话进行交流

语义:即需要发出何种控制信息,完成何种动作以及做出何种响应.

就是我们在通话的时候,一方说了一番话,另一方给出回应.

时序:即事件实现顺序的详细说明.

还是通电话,一位老板跟员工通电话,这个老板先讲什么,后讲什么,讲话速度,这就是时序.

协议(protocol)最终体现为在网络上传输的数据包的格式.

知名协议的默认端口

0~65535这是端口号范围,而0~1023就是知名端口,好比酒店的vip套房一样.

2.4. 五元组

在Tcp/Ip协议中, 一次网络通信就是用一个五元组来标识的

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

三.协议分层

3.1 什么是协议分层

协议分层就像我们打电话一样

两人用手机进行沟通就好比是定义了一个电话协议(规定双方用手机这个工具进行通信)

在通信的时候两人又约定用中文进行交流就好比定义了一个中文协议(规定双方以中文协议进行传输数据)

咱们看,上述的打电话例子中,就有两层协议,而在我们的网络传输中将会有更多的层级协议.

3.2 分层的作用

协议分层就像是一个接口,定义好两个接口规范让双方遵守这个规范就行

类似于类中定义接口,一方为接口实现类,一方为接口的调用类,让代码清晰易懂,而分层的作用就是使数据在网络传输中更加清晰,更加方便。

3.3 OSI七层模型

OSI:即Open System Interconnection,开放系统互连.

OSI七层网络模型是把网络从逻辑上分为七层,并且主要的功能就是帮助不同类型的主机实现数据传输.

OSI最大的优点就是将服务,接口和协议三个概念明确的分隔开.使不同系统不同网络之间在七层网络模型的结构下实现了网络通信.

OSI七层网络模型七大结构:

分层名称

功能

每层功能概况

7

应用层

针对特定应用的协议

针对每个应用的协议:

电子邮件->电子协议

6

表格层

设备固有数据格式和网络标准数据格式的转换

接受不同表现形式的信息,如文字,视频等

5

会话层

负责建立和断开通信连接

何时建立连接,何时断开连接,保持多久连接

4

传输层

管理两个节点之间的数据传输

是否有数据丢失

3

网络层

地址管理和路由选择

由那个路由来传递到目标地址

2

数据链路层

互连设备之间传送和识别数据帧

数据帧和比特流之间的转换

1

物理层

以 0 ,1 代表电压的高低灯光的闪灭

比特流与电子信号之间的交互

由于OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现.

实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来

实现.

3.4 Tcp/Ip五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程

访问协议(Telnet)等。我们的网络编程主要就是针对应用层.

传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发

送到目标主机.

网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表

的方式规划出两台主机之间的数据传输的线路(路由).路由器(Router)工作在网路层.

数据链路层:负责设备之间的数据帧的传送和识别.(交换机就是在数据链路层)

物理层:负责光/电信号的传递方式.(集线器工作在物理层)

3.5 封装和分用

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报

(datagram),在链路层叫做帧(frame).

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装

(Encapsulation).

首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中

的 "上层协议字段" 将数据交给对应的上层协议处理.

四.网络数据传输过程的解析

咱们以qq发信息为例子 A发信息给B,来解析一下网络数据传输的基本流程

http://www.lryc.cn/news/597876.html

相关文章:

  • 嵌入式linux下的NES游戏显示效果优化方案:infoNES显示效果优化
  • Python进阶知识之pandas库(一)基础数据类型
  • Android热修复实现方案深度分析
  • Android root和完整性检测实现方案深度分析
  • 海信IP501H-IP502h_GK6323处理器-原机安卓9专用-TTL线刷烧录可救砖
  • HTTPS证书体系,证书加密流程(通信体系)
  • lumerical——光纤布拉格光栅(Fiber Bragg gratings)
  • Linux 或者 Ubuntu 离线安装 ollama
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-最近七天微博发布量实现
  • pig cloud框架中引入websocket
  • 车载绝缘子放电状态检测系统数据分析软件需求说明书
  • python自动化测试框架,封装方法方式
  • WebGIS 常用坐标系
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(8):自動詞 & 他動詞 「~ている」「~ておく」「~てある」
  • 【西北工业大学公开课】导引系统原理(全61讲)周军 -个人笔记版 5000字
  • JVM、Dalvik、ART垃圾回收机制
  • 大模型就业方向
  • OpenCV(02)图像颜色处理,灰度化,二值化,仿射变换
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(3)
  • 解决sparksql创建出来的数据库路径错误的问题
  • VSCode 开发 STM32 - clangd 带来的极致补全体验
  • 13. event.target 和 event.currentTarget 区别
  • 加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时,该值是图像的有效文件路径“
  • ElasticSearch基础数据查询和管理详解
  • 电商项目_秒杀_压测
  • 多服务器批量发布软件
  • SQL难点突破之复杂业务逻辑的SQL查询实战
  • 力扣刷题(第九十六天)
  • arm64架构开发板上调用奥比中光深度摄像头用于视觉测距
  • 利用DeepSeek编写一个使用lzav算法的文件压缩工具