• 网络基础


    TCP/IP 基础

    传统的通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

    网络接口层

    物理层是定义物理介质的各种特性,1、机械特性。2、电子特性。3、功能特性。4、规程特性。

    数据链路层是负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

    常见的接口层协议有:

    Ethernet 802.3、Token Ring802.5、X.25、Frame reley、HDLC、PPP ATM 等。

    网络层

    负责相邻计算机之间的通信。其功能包括三方面。

    一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。

    二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。

    三、处理路径、流控、拥塞等问题。

    网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)

    控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(ReverseARP)反向地址转换协议。

    IP是网络层的核心,通过路由选择将下一跳IP封装后交给接口层。IP数据报是无连接服务。

    ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。

    Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。

    ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址

    RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站和DHCP服务。

    传输层

    提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。

    传输层协议主要是:传输控制协议TCP(TransmissionControl Protocol)和用户数据报协议UDP(User Datagram protocol)。

    应用层

    向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。

    应用层一般是面向用户的服务。如FTP、TELNET、DNS、SMTP、POP3。

    FTP(File Transmision Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。

    Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。

    DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换。

    SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转。

    POP3(PostOffice Protocol 3)是邮局协议第3版本,用于接收邮件。

    数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息;

    网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有基 于TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制 信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。

    传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议;UDP则是面向无连接服务的管理方式的协议。

    TCP/IP模型的主要缺点有:

    首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,和接口层的区别是非常重要的,TCP/IP模型没有将它们区分开来。

    数据格式

    数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)

    IP数据包:IP头部+TCP数据信息 (IP头包括源和目标主机IP地址、类型、生存期等)

    TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)

    IP地址

    在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。

    Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。

    我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。

    目前,在Internet里,IP地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。

    地址分类

    IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。

    1. A类地址

    A类地址的表示范围为:1.0.0.1~126.255.255.255,默认网络屏蔽 为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。

    127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。

    0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。

    一个A类IP地址由 1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。每个A类地址理论上可连接 16777214<256*256*256-2>台主机(-2是因为主机中要用去一个网络号和一个广播号),Internet有126个可用的A类地址。A类地址适用于有大量主机的大型网络。

    2. B类地址

    B类地址的表示范围为:128.0.0.1~191.255.255.255,默认网络屏蔽为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。

    169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。

    一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是 “10”,即第一段数字范围为128~191。每个B类地址可连接65534(2^16-2, 因为主机号的各位不能同时为0,1)台主机,Internet有16383(2^14-1)个B类地址(因为B类网络地址128.0.0.0是不指派的,而可以指派的最小地址为128.1.0.0[COME06])。

    3. C类地址

    C类地址的表示范围为:192.0.0.1~223.255.255.255,默认网络屏蔽 为:255.255.255.0;C类地址分配给小型网络,如一般的局域网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。

    一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是 “110”,即第一段数字范围为192~223。每个C类地址可连接254台主机,Internet有2097152个C类地址段(32*256*256),有532676608个地址(32*256*256*254)。

    RFC 1918留出了3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址。在这个范围内的IP地址不能被路由到Internet骨干网上;Internet路由器将丢弃该私有地址。

    IP地址类别 RFC 1918内部地址范围

    A类 10.0.0.0到10.255.255.255

    B类 172.16.0.0到172.31.255.255

    C类 192.168.0.0到192.168.255.255

    使用私有地址将网络连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。

    实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:

    D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。 D类地址范围:224.0.0.1到239.255.255.254 。 D类地址用于多点播送。D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。

    E类地址保留给将来使用。

    连接到Internet上的每台计算机,不论其IP地址属于哪类都与网络中的其它计算机处于平等地位,因为只有IP地址才是区别计算机的唯一标识。所以,以上IP地址的分类只适用于网络分类。

    在Internet中,一台计算机可以有一个或多个IP地址,就像一个人可以有多个通信地址一样,但两台或多台计算机却不能共享一个IP地址。如果有两台计算机的IP地址相同,则会引起异常现象,无论哪台计算机都将无法正常工作。

    顺便提一下几类特殊的IP地址:

    1. 广播地址目的端为给定网络上的所有主机,一般主机段为全1

    2. 单播地址目的端为指定网络上的单个主机地址

    3. 组播地址目的端为同一组内的所有主机地址

    4. 环回地址127.0.0.1 在环回测试和广播测试时会使用

    网关地址

    若要使两个完全不同的网络(异构网)连接在一起,一般使用网关,在Internet中两个网络也要通过一台称为网关的计算机实现互联。这台计算机能根据用户通信目标计算机的IP地址,决定是否将用户发出的信息送出本地网络,同时,它还将外界发送给属于本地网络计算机的信息接收过来,它是一个网络与另一个网络相联的通道。为了使TCP/IP协议能够寻址,该通道被赋予一个IP地址,这个IP地址称为网关地址。

    子网

    若公司不上Internet,那一定不会烦恼IP地址的问题,因为可以任意使用所有的IP地址,不管是A类或是B类,这个时候不会想到要用子网,但若是上Internet那IP地址便弥足珍贵了,目前全球一阵Internet热,IP地址已经愈来愈少了,而所申请的IP地址目前也趋保守,而且只有经申请的IP地址能在Internet使用,但对某些公司只能申请到一个C类的IP地址,但又有多个点需要使用,那这时便需要使用到子网,这就需要考虑子网的划分,下面简介子网的原理及如何规划。

    子网掩码(Subnet Mask)

    设定任何网络上的任何设备不管是主机、个人电脑、路由器等皆需要设定IP地址,而跟随着IP地址的是所谓的子网掩码(NetMask,Subnet Mask),这个子网掩码主要的目的是由IP地址中也能获得网络编码,也就是说IP地址和子网掩码合作而得到网络编码,如下所示:

    IP地址

    192.10.10.6 11000000.00001010.00001010.00000110

    子网掩码

    255.255.255.0 11111111.11111111.11111111.00000000

    AND

    -------------------------------------------------------------------

    Network Number

    192.10.10.0 11000000.00001010.00001010.00000000

    子网作用

    使用子网是要解决只有一组C类地址但需要数个网络编码的问题,并不是解决IP地址不够用的问题,因为使用子网反而能使用的IP地址会变少,子网通常是使用在跨地域的网络互联之中,两者之间使用路由器连线,同时也上Internet,但只申请到一组C 类IP地址,过路由又需不同的网络,所以此时就必须使用到子网,当然二网络间也可以远程桥接(Remote Bridge,字面翻译)连接,那便没有使用子网的问题。

  • 相关阅读:
    少用 if 进行普通意义上的参数验证
    到底差在了什么地方:Cs>MUTEX>Monitor>WaitHandle
    SQL Server 中的事务和锁(三)Range SU,XX 以及死锁
    练习:自己动手实现一个轻量级的信号量(二)
    让人崩溃的一上午
    我所犯的几个愚蠢错误(一)
    一个系列 之二
    练习:自己动手实现一个轻量级的信号量(一)
    Delphi的DirectShow开发概述
    xvid的中文简介
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2690833.html
Copyright © 2020-2023  润新知