zoukankan      html  css  js  c++  java
  • 网络基础

    网络编程即 使用套接字来达到进程间通信

    一、C/S和B/S架构

    • 1、CSClient/Server (客户机/服务器)架构,C/S架构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式网络通信量低响应速度快利于处理大量数据。但是该架构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该架构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。

    • 2、BSBrowser/Server (浏览器/服务器)架构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S架构应用程序相对于传统的C/S架构应用程序是一个非常大的进步。 B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难。此外,实现复杂的应用构造有较大的困难

    • 3、总结:
      • CS 优点:本地响应速度快,在硬件和网络环境不好的情况下用CS能提高效率(其实是降低用户愤怒值)
      • CS 缺点: 如果二次开发较多,投入很大。首先你不能保证不继续修改二次开发方案,那么CS 的兼容性就会不断接受挑战
      • BS 优点: 部署简单,打开就用,不用太担心二次开发带来的兼容性
      • BS 缺点: 给用户的感觉就是反应慢

    二、两台机器如何通信?

    1、IP地址
    • IP地址: ⽤来在⽹络中标记⼀台电脑的⼀串数字, ⽐如192.168.1.1(c类); 在同一⽹络上是惟⼀的(用来标记唯一的一台电脑)

    • 每⼀个IP地址包括两部分: **⽹络地址和主机地址 **

    • 主机号0,255两个数不能使用(网络号、广播地址)

    • 详情解释

      • A类IP地址1个字节的⽹络地址3个字节的主机地址组成, ⽹络地址的最⾼位必须是“0”地址范围1.0.0.1-126.255.255.254 ,可⽤的A类⽹络有126个, 每个⽹络能容纳1677214个主机


      • B类IP地址2个字节的⽹络地址2个字节的主机地址组成, ⽹络地址的最⾼位必须是“10”地址范围128.1.0.1-191.255.255.254 ,可⽤的B类⽹络有16384个, 每个⽹络能容纳65534主机


      • C类IP地址3个字节的⽹络地址1个字节的主机地址组成,⽹络地址的最⾼位必须是“110”地址范围192.0.1.1-223.255.255.254 ,可用的C类⽹络可达2097152个, 每个⽹络能容纳254个主机


      • D类IP地址 第⼀个字节以“1110”开始, 它是⼀个专⻔保留的地址。它并不指向特定的⽹络, ⽬前这⼀类地址被⽤在多点⼴播(一对多) 中多点⼴播地址⽤来⼀次寻址⼀组计算机地址范围224.0.0.1-239.255.255.254


      • E类IP地址 以“1111”开始, 为将来使⽤保留 E类地址保留, 仅作实验和开发⽤

    2、注意:
    私有IP:本地局域网上的IP,专门为组织机构内部使用
    
    在这么多⽹络IP中, 国际规定有⼀部分IP地址是⽤于我们的局域⽹使⽤, 属于私⽹IP, 不在公⽹中使⽤的, 它们的范围是:
    
    - 10.0.0.0~10.255.255.255
    - 172.16.0.0~172.31.255.255 
    - 192.168.0.0~192.168.255.255 
    
    私有IP禁止出现在Internet中,来自于私有IP的流量全部都会阻止并丢掉。公有IP可以全球访问
    
    IP地址127. 0. 0.1代表本机IP地址, ⽤ http://127.0.0.1 就可以测试本机中配置的Web服务器
    
    常用来ping 127.0.0.1来看本地ip/tcp正不正常
    

    三、子网掩码

    用于测量两个IP地址是否属于同一个网段的工具

    • ⼦⽹掩码不能单独存在, 它必须结合IP地址⼀起使⽤

    • ⼦⽹掩码只有⼀个作⽤, 就是将某个IP地址划分成⽹络地址和主机地址两部分

    • ⼦⽹掩码的设定必须遵循⼀定的规则:与IP地址相同,⼦⽹掩码的长度也是32位,左边是⽹络位, ⽤⼆进制数字“1”表示;右边是主机位, ⽤⼆进制数字“0”表示

    • 假设IP地址为“192.168.1.1”⼦⽹掩码为“255.255.255.0”

      • “1”有24个, 代表与此相对应的IP地址左边24位是⽹络号
      • “0”有8个, 代表与此相对应的IP地址右边8位是主机号
      • 即C类ip

    四、端口号:用来标记区分进程

    • ⼀台拥有IP地址的主机可以提供许多服务, ⽐如HTTP(万维⽹服务) 、 FTP(⽂件传输) 、 SMTP(电⼦邮件) 等, 这些服务完全可以通过1个IP地址来实现。 那么, 主机是怎样区分不同的⽹络服务呢?

    • 显然不能只靠IP地址, 因为IP地址与⽹络服务的关系是⼀对多的关系。实际上是通过 “IP地址+端⼝号” 来区分不同的服务的

    注意:端⼝号是一个数字,只有整数, 范围是从0到65535 (分为知名和动态两种)

    • 知名端⼝是众所周知的端⼝号(用来做固定事情), 范围从0到1023,例如:
      • 80端⼝分配给HTTP服务(网站)
      • 21端⼝分配给FTP服务(文件下载)
      • 可以理解为, ⼀些**常⽤的功能使⽤的号码是固定的 **
    • 动态端⼝的范围是从1024到65535之所以称为动态端⼝
      • 之所以称为动态端⼝,是因为它⼀般不固定分配某种服务, ⽽是动态分配
      • 动态分配是指当⼀个系统进程或应⽤程序进程需要⽹络通信时, 它向主机申请⼀个端⼝, 主机从可⽤的端⼝号中分配⼀个供它使⽤

    五、网卡

    网卡(网络适配器,网络接口卡)是一块被设计用来允许计算机在网络上进行通讯的计算机硬件


    六、mac地址

    • 每一个网卡都有一个被称为MAC地址的独一无二的48位串行号

    • 也叫物理地址(实际地址):由网络设备制造商生产时写在硬件内部

    • IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而**MAC地址则是48位的(6个字节)

    如:08:00:20:0A:8C:6D就是一个MAC地址,其中前3组16进制数08:00:20代表网络硬件制造商的编号**,它由IEEE(电气与电子工程师协会)分配

    后3组16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号

    • MAC地址在世界是惟一的

    (可以直接理解为网卡的序列号)


    七、交换机

    • 集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。英文Hub就是中心的意思,像树的主干一样,它是各分支的汇集点。HUB是一个共享设备,主要提供信号放大和中转的功能,它把一个端口接收的所有信号向所有端口分发出去

    • 交换机(Switch)是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址

    • arp协议:地址解析协议(arp在七层中的第三层,mac在第二层)
      通过一台机器的IP地址获取到了它的mac地址,用到了交换机:
      主机发送信息时将包含目标IP地址ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址
      收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源
    • 注:第一次是广播,后面是单播

    八、路由器

    • 路由器:确定一条路径的设备,路由器是连接因特网中用来链接网络号不同的网络,相当于中间人;各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。
      路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路

    • 同一个局域网当中的终端之间进行通讯的基础是处于同一个网段中,一个路由器至少有两个网卡,能够链接不同网段的网络使之可以通信

    • 选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率

  • 相关阅读:
    mysql通过一张表更新另一张表
    申请微信支付填错对公账号的解决办法
    radio 实现点击两次 第一次点击选中第二次点击取消
    C#修改下拉框选项的高度
    Centos7 用yum命令安装LAMP环境(php+Apache+Mysql)以及php扩展
    php备份数据库
    windows环境下 composer 的安装与使用
    PHP获取多维数据的交集与差集
    JS 图片懒加载
    搭建 window + nginx + php 开发环境
  • 原文地址:https://www.cnblogs.com/fengting0913/p/13269166.html
Copyright © 2011-2022 走看看