zoukankan      html  css  js  c++  java
  • 网络编程part1

    一、CS架构和BS架构

    1、CS架构(客户端到服务端)

    Client<===========>Server

    客户端软件send             服务端软件recv
    操作系统                   操作系统
    计算机硬件<====物理介质=====>计算机硬件

    2、BS架构(浏览器端到服务端)

    Browser<===========>Server

    二、网路通信

    网络存在的意义:跨地域数据传输:简称——通信

    网络=物理链接介质+互联网通信协议

    三、OSI七层传输协议(五层/四层协议)

    五层协议 应用层 传输层 网络层 数据链路层 物理层

    协议——规定数据的组织格式

    协议的格式——头部+数据部分

    封包的过程——在数据外加头部

    拆包的过程——拆取数据外头部

    计算机1:                            计算机2:

    应用层                               应用层
    传输层                               传输层
    网络层                               网络层
    数据链路层                            数据链路层
    物理层  <===========交互机===========> 物理层

    数据——(源mac地址,目标mac地址)(源ip地址,目标ip地址)数据

    四、

    1.物理层

    物理层负责发送电信号

    一组物理层数据称之为:位

    单纯的电信号毫无意义,必须对其进行分组

    2.数据链路层:Ethernet以太网协议

    规定一:一组数据称之为一个数据帧

    规定二:一个数据帧可以分为——头+数据

    头包含了——源地址和目标地址,这个地址是mac地址

    数据包含——网络层发过来的整体内容

    规定三、每一台接入互联网的主机都要有一块网卡,每一块网卡都是在出厂时都烧制好一个独一无二的地址——mac地址

    ps:以太网协议的工作方式是——广播

    3.网络层:IP协议

    需求:划分广播域

    每一个广播域但凡需要接通外部,一定要有一个网关帮助内部的计算机转发包到公网网关——与外界通信走的是路由协议

    规定一、一组数据称之为一个数据包

    规定二、数据帧分为两个部分——头+数据

    头包含了——源地址与目标地址(这里的地址指的是IP地址)

    数据包含——传输层发送过来的整体内容

    ipv4地址:

    8bit.8bit.8bit.8bit

    0.0.0.0 255.255.255.255

    子网掩码: 8bit.8bit.8bit.8bit

    255.255.255.0对应的二进制表达 11111111.11111111.11111111.00000000

    一个合法的ipv4地址组成部分=IP地址/子网掩码地址

    172.16.10.1/255.255.255.0
    172.16.10.1/24
    172.16.10.1不写默认24
    计算机1:
    172.16.10.1:     10101100.00010000.00001010.000000001
    255255.255.255.0: 11111111.11111111.11111111.000000000
    172.16.10.0:     10101100.00010000.00001010.000000000


    计算机2:
    172.16.10.2:     10101100.00010000.00001010.000000010
    255.255.255.255.0: 11111111.11111111.11111111.000000000
    172.16.10.0:       10101100.00010000.00001010.000000000
    计算机1:                            计算机2:

    应用层                               应用层
    传输层                               传输层
    网络层                               网络层
    数据链路层                           数据链路层
    物理层  <=========二层交互机========> 物理层
                                        0101010101010

    (源mac地址,xxxx)(源ip地址,目标ip地址)数据
    (源mac地址,网关的mac地址)(172.16.10.10/24,101.100.200.11/10)数据


    事先知道的是对方的ip地址
    但是计算机的底层通信是基于ethernet以太网协议的mac地址通信

    ARP协议

    arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到

    通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

    协议工作方式:每台主机ip都是已知的

    例如:主机172.16.10.10/24访问172.16.10.11/24

    一:首先通过ip地址和子网掩码区分出自己所处的子网

    1587048343954

    二:分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)

    1587048358665

    小结

    ip地址+mac地址=》标识全世界范围内独一无二的一台计算机

    或者: ip地址=》标识全世界范围内独一无二的一台计算机

  • 相关阅读:
    Druid数据库连接池源码分析
    彻底理解Java的Future模式
    CountDownLatch与CyclicBarrier
    Semaphore实现原理分析
    ThreadLocal类分析
    Atomic类和CAS
    synchronized VS Lock, wait-notify VS Condition
    Klass与Oop
    JVM类加载以及执行的实战
    123
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12716501.html
Copyright © 2011-2022 走看看