首页 > 编程语言 >网络编程与OSI模型

网络编程与OSI模型

时间:2022-11-15 16:35:16浏览次数:30  
标签:协议 osi 七层 模型 编程 网络 OSI 数据包

目录

一、网络编程简介

1.什么是网络编程

​ 基于网络编程代码,能够实现数据的远程交互

2.学习网络编程的目的

​ 能够开发cs架构的软件

3.网络编程的发展史

​ 网络编程起源于美国军事,主要是想实现远程数据传输
​ 而要想实现远程通信,第一个需要具备的条件就是:物理连接介质

4.网络编程必备条件

​ (1)数据的远程交互

​ 1)早期的电话 --> 依赖于电话线

​ 2)早期的电脑 --> 网线

​ 3)笔记本电脑、移动电话 --> 网卡

​ 综上,可以发现实现数据的远程交互必备的基础条件是物理连接介质

二、OSI七层协议模型简介

0.操作系统基础

​ 操作系统OS,是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行

​ 计算机(硬件)--> os --> 应用软件

1.osi七层协议模型

​ Orders Sources Identification Technology

(1) osi七层协议规定的内容概括

​ 1)所有的计算机在远程数据交互的时候必须经过相同的处理流程

​ 2)计算机在制造过程中必须拥有相同的功能硬件

(2)osi七层协议模型:应、表、会、传、网、数、物

​ 这个模型把网络通信的工作分为7层,分别物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

1至4层被认为是低层,这些层与数据移动密切相关

5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层

常见的是整合之后的tco/ip五层或者tco/ip四层

image-20221115102752706

(3)接收网络消息,数据由下往上传递;发送网络消息,数据由上往下传递

2.osi七层协议之物理层

​ 第1层是物理层(也即[OSI模型]中的第一层也是最底层),物理层实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。

物理连接层主要用于确保计算机之间的物理连接介质 -->接收的数据都是二进制格式(在python中为bytes类型、二进制)

3.osi七层协议之数据链路层

​ 第2层是数据链路层,作用是将数据帧转换成而二进制位供1层处理。最重要的是我们应该理解网桥是什么,交换机可以看作是网桥,网桥仅关注以太网上的MAC地址。

数据链路层

​ 1)规定了电信号的分组方式

​ 2)以太网协议 :规定了计算机在出厂的时候都必须有一块网卡,网卡上有一串数字;该数字相当于上计算机的身份证号码是独一无二的;该数据的特征(以太网地址/MAC地址)是12位16进制数据(前六位产商编号,后六位流水线号码)

image-20221115105746130

4.osi七层协议之网络层

​ 第3层是网络层,网络层的作用就是选择合适的网间路由和交换结点, 确保数据及时传送,网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息-->源站点和目的站点地址的网络地址。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。

(1)IP协议规定了所有接入互联网的计算机都必须有一个IP地址,类似于身份证号

MAC地址是物理地址,可以看成是永远无法修改的

IP地址是动态分配的,不同的局域网内IP地址是不同的

​ IP地址特征:可以跨局域网传输,可以用来标识接入互联网的计算机

IPV4:点分十进制

0.0.0.0 - 255.255.255.255

总共42个IP地址

IPV6:点分十六进制

image-20221115113906237

(2)ARP协议:即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出包头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

(3)路由协议:如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。

5.osi七层协议之传输层

​ 第4层是处理信息的传输层,第4层的数据单元也称作数据包(packets,第4层提供端对端的通信管理。

(1)PORT协议(端口协议)

​ 给应用程序分配端口号,通过端口号来标识一台计算机上面的某一个应用程序

​ 端口号的范围:0-65535

​ 端口号的特征:动态分配

​ 端口号建议:

​ 端口号:0-1024 系统默认需要使用
​ 端口号:024-8000 常见软件的端口号

(2)URL:统一资源定位符

​ uniform resource locator

网址:本质是由IP和PORT组成的

IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序

(3)域名解析:将网址解析成IP+PORT

​ IP:PORT ip地址:端口

​ 180.101.49.13:80 --> 百度的IP地址:百度的PORT端口

image-20221115161728596 img

三、网络相关专业名词

计算机之间想要实现数据集交互必须要‘连接’到一起

1.交换机

​ 能够将计算机互连在一起

2.广播

​ 首次查找接入同一个交换机的其他计算机,需要进行广播

3.单播

​ 首次被查找的计算机回应查找它的计算机,叫做单播

image-20221115110812479

4.广播风暴

​ 接入同一台交换机的多台计算机同时进行广播

5.局域网

​ 单个交换机组成的网络,可以看作是一个局域网;同一个局域网中的计算机,可以基于MAC地址作数据交互(不是一个局域网无法直接通过MAC地址访问)

6.广域网

​ 可以简单的理解为范围更大的局域网

7.互联网

​ 由所有的局域网、广域网连接到一起形成的网络

互联网 <-- 广域网 <-- 局域网

8.路由器

​ 不同的局域网之间是无法直接实现数据交互的,需要路由器连接并分配ip地址 (路由器可以实现不同局域网之间的数据交互)

路由器:常见路由器、基站(4G 5G网络)

9.网关Gateway

​ 网关(Gateway)又称网间连接器、协议转换器。

​ 网关在网络层以上实现网络互连,是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间。仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。

网关是一个翻译器,网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层--应用层

image-20221115160436213

标签:协议,osi,七层,模型,编程,网络,OSI,数据包
From: https://www.cnblogs.com/DuoDuosg/p/16892855.html

相关文章

  • 网络编程
    软件开发架构1.c/s架构类似appclient:客户端server:服务端优势:可以高度定制化客户端内容2.b/s架构类似网站(本质也是c/s架构)browser:浏......
  • 网络编程1
    今日内容概要软件开发架构架构发展趋势网络编程前戏OSI七层协议各种重点协议今日内容详细软件开发架构规定了程序的请求逻辑、功能分块1.C/S架构 Client:客户......
  • 网络编程
    一.楔子你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好。但是如果这两个程序之间想要传递一个......
  • 进入python的世界_day31_网络编程—— 两种软件开发架构、网络编程之OSI七层协议
    一、软件开发架构1.第一种——C/S架构Client客户端<——————>Server服务端我们平时下载的软件包,基本都是客户端软件使用这个软件包就有一张令牌去进入店铺享受......
  • 计算机网络——软件开发架构、网络编程、OSI七层协议
    计算机网络——软件开发架构、网络编程、OSI七层协议一、软件开发架构​ 规定了程序的请求逻辑、功能分块​ 软件设计的大方向:统一接口1、C/S架构client:客户端s......
  • 网络编程之OSI协议
    1.什么是网络编程? 基于网络编写代码,能够实现数据的远程交互2.学习网络编程的目的 能够开发cs架构的软件3.网络编程的起源"""最早起源于美国军事想实现计算机之间数......
  • 美团领导力模型
    管理知识不仅可以管理团队,也可以用于影响别人,不仅可以用于工作,也可以用于生活,任何人都可以学管理。管理的大框架是定策略、建团队、拿结果:定策略:如果战略没理清楚,管理者......
  • 软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、
    软件开发架构规定了程序的请求逻辑、功能分块1.C/S架构 Client:客户端 Server:服务端 """ 我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件......
  • js异步编程的三种模式
    写在前面javascript语言的执行环境是"单线程"(singlethread),就是指一次只能完成一件任务。如果有多个任务,就必须排队,等前面一个任务完成,再执行后面一个任务,以此类推。......
  • js函数式编程讲解
    什么是函数式编程是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简......