zoukankan      html  css  js  c++  java
  • 网络传输内存术语小结

    大纲:

    1.子网掩码

    2.CIDR

    3.域名

    4.TCP

    5.任务,进程和线程

    6.电脑内存和磁盘空间

    7.I/O

     

     

    一、子网掩码(subnet mask):

    1.它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分,可以区分网络号和主机号。

    2.子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
    通过运算,左边是网络号,右边是主机号

     

    3.最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。
    如果子网掩码设置为255.255.255.252,那么该子网只能容纳两台电脑,而且这两台电脑的IP必须在一个子网内才能正常联网,例如一台电脑的IP设为192.168.1.10,另外一台电脑的IP必须设置为192.168.1.9。
    分为三类:
    A类网络缺省子网掩码:255.0.0.0
    B类网络缺省子网掩码:255.255.0.0
    C类网络缺省子网掩码:255.255.255.0
     
    可以进行二进制计算:
    通过以上对不同计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0
    所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。---局域网通讯
     
    二、CIDR(无类别域间路由,Classless Inter-Domain Routing):
    是一个在Internet上创建附加地址的方法,这些地址提供给服务提供商(ISP),再由ISP分配给客户。CIDR将路由集中起来,使一个IP地址代表主要骨干提供商服务的几千个IP地址,从而减轻Internet路由器的负担。
     
    三、域名
    1.是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
    可以访问的地址,网络定位。
    2.DNS:
    通过域名服务器实现域名和IP地址的转换,使人们访问互联网更方便。
    作用:通过对网址进行DNS域名解析,得到对应的IP地址
    网域名称系统(DNS,Domain Name System,有时也简称为域名系统)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的系统,搭载域名系统的机器称之为域名服务器,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
    3.在域名中大小写是没有区分的。域名一般不能超过5级,从左到右域的级别变高,高的级域包含低的级域。域名在整个Internet中是唯一的,当高级子域名相同时,低级子域名不允许重复。一台服务器只能有一个IP地址,但是却可以有多个域名。
    4.常用域名:
    • 无赞助:.biz .com .edu .gov .info .int .mil .name .net .org .pro .xyz

    注意:DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找之后,找到了,给我们的web浏览器

    5.域名解析过程:

     a)首先会搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)

      b)如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的DNS缓存

      c)如果还没有找到,那么尝试从 hosts文件里面去找

      d)在前面三个过程都没获取到的情况下,就递归地去域名服务器去查找

     四、TCP(传输控制协议)

    1.传输层通信协议,旨在适应支持多网络应用的分层协议层次结构,在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。每台支持TCP的机器都有一个TCP传输实体。TCP实体可以是一个库过程、一个用户进程,或者内核的一部分。

    2、功能:

    IP层并不保证数据报一定被正确地递交到接收方,也不指示数据报的发送速度有多快。正是TCP负责既要足够快地发送数据报,以便使用网络容量,但又不能引起网络拥塞。

    当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。 
    TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);
    如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
    3.术语:
    ACK表示Acknowledgment Number字段有意义

    SYN表示SYN报文(在建立TCP连接的时候使用)

    FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)
    Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
    可以通过命令修改重传时间和字流大小
    4.三次握手
    当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并SYN+ACK,并SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。
     
    TCP三次握手的过程如下:
    1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
    2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
    3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
    三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
     
     

     

    注意:拿到域名对应的IP地址之后,User-Agent(一般指浏览器)会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx)等的80端口。这个连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间有各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终达到WEB程序,最终建立了TCP/IP的连接

    关闭需要四次握手:

     

     五、任务,进程和线程

    1.任务(task):

    任务是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。

    2.进程(process):

    进程(process)常常被定义为程序的执行,是资源分配的基本单位。

    例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。

    进程包含线程。

    进程特性:

    独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间。在没有经过进程本身运行的情况下是不能访问其中的内容的。

    动态性:进程与程序的区别在于,程序是静态的,进程是动态的。程序只是一个静态的指令集合,而进程是一个正在系统中运行的指令集合。有了时间的概念,如生命周期;

    并发性:进程之间,交替着执行。

    3.线程(tread)

    线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。

    进程和线程关系:

    (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 

    (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 
    (3)处理机分给线程,即真正在处理机上运行的是线程。 
    (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

    线程相对于进程而言,很强大了,做到了资源的共享,资源的损耗降低,人为的手工控制程序的运行。

     

    六、电脑内存和磁盘空间

    1.电脑内存--安装内存(RAM)--运行内存--物理内存

    1)是计算机内部(在主板上)的一些存储器,用来保存CPU运算的中间数据和计算结果,内存是电脑的一个中转站,从硬盘那里取出数据或运行程序提供给中央处理器,它的速度很快。

    电脑的运行内存,是通过插内存条的形式存在的。一般容量有1G、2G、4G、8G、16G等。内存的大小,直接影响到电脑的流畅度,内存越大越好。2

    2)易挥发性,即掉电失忆。它是临时存放数据用的,断电后数据丢失。

    3)内存作为1个存储数据的存在, 有1个很重要的特性, 就是内存里的数据能被cpu直接访问。   cpu能不能直接访问硬盘的数据呢, 不能。 只能通过把硬盘的数据先放到内存里, 然后再从内存里访问硬盘的数据。我们平时玩游戏碰上读图loading 进度条的这个过程, 就是把数据从硬盘读到内存的过程啊。  读完条后地图的数据就在内存中了。

    所以内存才是计算机系统的主存储器, 而硬盘是被分到跟光盘..u盘一类都是外部存储器。

    4)注意:内存地址的数量决定cpu能访问的内存大小(二进制).

    32位系统最多访问4G:

    2^32到底是多少个? 2^32 = 4 * 1024(G) * 1024(M) * 1024(K) = 4294967296 , 就是4G 

    64位系统访问更多:

    2^64 = 2^34 *   2^10(G) * 2^10(M) * 2^10(K)    也就是 17179869184 G(4G × 4G)个地址,也就是说64位系统配上64位cpu理论上支持17多亿GB的内存, 当然这个只是理论了, 实际上现在的普通主版能上个16GB都不错了。

    2.虚拟内存

    虚拟内存:当电脑需要的数据太多或程序太大时,内存不够用只好暂时把一部分内容放在指定的硬盘里,即为应急把硬盘当内存用,可设置大小,而硬盘的速度比内存慢得多,这就是电脑有时运行慢的原因之一。

    由于虚拟内存用的是硬盘空间,硬盘的读写速度要远远低于真正的内存,所以设置过大虚拟内存会影响你计算机的速度。并且虚拟内存最好是设置成你不经常用的磁盘分区上,因为不经常用的分区碎片少,磁头读写顺畅,相对较快,是程序运行的缓冲区。

    有时运行大型游戏时,系统会提醒虚拟内存太小,你就得自定义你的虚拟内存来使你的游戏玩得畅快些了。

    3.磁盘空间--固态存储器--ROM

    特点:一次写入,反复读取

    硬盘是相对固定的,存放的是系统软件、应用软件等完全可由你自己控制的东西。硬盘是一个储存设备,有20G的,40G的,80G的,甚至上百的 "我的电脑"中的C盘,D盘都是硬盘

    七。I/O

    1)I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。

    多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。

     读操作:操作系统检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存中返回;否则从磁盘中读取,然后缓存在操作系统的缓存中。

     写操作:将数据从用户空间复制到内核空间的缓存中。这时对用户程序来说写操作就已经完成,至于什么时候再写到磁盘中由操作系统决定,除非显示地调用了sync同步命令.

    2)缓存I/O的优缺点:

    缓存I/O的优点:1)在一定程度上分离了内核空间和用户空间,保护系统本身的运行安全;2)可以减少读盘的次数,从而提高性能。

    缓存I/O的缺点:在缓存 I/O 机制中,DMA 方式可以将数据直接从磁盘读到页缓存中,或者将数据从页缓存直接写回到磁盘上,而不能直接在应用程序地址空间和磁盘之间进行数据传输,这样,数据在传输过程中需要在应用程序地址空间(用户空间)和缓存(内核空间)之间进行多次数据拷贝操作,这些数据拷贝操作所带来的CPU以及内存开销是非常大的。

    标准文件访问方式:

     

     

     

     

     

     

     

  • 相关阅读:
    lvs_基础理论
    iptables_表和链(Traversing of tables and chains)
    题解-【集训队作业2018】Simple Tree
    题解-CF559C
    题解-[Violet]天使玩偶/SJY摆棋子
    题解-[POI2014]PRZ-Criminals
    题解-CF961G
    题解-CF1392H
    WorldCreator基础流程
    gstreamer-vaapi 之 README
  • 原文地址:https://www.cnblogs.com/huanlfu/p/11247008.html
Copyright © 2011-2022 走看看