C/S B/S 架构

C:client 端

B:browser 浏览器

S:server 端

C/S架构,基于客户端与服务端之间的通信

  • 例如:QQ,抖音,快手,微信,支付宝等等
  • 优点:个性化设置,响应速度快
  • 缺点:开发维护成本高,占用空间,用户固定

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

  • 谷歌浏览器,火狐浏览器
  • 优点:开发维护成本低,占用空间相对低,用户不固定
  • 缺点:功能单一,没有个性化设置,响应速度相对慢一些

网络通信原理

  • 两台计算机要有一堆物理连接介质连接
  • 找到对方计算机软件位置
  • 遵循一揽子互联网通信协议

osi七层协议

  • 物理层

    • 物理层指的就是网线,光纤,双胶线等等物理连接介质
    • 物理层发送的是比特流,只发送比特流会有什么问题?
    • 不知道多长为一组,多长为一个字节,头是哪个?尾在哪儿?
    • 引出数据应该有规律分组的问题,分组是数据链路层做的事情
  • 数据链路层

    • 数据链路层对比特流进行分组
    • 刚开始从事互联网企业的就是美国的几家公司,各家有各家自定的分组标准。后来统一了标准,对数据分组的标准
    • 以太网协议:对比特流进行合理的分组。
    • 一组数据01010010叫做一帧,数据报。
      • head|data("aaa")
      • head 是固定的长度:18个字节
        • 源地址:6个字节
        • 目标地址:6个字节
        • 数据类型:6个字节
      • data:最少46个字节,最大1500字节
      • 一帧数据:最少64个字节,最大1518个字节
    • MAC地址:每台电脑独一无二的地址,前6个是厂商编号,后6个是流水线号
    • 计算机的通信方式:
      • 同一个局域网内,通过广播的形式通信。
      • 交换机的mac地址学习功能
        • 第一次通过广播找到目标mac地址,然后将其对应
        • 第二次直接单播
        • 前提是必须知道对方的mac地址,你才可以以广播的形式发消息。实际上,网络通信中,你只要知道对方的IP与自己打的IP即可
      • 消息一经广播发出,该局域网下所有的计算机都能接收到消息,分析消息,是否是找自己的,不是就丢弃
    • 计算机只能在局域网内进行广播:范围大了会造成广播风暴,效率极低
  • 网络层

    • 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地址,然后在通信.

  • 传输层

    • TCP/UDP 确定软件在计算机的位置
  • 应用层

    • 自己定义的协议
  • 广播(局域网内) + mac地址(计算机位置) + ip(局域网的位置) + 端口(软件在计算机的位置)

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

UDP协议 TCP协议

  • TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、流式协议, 传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。
  • UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。
  • 端口

  • 65535端口
  • 1~1023 操作系统专门使用的端口 -- 周知端口
  • 1024-49151 分配给用户进程或应用程序 -- 注册端口
  • 49152-65535 动态端口 动态分配,不固定分配某种服务 -- 动态端口
  • 举例:3306数据库

TCP协议的三次握手和四次挥手

四次挥手

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

浅谈osi模型 三次握手 四次挥手 ddos攻击原理的更多相关文章

  1. 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

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

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

  3. 网络模型+三次握手+四次挥手+DNS+HTTPS

    网络模型+三次握手+四次挥手+DNS+HTTPS 这篇文章十分精华,所以整理一下: 一.网络模型 OSI七层模型,和TCP/IP五层模型(更为普遍) TCP/IP 协议集: 二.TCP协议(传输层)建 ...

  4. 救救孩子吧,到现在还搞不懂TCP的三次握手四次挥手

    本文在个人技术博客同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩...   前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻 ...

  5. TCP/IP协议 | TCP协议 | UDP协议 | 三次握手四次挥手

    TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP.SMTP.TCP.UDP.IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP ...

  6. TCP/IP三次握手四次挥手

    本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图所示,给出了TCP通信过程的示意图. TCP 三次握手四次挥手 主要包括三部 ...

  7. TCP协议—三次握手四次挥手的原理<转>

    三次握手四次挥手的原理   TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的.三 ...

  8. python摸爬滚打之----tcp协议的三次握手四次挥手

    TCP协议的三次握手, 四次挥手 三次握手过程 1, 服务器时刻准备接受客户端进程的连接请求, 此时服务器就进入了LISTEN(监听)状态; 2, 客户端进程然后向服务器发出连接请求报文, 之后客户端 ...

  9. [na]TCP的三次握手四次挥手/SYN泛洪

    1.TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记. (2)确认序号:Ack序号,占32位, ...

随机推荐

  1. Contiki源码分析--CPU为cc253x里的uart0.c

    我所使用的Contiki系统是contiki-sensinode.理解该文需要有cc2530里uart的相关知识,具体寄存器的用法不做介绍. 先放上所有代码,然后再仔细分析. #include < ...

  2. 自己实现IOC容器,java代码实现简易版IOC容器,IOC容器实现的步骤分解

    一.需求 实现一个简易的IOC容器,管理Bean,从IOC容器的BeanFactory中获取实例,从而取代自己new实例的做法. 二.实现步骤分析 三.具体代码实现 自定义注解类 MyComponen ...

  3. php编写刷网课自助下单系统(第三方支付实例)

    此项目是由于本人刚刚入门php且在校代刷网课而编写的,由于在上课时间不方便接单,故特意写一个自助下单系统来实现客户自助下单.本项目主要实现以下功能:1.用户下单2.用户支付3.用户通过账号查询订单4. ...

  4. 个人永久性免费-Excel催化剂功能第18波-在Excel上也能玩上词云图

    这年头数据可视化日新月异,在Excel上做数据分析,最后一步,难免要搞个图表输出高大上一回,微软也深知此道,在Excel2016上更新了一大波图表功能,市场上很耀眼的词云图还是没加进来,虽然在各大的在 ...

  5. Jmeter(1):使用TCP取样器与socket接口进行简单通信

    一个小任务:服务器与客户端连接,每次发送50个随机生成的字符,两秒发送一次 失败过太多次,然后昨晚终于跑通了,心情激动,于是清均第一篇博客就诞生了. 之前不了解jmeter,想过单纯用java编写服务 ...

  6. [leetcode] 45. Jump Game II(hard)

    原题 题意: 是Jump Game的衍生题(题解),题意求跳到最后一格所需最少步数,(默认所测数据永远可以跳到最后一格). 思路: 利用贪心,遍历数组,记录在每一步可跳跃到的最大区域. 1.当前步数 ...

  7. 原生 js基础常用的判断和循环

    原生 js基础常用的判断和循环 以下部分是个人实践及和搜集的资料: 最常用的if判断语句: if (/* 条件表达式 */){ // 成立执行语句 } else { // 否则执行语句 } 原生js的 ...

  8. ThinkPHP 5.0 控制器-》请求-》数据库

    ThinkPHP 5.0 控制器->请求->数据库 控制器总结 无需继承其他的类(若继承了Think/Controller,可直接调用view函数渲染模板),位置处于application ...

  9. iOS 类知乎”分页”效果的实现?

    我们先看张gif图看一下效果(LICEcap录制的有点卡, 凑合看) 好像还是卡, 怼个视频演示链接吧: https://m.weibo.cn/1990517135/4398431764047996 ...

  10. [POJ2823] Sliding Window 「单调队列」

    我们从最简单的问题开始: 给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k. 要求:   f(i) = max{ a(i-k+1),a(i-k+2),..., a(i) },i ...