zoukankan      html  css  js  c++  java
  • python基础学习-网络编程(一)

     1、CS架构与BS架构

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

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

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


     2、网络通信

    网络存在的意义就是跨地域数据传输=》称之为通信
    网络=物理链接介质+互联网通信协议


    3、OSI七层协议

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
    应用层:
    应用层
    应用层
    表示层
    回话层
    传输层
    网络层
    网络接口层:
    数据链路层
    物理层


    协议:规定数据的组织形式
    格式:头部+数据部分
    封包裹的过程:数据外+头
    拆包裹的过程:拆掉头获取数据

    4、五层协议

    计算机1:                                                  计算机2:

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

    传输介质:

     

    4.1 物理层负责发送电信号

    一组物理层数据称之为:位
    单纯的电信号毫无意义,必须对其进行分组

    4.2 数据链路层:以太网协议(ethernet)

    以太网协议:
    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet
    ethernet规定:
    规定1:一组电信号构成一个数据包,叫做‘帧’
    规定2:每一数据帧分成:报头head和数据data两部分(原地址和目标地址即mac地址)
    head包含:(固定18个字节)
    发送者/源地址,6个字节
    接收者/目标地址,6个字节
    数据类型,6个字节
    data包含:(最短46字节,最长1500字节)

    数据包的具体内容
    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
    数据链路层的数据包含的是网络层发过来的整体内容


    规定3:
    mac地址:
    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
    mac地址:2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位

    注意:计算机通信基本靠吼,即以太网协议的工作方式是广播

    4.3 网络层:IP协议

    网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址(IP地址)
    每一个广播域但凡要接通外部,一定要有一个网关帮内部的计算机转发包到公网关,网关与外界通信走的
    是路由协议

    IP协议:
    规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
    范围0.0.0.0-255.255.255.255
    一个ip地址通常写成四段十进制数,例:172.16.10.1
    ip地址分成两部分:
    网络部分:标识子网
    主机部分:标识主机
    网络层的数据包含的是传输层发过来的整体内容

    注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网


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

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

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

    ARP:
    所以必须能够将ip地址解析成mac地址

     

    举例:

    # 两台计算机在同一个局域网内
    计算机1:172.16.10.10/24 直接 计算机2:172.16.10.11/24
    ARP:
    自己的ip,对方的ip
    1、计算二者网络地址,如果一样,拿到计算机2的mac地址就可以了
    2、发送广播包
    发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据

    # 两台计算机不在同一个局域网内

    计算机1:172.16.10.10/24 网关 计算机2:101.100.200.11/10
    ARP:
    自己的ip,对方的ip
    1、计算机二者网络地址,如果不一样,应该拿到网关的mac地址
    2、发送广播包
    发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.1/24 数据


    4.3.1 总结

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

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

    详细请参考:https://www.cnblogs.com/linhaifeng/articles/6129246.html#_label2

  • 相关阅读:
    php utf-8
    thinkPHP--关于域名指向的问题
    PHP命名空间(Namespace)的使用详解
    thinkphp 动态配置
    枚举之称硬币
    5.7
    5.6
    5.5(OI一本通开始)
    5.4
    5.3
  • 原文地址:https://www.cnblogs.com/dingbei/p/12715733.html
Copyright © 2011-2022 走看看