day28——C/S与B/S架构、网络通信原理、osi七层协议、UDP、TCP协议、TCP的三次握手与四次挥手
day28
C/S B/S架构
- C:client 客户端
- B:browse浏览器
- S:server 服务端
C/S
C/S架构:基于客户端与服务端之间的通信
QQ、游戏、皮皮虾
优点:个性化设置,响应速度快
缺点:开发成本,维护成本高,占用空间,用户固定
B/S
B/S架构:基于浏览器与服务端之间的通信
谷歌浏览器、360浏览器、火狐浏览器等等
优点:开发维护成本低,占用空间相对低,用户不固定
缺点:功能单一,没有个性化设置,响应速度相对慢一些
网络通信原理
网络通信模拟
80年代,固定电话联系(还没有推广普通话)
1、两台电话之间一堆物理连接介质
2、拨号,锁定对方电话的位置
由于当时没有统一普通话,所以你如果和河南,山西,广西,福建等朋友进行友好的沟通交流,你必须学当地的方言.
推广普通话,统一交流方式.
1、两台电话之间一堆物理连接介质
2、拨号,锁定对方电话的位置
3、统一交流方式
全球范围内交流
1、两台电话之间一堆物理连接介质
2、拨号,锁定对方电话的位置
3、统一交流方式(英语)
话题转回互联网通信
我现在想和美国的一个girl联系,你如何利用计算机联系?
1、两台计算机要有一堆物理连接介质
2、找到对方计算机软件位置
3、遵循一揽子互联网通信协议
osi七层协议
单串联五层协议以及作用
- ******************物理层
物理层指的就是网线,光纤,双绞线等等物理连接介质
物理层发送的是比特流: 01010101010101010101只是发送比特流有什么问题???
数据应该有规律的分组,分组是数据链路层做的事情.
- ********************数据链路层
数据链路层对比特流进行分组.
最开始从事互联网企业的就是美国的几家公司,各家有各家自定的分组标准.后来统一了标准: 对数据分组的标准.
*******以太网协议: 对比特流进行合理的分组.
一组数据01010101 叫做一帧,数据报.
head | data(晚上约么)
head是固定的长度:18个字节
源地址: 6个字节
目标地址: 6个字节
数据类型: 6个字节
data: 最少是46个字节,最大1500字节.
一帧数据: 最少64个字节,最大1518个字节.
一帧数据|一帧数据......
每个电脑上都有一个网卡,网卡上都记录一个独一无二的地址.
******************mac地址: 就是你的计算机上网卡上标注的地址.
12位16进制数组成 :前六位是厂商编号,后六位是流水线号.
源mac地址 目标mac地址 数据类型 | data
'1C-1B-0D-A4-E6-44'
计算机的通信方式:
同一个局域网内,通过广播的形式通信.
消息一经广播发出,村里所有的人(局域网所有的计算机都能接收到消息,分析消息,是否是找我的,不是就丢弃),
计算机只能在局域网内进行广播: 范围大了 广播风暴,效率极低.
还有两个没有解决:
1. 不同局域网如何通信?
2. 软件与软件的通信,而不是计算机之间的通信.
- 网络层
IP协议: 确定局域网(子网)的位置.
找到具体软件的位置,上一层的事情
- 传输层
端口协议: 确定软件在计算机的位置
- 应用层
自己定义的协议.
广播(局域网内) + mac地址(计算机位置) + ip(局域网的位置) + 端口(软件在计算机的位置)
有了以上四个参数:你就可以确定世界上任何一个计算机的软件的位置.
对五层协议详细的补充说明
- 数据链路层补充
同一个局域网通过广播的形式发送数据.
交换机的mac地址学习功能:
一个交换机的5个接口: 5个计算机.
1: FF-FF-FF-FF-FF-FF
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
接口1: 源mac 1C-1B-0D-A4-E6-44 目标1C-1C-0D-A4-E5-44 |数据 以广播的形式发出
2,3,4,5口都会接收到消息,5口是最终的目标地址,交换机就会将5口与mac地址对应上.
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: 1C-1C-0D-A4-E5-44
当五个口都对应上具体的mac地址,2口再次发消息,就不会广播了,就会以单播发送.
我们的前提是什么? 你必须知道对方的mac地址你才可以以广播的形式发消息.实际上,网络通信中,你只要知道对方的IP与自己的IP即可.
- 网络层
IP协议:
ip地址:四段分十进制 192.168.0.12
取值范围 0255.0255.0255.0255
子网掩码: C类子网掩码: 255.255.255.0
ip地址 + 子网掩码 按位与运算 计算出是否在统一局域网(子网,网段).
计算172.16.10.1 与 172.16.10.128
172.16.10.1:10101100.00010000.00001010.00000001
255.255.255.0: 11111111.11111111.11111111.00000000
从属于的局域网: 172.16.10.0
172.16.10.128:10101100.00010000.00001010.10000000
255.255.255.0: 11111111.11111111.11111111.00000000
从属于的局域网: 172.16.10.0
172.16.10.1 ~172.16.10.255
C类子网掩码 一个网段最多可以承载多个IP地址?
172.16.10.0 被占用.
172.16.10.255 广播地址 被占用.
172.16.10.1 被占用.
253台计算机.
如果你要想给另一个计算机发数据, 你一定要知道对方的ip地址.
ARP协议:通过对方的ip地址获取到对方的mac地址.
源码mac 目标mac 源IP 目标IP 数据
1C-1B-0D-A4-E6-44 FF:FF:FF:FF:FF:FF 172.16.10.13 172.16.10.156 数据
第一次发消息: 发送到交换机 ---> 路由器 广播的形式发出去
目标计算机收到消息:就要回消息:
源码mac 目标mac 源IP 目标IP 数据
1B-1B-0D-A4-E6-54 1C-1B-0D-A4-E6-44 172.16.10.156 172.16.10.13 数据
总结:
前提:知道目标mac:
计算机A 发送一个消息给 计算机B
源码mac 目标mac 源IP 目标IP 数据
单播的形式发送到交换机,交换机会检测自己的对照表有没有目标mac,如果有,单播传.如果没有,交由上一层: 路由器:
路由器收到消息: 对消息进行分析:
要确定目标计算机与本计算机是否在同一网段,
如果在同一网段,直接发送给对应的交换机,交换机在单播发给目标mac.
如果不是在同一网段: ?
前提:不知道目标mac:
计算机A 发送一个消息给 计算机B
源码mac 目标mac不知道 源IP 目标IP 数据
单播的形式发送到交换机,交换机交由上一层路由器:路由器收到消息: 对消息进行分析:
要确定目标计算机与本计算机是否在同一网段,
如果在同一网段通过 IP以及ARP协议获取到对方的mac地址,然后在通信.
如果不是在同一网段: ?
- 传输层
端口协议: UDP协议,TCP协议
65535端口
1~1024操作系统专门使用的端口
举例: 3306 数据库
自己开发软件都是8080以后的端口号
UDP TCP 协议
TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、流式协议, 传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。
UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。
TCP协议的三次握手和四次挥手
syn洪水攻击:制造大量的假的无效的IP请求服务器.致使正常的IP访问不了服务器.
day28——C/S与B/S架构、网络通信原理、osi七层协议、UDP、TCP协议、TCP的三次握手与四次挥手的更多相关文章
- 网络通信 --> TCP三次握手和四次挥手
TCP三次握手和四次挥手 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 一.TCP报文格式 如下图: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发 ...
- 【网络通信】TCP三次握手和四次挥手的示意图
三次握手 TCP连接是通过三次握手来连接的. 第一次握手 当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN为m,等待服务器确认,这时客户端的状态为SYN_SE ...
- 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...
- 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)
reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...
- 开发架构+osi七层协议+socket(day26)
目录 软件开发架构 C/S架构 B/S架构 网络编程 互联网协议/OSI七层协议 传输层 网络层 数据链路层 物理连接层 socket 什么是socket 为什么用socket 如何使用 软件开发架构 ...
- 软件开发架构与网络之OSI七层协议(五层)
本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...
- 1、网络并发编程--简介、软件开发架构、OSI七层协议
python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想体验服务的时候 ...
- 软件开发架构、网络基础知识、osi七层模型
一.软件开发的架构 涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以 ...
随机推荐
- asp.net大附件上传,支持断点续传
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传 ...
- 抓取Dump文件的方法和工具介绍
一.Windows系统的任务管理器里抓dump 启动任务管理器,选中某个进程,右键,弹出菜单"创建转储文件" 注意事项: 当你在64位Windows系统上抓32位进程的dmup文件 ...
- DOM内容梳理2
JavaScript-DOM2(内容整理) 这两天新的知识有点多有点杂一时半会没有整理过来,以后不出意外会一直更行. js节点类型(NODETYPE) 查看节点类型 nodetype属性,返回的结果会 ...
- 【luoguP2997】[USACO10NOV]旗帜Banner
题目链接 长和宽的gcd(x,y)=1,就没有中间结点,一种线段有两种方向,暴力统计一下就好了 注意x=0或y=0时的线段只有一种方向 #include<iostream> #includ ...
- 原创:史上对BM25模型最全面最深刻的解读以及lucene排序深入讲解
垂直搜索结果的优化包括对搜索结果的控制和排序优化两方面,其中排序又是重中之重.本文将全面深入探讨垂直搜索的排序模型的演化过程,最后推导出BM25模型的排序.然后将演示如何修改lucene的排序源代码, ...
- MATLAB 线性规划实例应用
线性规划 线性规划函数 功能:求解线性规划问题 语法 x = linprog(f,A,b):求解问题 min fx,约束条件为 Ax <= b x = linprog(f,A,b,Aeq,beq ...
- ubuntu之路——day15.2 只用python的numpy在底层检验正则化对模型的影响
首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 ...
- 给lol人物模型添加动画库(mixamo)中的动画
参考链接:https://www.bilibili.com/video/av61771773/?p=4 作为一个懒人,给提取出来的lol人物模型亲手制作动画是不存在的,但是又想给人物模型应用新的有 ...
- 在python中使用elasticsearch 需要注意的一些问题
1, py es client 使用是 http ,java api 使用是 tcp 2, es.scroll() 方法 在查询多个索引的时候会报 : elasticsearch.exception ...
- mysql Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s)问题处理
Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s). The most rece ...