网编(小白心得osi七层协议)
1 C/S B/S架构
C:client端(客户端)
B:browse 浏览器
S: server端
(客户端)C/S架构:基于客户端与服务端之间的通信
例如 qq 游戏,抖音
- 优点:个性化设置,响应速度快(比bs快),
- 缺点:开发和维护成本高,占用空间,用户固定
(浏览器)B/S架构:基于浏览器与服务端之间的通信
例如 谷歌浏览器,火狐
- 优点:开发维护成本低,占用空间低,用户不固定
- 缺点:功能单一,没有个性化设置,响应速度慢
2网络通信原理
80年代 固定电话联系(没有推广普通话)
- 两台电话之间一堆物理连接介质连接
- 拨号,所帝国对方电话的位置
由于当时没有统一普通话,所以你如果和河南,山西,广西,等朋友沟通
你必须学当地的方言
推广普通话,统一交流方式- 两台电话之间一堆物理连接介质连接
- 拨号,锁定对方电话的位置
- 统一交流方式
全球范围内交流:
1.两台电话之间一堆物理连接介质连接
2. 拨号,锁定对方电话的位置
- 统一交流方式(英语)
话题转回互联网通信:
计算机如何连接
1. 两台计算机之间一堆物理连接介质连接(网工干活)
2. 找到对方对方计算机软件的位置
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地址+广播)
消息一经广播发出,所有的局域网(计算机)都能接收到消息,分析消息 是就留下不算就丢弃
效率低
计算机只能在同一个局域网内进行广播:范围大了会产生广播风暴,效率极低
还有两个没有解决:
- 不同局域网如何通信?
- 软件与软件的通信,而不是计算机之间的通信
网络层
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七层协议)的更多相关文章
- 网络编程之OSI七层协议略析
OSI七层协议 1 物理连接层 用高低电平模拟二进制数01012 数据链路层 以太网协议,Ethernet,要求连入网络的计算机必要要有一块网卡,并且规定全球每一块网卡的mac 地址都不一样,用12位 ...
- 网络编程之 OSI七层协议
内容目录: 1.软件开发架构 2.OSI七层协议 3.每层协议介绍 1.软件开发架构 c/s架构: c:客户端 s:服务端 b/s架构: b:浏览器 s:服务器 本质:b/s其实也是c/s 2.OSI ...
- OSI七层协议模型、TCP/IP四层模型学习笔记
1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...
- 网络编程网络协议篇(osi七层协议)
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...
- 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议
Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: ...
- 大话OSI七层协议
大白话OSI七层协议 互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层.实际上这个七层是不存在的.没有这七层的概念,只是人为的划分而已.区 ...
- day30 OSI七层协议
网络编程 什么是网络编程? 网络编程就是编写基于网络传输数据的应用程序 为什么需要网络编程? 在我们以前的编程中,所有的数据都是存在于本地,且只能由我们自己使用,不能进行跨电脑通讯,但是在实际的生活中 ...
- OSI七层协议模型、TCP/IP四层模型
OSI七层协议模型 TCP/IP四层模型 首先我们梳理一下每层模型的职责: 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据: 网络层:定义IP地址,确认主机所在的网络位置,并通过I ...
随机推荐
- cogs.12运输问题2题解
乍一看貌似和运输问题1没有任何区别,但本题有一个有意思的东西叫做下限,我个人称之为非强制下限,因为本题中要求的实际是我走这条边这条边才至少走下限的流,虽然出题人没说,但从样例来看确实是这样的,而强制下 ...
- MyBatis简单使用方式总结
MyBatis简单使用方式总结 三个部分来理解: 1.对MyBatis的配置部分 2.实体类与映射文件部分 3.使用部分 对MyBatis的配置部分: 1.配置用log4J显式日志 2.导入包的别名 ...
- MFC在一个工程中启动其他工程的exe文件
说明:有的时候把两个工程合并,但是偷懒不想在工程中添加代码,所以想到了这个办法,仅限偷懒哈哈哈哈 方法:新建一个主程序,在主程序的界面中添加按钮,在按钮的程序代码中添加以下语句: void CMain ...
- 使用docker搭建gitlab服务器
简单记录Docker的使用和GitLab的搭建 Docker基础篇 没有sudo权限 安装docker 基础命令 docker安装mysql和配置 Dockerfile常用命令 制作镜像 发布镜像 容 ...
- 作为前端程序员的她凭什么成为Judy团队第一位助教?
Judy团队第一位助教-俊英子:正直,阳光,向上,自律,优秀的女孩,当然这些词语还是无法描述出她的优秀 英子,我们第一次的时候,2月25号,下午16:26分,她突然发了一段长的文字我. 她说她一直在读 ...
- MyBatis一对多和多对多xml配置
MyBatis一对多和多对多xml配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ma ...
- NameNode故障处理方法
NameNode故障处理方法 简述 NameNode故障后,可以通过下列两种方式进行恢复数据: 方法一(手动):将SecondaryNameNode文件下的数据复制到NameNode中 方法二(程序) ...
- [leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal(medium)
原题地址 思路: 和leetcode105题差不多,这道题是给中序和后序,求出二叉树. 解法一: 思路和105题差不多,只是pos是从后往前遍历,生成树顺序也是先右后左. class Solution ...
- php_review_day1
php中的小知识点(小白笔记整理):-----------------------------------------------------读取本地文件内的数据: file_get_contents ...
- Java中常见的异常类型
一. Java中常见的异常类 异常类 说明 ClassCastException 类型准换异常 ClassNotFoundException 未找到相应类异常 ArithmeticException ...