1 C/S B/S架构

​ C:client端(客户端)

​ B:browse 浏览器

​ S: server端

​ (客户端)C/S架构:基于客户端与服务端之间的通信

​ 例如 qq 游戏,抖音

  • 优点:个性化设置,响应速度快(比bs快),
  • 缺点:开发和维护成本高,占用空间,用户固定

​ (浏览器)B/S架构:基于浏览器与服务端之间的通信

​ 例如 谷歌浏览器,火狐

  • 优点:开发维护成本低,占用空间低,用户不固定
  • 缺点:功能单一,没有个性化设置,响应速度慢

2网络通信原理

80年代 固定电话联系(没有推广普通话)

  1. 两台电话之间一堆物理连接介质连接
  2. 拨号,所帝国对方电话的位置

    由于当时没有统一普通话,所以你如果和河南,山西,广西,等朋友沟通

    你必须学当地的方言

    推广普通话,统一交流方式

    1. 两台电话之间一堆物理连接介质连接
    2. 拨号,锁定对方电话的位置
    3. 统一交流方式

全球范围内交流:

1.两台电话之间一堆物理连接介质连接

2. 拨号,锁定对方电话的位置

  1. 统一交流方式(英语)
  1. 话题转回互联网通信:
  2. 计算机如何连接
  3. 1. 两台计算机之间一堆物理连接介质连接(网工干活)
  4. 2. 找到对方对方计算机软件的位置
  5. 3. 遵循一揽子互联网通信协议

3osi七层协议

发送层层打包

接受层层解包

  • 简单串联五层协议以及作用

物理层

就是网线 双绞线连接介质等

物理层发送比特流:01010100101010

发送比特流会有什么问题

数据要进行有规律的分组物理层达不到

分组是数据链路层做到事情

数据链路层

数据链路层对比特流进行分组

最开始从事互联网企业就是美国几家公司

各家有个各家自定义的分组标准,统一了标准对数据分组的标准

以太网协议

对比特流进行合理分组

将一组数据存储010101叫做一帧 ,数据报

​ head | data(晚上约么)没有分割线

​ head固定的长度:18个字节

​ 源地址:6个字节

​ 目标地址:6个字节

​ 数据类型:6个字节

data:最少是46字节 最大1500个字节

一帧数据:最少64个字节,最大1518字节#必须满足最少

一帧数据|一帧数据。。。找到目标的地址 一帧就是头

每个电脑都有一个网卡,网卡都记录一个独一无二的地址

(物理地址)mac地址

就是计算机上网网卡上标注的地址

12位16进制数组成:前六位是厂商编号,后六位是流水线号

源mac地址 目标mac地址 数据类型|data

data消息

例如:’10-E7-C6-F4-5C-EB‘

计算机的通信方式

同一局域网内,通过广播的形式通信。(mac地址+广播)

消息一经广播发出,所有的局域网(计算机)都能接收到消息,分析消息 是就留下不算就丢弃

效率低

计算机只能在同一个局域网内进行广播:范围大了会产生广播风暴,效率极低

还有两个没有解决:

  1. 不同局域网如何通信?
  2. 软件与软件的通信,而不是计算机之间的通信

网络层

ip协议(网络层)

​ 找到对方确定局域网(子网)的位置

IP协议:四段分十进制

192.168.0.12 取值范围0255.0255.0255.0255

子网掩码:A关于子网掩码 255.255.255.0

ip地址+子网掩码 按位与运算计算是否统一局域网(子网段)

网关路由器地址192.168.1.1

计算172.16.10.1与172.16.10.128

前3段是按位与 都是1去1 第四段全部是0

172.16.10.0是网段被占用255 和 .1

ARP协议:从对方的ip地址获取到对方的mac地址

源IP 源码mac 目标mac 源ip 目标ip 数据

发送到交换机--》路由器 广播的形式发出去

目标计算机收到消息

回消息

源码mac 目标mac 源ip 目标ip 数据

不在同一个网段

路由表 交换机

传输层

端口协议TCP UDP TCP协议

65535端口 1~1023操作系统专门使用的端口

举例:3306数据库

自己开发软件都是8080以后的端口号

确定软件在计算机的位置

4UDP TCP协议(传输层)

TCP可靠,面向连接的流式协议效率低 面向链接的协议,流式协议,安全可靠,效率低,传输文件

UDP用户数据包协议不可靠无连接 传输效率高 视频流

无阻塞

5Tcp协议(传输层)

建立连接 有一个数据传输的通道 可靠的传输

文件传输(打电话)

简化版

syn=1 请求连接 seq=x发送自己的标识

ack=1+x 同意连接 syn=1 seq=x 服务端也需要建立一个通道



三次握手和四次挥手

挥手断开连接#服务端没有发完信息 所以不能直接断

客户端到服务端

fin=1 请求断开 seq=y发送身份

ack=1+y同意断开

服务端到客户端

发送信息建立连接 广播找到路由

syn洪水攻击:制造大量的假的无效的ip请求服务器,致使正常的ip访问不了服务器

应用层

自己定义的协议。

广播(局域网内)+mac地址(计算机位置)+ip(局域网位置)+端口(软件在计算机的位置)

有了以上四个参数:你就可以确定世界上任何一个计算机的软件的位置

层次加包 层层解包

表 会 传 网 数 物

  • 数据链路层补充

    同一个局域网通过广播的形式发送数据

    交换机的mac自主学习功能

    先广播在单播

    第一次广播 后来单播

    一个交互那就的5个接口:5个计算机

    接口1:源mac lC-1B-0D-A4-E644

    2,3,4,5口都会收到消息

    5口是最终的目标地址,交换机就会将5口对应上

    先广播在单播

    1:1C-1B-0D-A4-E6-44

    2:FF-FF-FF-FF-FF-FF

    3:FF-FF-FF-FF-FF-FF

    4:FF-FF-FF-FF-FF-FF

    5:FF-FF-FF-FF-FF-FF

    当5个口都对应上具体的mac地址,2口再次发消息,就不会广播了,所以单播发送

    前提是必须知道对方的mac地址才能以广播的形式发消息,实际上网络通信中,你只要知道对方的ip与自己的ip即可

网编(小白心得osi七层协议)的更多相关文章

  1. 网络编程之OSI七层协议略析

    OSI七层协议 1 物理连接层 用高低电平模拟二进制数01012 数据链路层 以太网协议,Ethernet,要求连入网络的计算机必要要有一块网卡,并且规定全球每一块网卡的mac 地址都不一样,用12位 ...

  2. 网络编程之 OSI七层协议

    内容目录: 1.软件开发架构 2.OSI七层协议 3.每层协议介绍 1.软件开发架构 c/s架构: c:客户端 s:服务端 b/s架构: b:浏览器 s:服务器 本质:b/s其实也是c/s 2.OSI ...

  3. OSI七层协议模型、TCP/IP四层模型学习笔记

    1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...

  4. 网络编程网络协议篇(osi七层协议)

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  5. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

  6. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  7. 大话OSI七层协议

    大白话OSI七层协议 互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层.实际上这个七层是不存在的.没有这七层的概念,只是人为的划分而已.区 ...

  8. day30 OSI七层协议

    网络编程 什么是网络编程? 网络编程就是编写基于网络传输数据的应用程序 为什么需要网络编程? 在我们以前的编程中,所有的数据都是存在于本地,且只能由我们自己使用,不能进行跨电脑通讯,但是在实际的生活中 ...

  9. OSI七层协议模型、TCP/IP四层模型

    OSI七层协议模型 TCP/IP四层模型 首先我们梳理一下每层模型的职责: 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据: 网络层:定义IP地址,确认主机所在的网络位置,并通过I ...

随机推荐

  1. python中变量在内存中的存储与地址关系解析、浅度/深度copy、值传递、引用传递

    ---恢复内容开始--- 1.变量.地址 变量的实现方式有:引用语义.值语义 python语言中变量的实现方式就是引用语义,在变量里面保存的是值(对象)的引用(值所在处内存空间的地址).采用这种方式, ...

  2. 异步编程之Async,Await和ConfigureAwait的关系

    在.NET Framework 4.5中,async / await关键字已添加到该版本中,简化多线程操作,以使异步编程更易于使用.为了最大化利用资源而不挂起UI,你应该尽可能地尝试使用异步编程.虽然 ...

  3. 洛谷P4994 终于结束的起点 题解

    求赞,求回复,求关注~ 题目:https://www.luogu.org/problemnew/show/P4994 这道题和斐波那契数列的本质没有什么区别... 分析: 这道题应该就是一个斐波那契数 ...

  4. 个人永久性免费-Excel催化剂功能第35波-Excel版最全单位换算,从此不用到处百度找答案

    全球化的今天,相信我们经常可以有机会接触到外国的产品,同时我们也有许多产品出口到外国,国与国之间的度量单位不一,经常需要做一些转换运算,一般网页提供这样的转换,但没有什么比在Excel上计算来得更为方 ...

  5. Android之无限轮播图源代码

    Android轮播广告图是大家经常用到的一个控件今天便撸了一把代码 实现步骤 使用Viewpager进行实现图片滑动 设置ViewPager的数据,让其无限切换 Activity代码 public c ...

  6. C#3.0新增功能01 自动实现的属性

    连载目录    [已更新最新开发文章,点击查看详细] 在 C# 3.0 及更高版本,当属性访问器中不需要任何其他逻辑时,自动实现的属性会使属性声明更加简洁. 它们还允许客户端代码创建对象. 当你声明以 ...

  7. C#编程之IList、List和ArrayList

    额...今天看了半天Ilist<T>和List<T>的区别,然后惊奇的发现使用IList<T>还是List<T>对我的项目来说没有区别...  在C#中 ...

  8. python基础之list列表的增删改查以及循环、嵌套

    Python的列表在JS中又叫做数组,是基础数据类型之一,以[]括起来,以逗号隔开,可以存放各种数据类型.嵌套的列表.对象.列表是有序的,即有索引值,可切片,方便取值.列表的操作和对字符串的操作是一样 ...

  9. thinkphp 插件

    1.切换到项目根目录,使用composer require 5ini99/think-addons:dev-master命令安装thinkphp插件 如果是root用户或是管理员执行的话会有提示 等一 ...

  10. chapter01作业

    1. 请用命令查出ifconfig命令程序的绝对路径 [root@localhost chen]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些是内 ...