zoukankan      html  css  js  c++  java
  • 网络协议

    两台计算机之间的通信(条件):

    1. 首先要通过各种的物理连接介质相连

    2. 找准,确定对方计算机(准确到软件的位置)

    3. 通过统一的标准(一揽子协议)进行数据的收发

    一、CS BS架构

    C: client 客户端

    B: browse 浏览器

    S: server服务端

    CS基于客户端和服务端之间的通信

    优缺点:QQ,快手

    ​ 优点:个性化设置,响应速度快

    ​ 缺点:开发,维护成本高,占用空间,用户固定

    BS基于浏览器与服务端之间的通信

    优缺点:火狐浏览器,谷歌浏览器

    ​ 优点:开发维护成本低,占用空间相对低,用户不固定

    ​ 缺点:功能单一,没有个性化设置,响应速度相对慢一些

    二、网络通信原理

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

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

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

    由于当时没有统一普通话,所以你如果和河南,山西,广西,福建等朋友进行友好的沟通交流,你必须学当地的方言.

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

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

    全球范围内交流:

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

    话题转回互联网通信:

    ​ 我现在想和美国的一个girl联系.你如何利用计算机联系???

    1. 两台计算机要有一堆物理连接介质连接.

    2. 找到对方计算机软件位置.

    3. 遵循一揽子互联网通信协议.

    三、osi七层协议(应表会传网数物)

    1565663997237

    每层运行的物理设备

    img

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

    物理层:

    ​ 物理层指的就是网线,光纤,双绞线等等物理连接介质

    ​ 物理层发送的是比特流:0101010101010(基于电器特性,高电压1,低电压0)

    ​ 数据应该有规律的分组,分组是数据链路层做的事情

    数据链路层(定义了电信号的分组方式)

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

    ​ 最开始从事互联网企业的就是美国的几家公司,各家有各家自定的分组标准.后来统一了标准: 对数据分组的标准.

    以太网协议:对比特流进行合理的分组

    ​ 一组数据010101101010叫做一帧,数据报

    ​ head|DATA(晚上约吗)

    ​ head是固定的长度:18(6,6,6)

    ​ 源地址:6个字节

    ​ 目标地址:6个字节

    ​ 数据类型:6个字节

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

    ​ 一帧数据:最少64个字节,最大1518个字节,超过最大限制就分片发送

    ​ 一帧数据|一帧数据

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

    ​ mac地址:就是你的计算机上网卡上标注的地址

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

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

    ​ '1C-1B-0D-A4-E6-44'

    ​ 计算机的通信方式:

    ​ 同一个局域网内,通过广播的形式通信.

    ​ 消息一经广播发出,村里所有的人(局域网所有的计算机都能接收到消息,分析消息,是否是找我的,不是就丢弃),

    1565666245241

    ​ 计算机只能在局域网内进行广播: 范围大了 广播风暴,效率极低.

    网络层

    ​ ip协议:确定局域网(子网的)位置(规定网络地址的协议叫ip协议,它定义的地址称之为ip地址)

    传输层

    ​ 端口协议:确定软件在计算机的位置

    应用层:

    ​ 自己定义的协议

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

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

    对五层协议详细的补充说明

    1565669367550

    数据链路层:

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

    交换机的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地址1565672211559

    ​ 第一次发消息: 发送到交换机 ---> 路由器 广播的形式发出去

    ​ 目标计算机收到消息:就要回消息:

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

    ​ 如果不是在同一网段: ?

    1565673282900

    • 传输层:

      ​ 端口协议: 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协议的三次握手和四次挥手

    156568504817415656857232091565684713514

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

  • 相关阅读:
    【BZOJ3993】星际战争(SDOI2015)-二分答案+最大流
    【BZOJ3996】线性代数(TJOI2015)-最小割
    【BZOJ3996】线性代数(TJOI2015)-最小割
    【APIO2010T2】巡逻-贪心+树形DP
    【APIO2010T2】巡逻-贪心+树形DP
    【NOIP2016提高组T2】天天爱跑步-倍增LCA+树上差分
    【NOIP2016提高组T2】天天爱跑步-倍增LCA+树上差分
    【POJ2411】Mondriaan's Dream-状态压缩DP(插头DP?)
    【POJ2411】Mondriaan's Dream-状态压缩DP(插头DP?)
    【POJ1679】The Unique MST-次小生成树(判断最小生成树唯一性)
  • 原文地址:https://www.cnblogs.com/-777/p/11348620.html
Copyright © 2011-2022 走看看