网络通信部分之bs/cs架构,网络概念,osi七层网络模型,TCP/UDP协议---day27
1.网络开发的两大架构c/s,b/s
# ### 1.网络开发的两大架构
a文件 -> b文件 借助c文件
a文件和b文件进行数据交流,借助c文件中转数据
a文件把数据放在c文件中,b文件从c文件取
b文件把数据放在c文件中,a文件从c文件取
构成了最早期的数据交互的原理 ->socket(套接字)的模型
socket(套接字)是收发数据的一个工具 后来有了网络之后
a文件中的数据,可以通过网络协议,转化成101001电信号,进行发送
a文件借助socket发送数据
b文件借助socket接收数据 #两大架构
c/s
c => client 客户端
是具体的一个软件,比如qq,微信,lol等
s => server 服务端
天河三号 百亿亿次 b/s
b => browser 浏览器
通过输入网址,访问对方的服务器,对方的服务器响应请求之后
把对应的数据给你返回,就可以在浏览器看到了
s => server 服务端 #b/s c/s 两大架构 更好的是b/s 是未来的发展方向
未来更多向b/s 发展,像微信小程序,支付宝程序
(1)省去复杂漫长的下载安装环节,节省手机或者电脑的硬盘空间
(2)因为手机便捷性,随时随地可以访问到网站和相应的服务,提升效率,加快速度
2.网络的概念
# ### 2.网络的概念
#(1)ip
ip => 查看本地ip地址 ipconfig
ip地址的最后一位0或者255 两个数字不能用
一般最后一位0表达的是网段
255代表广播地址 #(2)网段:
判别的依据:如果ip地址和子网掩码相与 得到的值相同就是同一网段
子网掩码:区分网段和主机和一串ip
# 案例一
#ip1 192.168.31.43 通过bin转换成二进制
11000000 10101000 00011111 00101011
#子网掩码 255.255.255.0
11111111 11111111 11111111 00000000
#ip1 & 子网掩码 两两为1就为1,否则为0
11000000 10101000 00011111 00000000
ip1的网段:192.168.31.0 #ip2 192.168.30.44
11000000 10101000 00011110 00101100
#子网掩码 255.255.255.0
11111111 11111111 11111111 00000000
# ip2 & 子网掩码
11000000 10101000 00011110 00000000
ip2的网段:192.168.30.0 ip1和ip2的网段不同,不一样,所以不在同一网段不能通信 #案例二 改变子网掩码
#ip1 192.168.31.43
11000000 10101000 00011111 00101011
#子网掩码 255.255.0.0
11111111 11111111 00000000 00000000
#ip1 & 子网掩码
11000000 10101000 00000000 00000000
ip1的网段:192.168.0.0 #ip2 192.168.30.44
11000000 10101000 00011110 00101100
#子网掩码 255.255.0.0
11111111 11111111 00000000 00000000
#ip2 & 子网掩码
11000000 10101000 00000000 00000000
ip2的网段:192.168.0.0 结论:ip1和ip2的网段相同,所以可以通信
ping 域名 可以查看网络是否通常(顺便可以拿到ip) #(3) 端口:某个程序与外界通讯的出口
通过ip+端口 可以找到世界上任何一台电脑的任何一个软件
端口的范围:0~65535 形式:192.168.2.1:8000
建议自定义端口的时候,往8000以上定义 20 端口:FTP文件传输协议(默认数据口)
21 端口:FTP文件传输协议(控制)
22 端口:SSH远程登录协议
23 端口:telnet(终端仿真协议),木马,Tiny Telnet Server 开放次端口
25 端口:SMTP 服务器所开放的端口用于发送邮件
80 端口:http,用于网页浏览,木马 Executor 开放此端口
443 端口:基于 TLS/SSL的网页浏览端口,能提供加密和通过安全端口传输的另一种http
3306端口:MySQL 数据库端口
3.osi七层网络模型
应用层(应用层,表示层,会话层)
封装数据
依据不同的协议,封装对应格式的数据消息
HTTP[超文本传输协议]
HTTPS[加密传输超文本传输协议]
FTP[文件传输协议]
SMTP[电子邮件传输的协议]
传输层:封装端口 传输协议TCP/UDP协议 网络层:
封装ip
版本ipv4 / ipv6 数据链路层:
封装mac地址
指定链路层的协议(arp协议(通过ip找mac地址),rarp协议(通过mac找ip)) 物理层:
打成数据包,变成二进制字节流,通过网络进行传输 # ### 4.交换机和路由器
#交换机:对同一网段的不同机器之间进行数据转发的设备 [每一台机器和交换机相连,形成通信]
交换机从下到上拆2层,拆物理层和数据链路层,可以找到mac
#路由器:对不同网段的不同机器之间进行数据转发的设备 [每一个局域网和路由器相连,形成通信]
交换机从下到上拆3层,拆物理层和数据链路层和网络层,可以找到ip #arp协议:通过ip找mac (arp地址解析协议)
'''通过交换机的一次广播和一次单播找到对应的mac'''
电脑a先发送一个arp的广播包,把mac标记一个全FF-FF-FF-FF-FF-FF的广播地址
交换机接收到arp的广播包,从下到上进行拆包,拆2层,到数据链路层得到mac
发现mac是全F的广播地址,重新打包,交换机开始广播,所有连接在交换的设备都会收到arp广播包
各个主机开始拆包,对应FF广播地址可以跳过,继续向上找,发现ip不符合,直接舍弃
路由器允许从下到上拆三层,拆到ip,得到对应的网段
打开路由器的对照表 网关->网段,重新打包,找到对应的接口发送数据包
对应的交换机得到数据包,重新从下到上拆包,2层,发现全F,开始广播
数据的主机接收到广播包,从下到上拆包,ip正确,符号自己的条件
数据库主机会把ip->mac的映射关系的数据发送回当前的交换机,
此时,交换机通过单播,把对应的ip和mac发送回原来请求的主机
数据在通过路由器,交换机发送回去
原主机在得到了ip和mac之后,
重新把真实数据进行打包,从而完成发送 如果没有mac,主机一开始会发送请求包(发出找mac的请求)
各大主机在接收arp请求包的时候,都会去找对照自己本机当中的arp解析表(ip->mac)
如果没有,这个arp的请求包舍弃
如果有,会把自己的ip和mac封装在arp的响应包当中给交换机进行单播
在回来的过程中,所有相应的主机都会拿响应包中的数据更新自己的arp解析表,方便下次使用 arp协议:通过ip -> mac
4.TCP/UDP协议三次握手
三次握手 SYN 创建连接
ACK 确认响应
FIN 断开连接 #三次握手
客户端发送一次请求,与服务端建立连接
服务端接收这个请求,并且响应与客户端建立连接的请求
(服务端的响应和请求是在一次发送当中完成的)
客户端接收服务端的请求之后,把消息在响应给服务端 接下来客户端和服务端可以发送数据了
每发送一个数据出去,对应的主机都会有一个回执消息,确认数据的接受情况
如果没有得到回执消息,该数据会重发一次,保证数据的完整
不会一直不停的发下去,有时间最大允许周期
网络通信部分之bs/cs架构,网络概念,osi七层网络模型,TCP/UDP协议---day27的更多相关文章
- 网络基础与osi七层与TCP/IP协议
一 什么是网络 网络:计算机网络是一组计算机或网络设备通过有形 的线缆或无形的媒介如无线,连接起来,按照一定的 规则,进行通信的集合. 通信,是指人与人.人与物.物与物之间通过某种媒 介和行为进行的 ...
- OSI七层与TCP/IP五层网络架构详解
引用自:http://www.2cto.com/net/201310/252965.html OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天 ...
- OSI七层与TCP/IP五层网络架构
OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代 ...
- 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)
以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型 下四层是为数据传输服务的,物理层是真正的传输数 ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- 软件开发架构与网络之OSI七层协议(五层)
本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...
- 1、网络并发编程--简介、软件开发架构、OSI七层协议
python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...
- 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层
目录 软件开发架构 架构总结 网络编程前戏 OSI七层协议简介 OSI七层协议之物理连接层 OSI七层协议之数据链路层 网络相关专业名词 OSI七层协议之网络层 OSI七层协议之传输层 软件开发架构 ...
- 网络OSI七层架构与TCP四层架构的应用与区别
1.OSI七层网络模型介绍 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了 ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
随机推荐
- [转帖]Linux使用Stress-ng测试CPU、内存、磁盘I/O满载情况教程与范例
https://www.xiaoyuanjiu.com/108301.html 介绍如何在 Linux 系统上使用 stress-ng 负载测试工具,产生 CPU.内存等资源满载的状况. stress ...
- 获取特定端口java进程的路径的shell脚本
获取特定端口java进程的路径的shell脚本 ll /proc/`lsof -i:5200 |grep ^java |awk '{print $2}' |uniq` |grep cwd |cut - ...
- 使用Configmap 配置 springboot的application.yaml文件的方式部署环境的方法
Configmap部署k8s下Springboot服务的办法 前提 日常工作中需要使用k8s部署微服务环境, 但是内部的数据库连接和redis等连接非常麻烦,使用helm chart 进行变量替换时非 ...
- vue3关于.sync的用法
场景描述 我们都知道,子组件是不能够去修改父组件传递过来的数据. 因为如果子组件去修改父组件件传递过来的数据. 会导致数据的应用流向变得难以理解. 但是有些时候,我们需要当子组件的数据变化后,父组件的 ...
- PHP伪协议与文件包含漏洞
https://www.cnblogs.com/weak-chicken/p/12275806.html 1 file:// - 访问本地文件系统 2 http:// - 访问 HTTP(s) 网址 ...
- Linux慢 进程kswapd0与events/0消耗大量CPU的问题 一次网站宕机的处理
今天下午网站宕了两次机,发工单给阿里云,发现原因是服务器的CPU 100%了. 重启服务器后,使用 top 命令看看是哪些进程消耗那么大的 CPU 使用.盯了有好十几分钟,主要消耗 CPU 的进程有两 ...
- 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
新特性介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR,解决issue等 一个完善的IM系统,非常复杂,功能繁多,需求不一,比如对象存储有云端oss,cos,s3,私有化存储 ...
- 数据挖掘机器学习[二]---汽车交易价格预测详细版本{EDA-数据探索性分析}
题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池 相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据 ...
- 【五】AI Studio 项目详解【VisualDL工具、环境使用说明、脚本任务、图形化任务、(五)在线部署及预测】PARL
相关文章 [一]-环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简介 [五]-Sarsa&Qlear ...
- 从嘉手札<09-06-2023>
时常会想 这个世界什么是长久的 我们走在时代的映照下,行色匆匆. 因为别人的悲欢而悲欢,因为自己的局限而挣扎. 晨而得志,暮而踌躇. 青楼梦好,难赋深情. 这个世界有很多的选择. 金钱,酒色,健康,相 ...