计算机网络概念: 将处于不同地理位置, 并具有独立计算能力的计算机系统经过传输介质和通信设备相互连接, 在网络操作系统和网络通信软件的控制下, 实现资源共享的计算机的集合。计算机之间的连接是物理的, 由硬件实现。连接所使用的介质可以是双绞线、同轴电缆或光纤等有线介质; 也可以是无线电、激光、大地微波或卫星微波等无线介质。
网络按规模大小可分为局域网(LAN)、城域网(MAN)、广域网(WAN)和互联网(Internet)。局域网(分布距离1000m,覆盖范围:房屋建筑校园);城域网(分布距离10km,覆盖范围:城市);广域网(分布距离100km,覆盖范围:国家);互联网(分布距离1000km以上,覆盖范围:全球)。
局域网:传统局域网具有高数据传输率(10 Mbit/ s 或100 Mbit/ s) 、低延迟和低误码率的特点。拓扑结构有总线型、环型、星型、树形等。总线型常用的是以太网(IEEE 802 .3),它基于共享总线、采用分布控制机制,防冲突机制是:以太网中的站点机器可以在任意时刻发送数据, 当发生冲突时, 每个站点机器立即停止发送数据, 并等待一个随机长的时间继续尝试数据发送。环形网常见是IBM 令牌环(I EEE 802 .5)[需要再进一步了解] 。
城域网[跳过]
广域网:把网络分为主机和通信子网,通信子网又分为传输信道和转接设备。对于局域网来说, 它是由电缆和主机构成的, 没有通信子网。一种典型的广域网是基于分组交换的ARPANET 网(阿帕网),它的转接设备叫作接口报文处理机( I MP ,Interface Message Processor)。当报文从源节点经过中间I MP 发往远方目的节点时, 每个I MP 将输入的报文完整接收下来并储存起来, 然后选择一条空闲的输出线路, 继续向前传送, 因此这种子网又称为点到点(Point-to-Point) 子网、存储转发(Store-and-Forward) 子网。广域网的另外一种可能的组网方式是卫星或地面无线电网 。
互联网:互联网一般是不同网络的通过网关相互连接, 如局域网和广域网的连接、两个局域网的相互连接或多个局域网通过广域网连接起来。不同网络的物理结构、协议和所采用的标准是各不相同的,需要网关进行转化。
网络结构参考模型学过的有三种,①OSI参考模型,②五层参考模型,③TCP/IP参考模型。
OSI 参考模型:全称OSI/ RM, Open System Interconnection/ Referrence Model(开放系统互联基本参考模型)。“开放”的基本含义表示能使任何两个遵守参考模型和有关标准的系统进行互联。OSI 包括了体系结构、服务定义和协议规范三级抽象。OSI 的体系结构定义了一个七层模型, 用以进行进程间的通信, 并作为一个框架来协调各层标准的制定; OSI 的服务定义描述了各层所提供的服务, 以及层与层之间的抽象接口和交互用的服务原语;OSI 各层的协议规范精确地定义了应当 发送何种控制信息及何种过程来解释该控制信息。需要强调的是,OSI/ RM并非具体实现的描述, 它只是一个为制定标准机而提供的概念性框架。在OSI 中, 只有各种协议是可以实现的, 网络中的设备只有与OSI和有关协议相一致时能互联。
如下图所示: OSI七层模 型从下到上分别为物理层( PH ,PHysical layer) 、数据链路层( DL ,Data Link layer) 、网络层( N ,Net work layer) 、传输层( T ,Transport layer) 、会话层( S ,Session layer) 、表示层( P ,Presentation layer) 和应用层( A ,Application layer) 。
物理层:数据单元通常称为比特流。其作用是使原始的数据比特流能在物理媒体上传输。具体涉及接插件的规格,“0”、“1”信号的电平表示, 收发双方的协调等内容。
数据链路层:数据单元通常称为帧。数据链路层的主要作用是通过校验、确认和反馈重发等手段, 将不可靠的物理链路改造成对网络层来说无差错的数据链路。数据链路层还要进行流量控制。(点到点)
网络层:数据单元通常称为分组。网络层主要解决如何使数据分组跨越通信子网从源传送到目的地的问题,关心的是通信子网的路由选择,对流入的分组数量进行控制,当分组要跨越多个通信子网才能到达目的地时, 还要解决网际互联的问题。
传输层:传输层是第一个端—端, 即主机—主机的层次。传输层还要处理端到端的差错控制和流量控制问题。
会话层:会话层是进程—进程的层次, 其主要功能是组织和同步不同的主机上各种进程间的通信( 对话) 。会话层控制半双工模式下某一方何时有权发送数据。会话层还提供在数据流中插入同步点的机制, 使得数据传输因网络故障而中断后, 可以不必从头开始而仅重传最近一个同步点以后的数据。
表示层:表示层为上层用户提供共同的数据或信息的语法表示变换。表示层管理这些抽象的数据结构, 并将计算机内部的表示形式转换成网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的表示变换功能。
应用层:不同的应用层为特定类型的网络应用提供访问OSI 环境的手段。网络环境下不同主机间的文件传送访问和管理( FTAM) 、传送标准电子邮件的文电处理系统( MHS) 、使用不同类型的终端和主机通过网络交互访问的虚拟终端( VT) 协议等都属于应用层的范畴。
五层参考模型:是简化了的OSI。从下到上是:物理层,数据链路层,网络层,传输层,应用层。
TCP/ IP参考模型:TCP/ IP 协议族包括四层, 从下往上分别为数据链路层( 网络接口层) 、网络层、传输层和应用层。下图描述了 TCP/ IP 的分层结构以及 TCP/ IP 与 OSI 七层结构的对应关系。其中需要注意的是: 从 TCP/ IP 体系结构来看,ARP/ RARP 属于链路层协议, 从协议封装角度来看, 它和IP 是一个层次, 所以在图中, 我们将它们放在网络层。
数据链路层(也称为网络接口层 Net work Interface):数据链路层涵盖了各种物理介质层网络技术, 可以支持任何一种数据链路技术:以太网、令牌环、ATM、FDDI( 光纤分布式数据接口) 、帧中继等。此外, 数据链路层还包括了地址解析协议( ARP,Address Resolution Protocol) , 以及为无盘工作站提供地址的反向地址解析协议( RARP,Reverse Address Resolution Protocol) 。
网络层(IP 层):这一层必须具有路由能力,故这层包括路由选择协议( RIP) ,RIP 协议可以在网络上查询设备来决定如何把数据包发送到目的地。网络层还可以让主机交换网络本身的信息, 实现这种功能的协议叫做网际控制报文协议(ICMP , Internet Control Message Protocol) 。本层还有支持组播的网际组管理协议(IGMP) 。
传输层:它的功能包括: 格式化信息流( 将数据流分段) ; 提供可靠传输。它主要有两个协议: 用户数据报协议( UDP) 和传输控制协议( TCP) 。UDP 可提供应用层软件的传输业务, 它能为不需要可靠数据流的应用提供最好效果的传送。UDP 与IP 一样, 提供无连接的传输业务。它不需要进行流量控制, 不需要每发一个包就要回应确认, 不需要对包进行排序。TCP 则用于需要可靠传输的网络应用, 如:FTP( File Transfer Protocol) 、SMTP( Simple Mail Transfer Protocol) 等。
应用层:提供各种Internet 的管理和应用服务功能, 主要包含一些高层服务协议, 这些服务协议利用低层协议( 如 TCP/ UDP) 来提供常见 的Internet 服 务。常 见的 有: 远程登录( Telnet ,rlogin) 、文件传输( FTP , TFTP ,NFS) 、电 子 邮 件( SMTP , POP3) 、网 络 管 理( SNMP) 、域 名 系 统( DNS) 、WWW 服 务( HTTP) 等等。
网络接入方式:局域网接入;拨号接入; ISDN 接入;xDSL 接入;DDN 专线接入; 光纤接入等。
局域网接入:通过局域网连接到Internet 是Internet互联最常用的方式。按照网络交换与接口技术的不同, 局域网通常可以分为以太网( Ethernet) 、令牌环网( Token Ring) 、光纤分布式数据接口( FDDI) 和 ATM( 异步传输模式) 网等, 其中最常用的是以太网。
-以太网(IEEE 802 .3)是当今最重要的一种局域网组网技术, 其特点是灵活、简单和易于实现。以太网的基本特征是采用一种称为载波监听多路访问/ 冲突检测( CSMA/ CD, Carrier Sense Multiple Access/ Collision Detection) 的共享访问方案, 即多个工作站都连接在一条总线上,所有的工作站都不断向总线上发出监听信号, 但在同一时刻只能有一个工作站在总线上进行传输, 而其他工作站必须等待其传输结束后再开始自己的传输。冲突检测方法保证了只能有一个站在电缆上传输。
拨号接入:拨号网络是指以拨号接入的方式使电脑连接到Internet 。拨号接入是指用户主机或服务器系统通过普通的调制解调器与普通电话线, 借助 PSTN(公共交换电话网络) 与ICP 相连, 进而联 入Internet 。拨号接入是目前使用最广泛的Internet 接入方式。拨号接入仍是目前最便宜、最方便的Internet 接入方式, 但是接入速率相对较低。
ISDN接入:所谓ISDN(Integrated Services Digital Net work) , 是在现有的市话网基础上构造的纯数字方式的“综合业务数字网”, 能为用户提供包括语音、数据、图像和传真等在内的各类综合业务。
xDSL 接入
光纤接入:光纤接入是指局端与用户之间完全以光纤作为传输媒体。目前, 光纤传输的复用技术发展相当快, 多数已处于实用化。复用技术用得最多的有时分复用( TDM) 、波分复用( WDM) 、频分复用( FDM) 、码分复用( CDM) 等。
从更细致的方面解析TCP/IP四层体系结构
链路层详细讲解:数据链路层是各种通信网和 TCP/ I P 之间的接口, 这些通信网包括多种广域网( 如ARPANFT , MILNET 和 X.25 公用数据网) , 以及各种局域网( 如Ethernet 、I EEE 的各种标准局域网等) 。TCP/ I P 支持多种不同的链路层协议, 如以太网、令牌环网、FDDI( 光纤分布式数据接口) 及 RS232 串行线路等。TCP/ I P 协议的链路层网络实体之间的通信使用各自的物理地址, 而网络层则使用IP 地址,ARP 和 RARP 协议提供这两类地址之间的映射机制。
在TCP/ I P 协议族中, 链路层主要有3 个目的:
为IP 模块发送和接收I P 数据报;
为ARP 模块发送ARP 请求和接收ARP 应答;
为RARP 发送 RARP 请求和接收 RARP 应答。
一般情况下, 各物理网络可以使用自己的数据链路层协议和物理层协议, 不需要在数 。
据链路层上设置专门的TCP/ I P 协议。但是, 当使用串行线路连接主机与网络, 或网络与网络时, 则需要在数据链路层运行专门的SLIP( Serial Line IP) 协议的PPP( Point to Point Protocol) 协议。例如, 用户使用电话线和 MODE M 接入或两个相距较远的网络通过数据专线互联
以太网是当今 TCP/ IP 采用的主要局域网技术。它采用一种称作CSMA/ CD 的媒体接入方法, 即带冲突检测的载波侦听多路访问( Carrier Sense Multiple Access/ Collision Detection):发前侦听,闲则发送,忙则避让,发时续听,冲突停止,避让等待。等待一个随机时间。以太网规定了最短有效帧长为 64 字节。对于对于 10 Mb/s 以太网,在2τ内可发送64 字节。所以以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。冲突检测只检测2τ的时间。另外帧与帧之间也要有最小发送间隔,以便使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备
以太网帧格式都采用48 bit(6 字节) 的目的地址和源地址, 即本书中所称的硬件地址或 MAC 地址。类型字段定义了后续数据的类型:IP 协议类型值为0x0800 ,ARP 协议类型值为0x0806 ,RARP 协议类型值为0x0835 。类型字段之后就是数据, 也就是以太网帧的载荷。数据的长度具有46 ~1 500 字节的限制, 这是为了方便冲突检测。以太网帧的最后4 字节是前面各个域的CRC 校验和。
ARP/ RARP协议:ARP , 用于从IP 地址到物理地址的映射;RARP , 用于从物理地址到IP 地址的映射。地址解析报文 ARP 只用于解析对方的 MAC 地址;RARP 除用于解析本机的IP 地址, 还可用于解析第三方的IP 地址。
ARP 是一种动态联编的标准。若主机A欲获得主机B的MAC地址:①首先查找自己主机的ARP Cache(专用的高速缓存) ②若查找不到,则向网络中发送请求(附带自身的IP-MAC地址对)。主机B收到请求,对照IP地址发现与自身IP地址相同,给主机A回信。③主机A收到后,将主机B的IP-MAC地址对存入Cache。另外,信源机在广播自己的地址联编时, 网上的所有主机都可以将它存入自己的高速缓存;新机入网时, 令其主动广播地址联编, 以免其他主机对它运行ARP 。在Windows 系统下, 可使用arp-a 命令观察主机的 ARP 缓存表。此表是动态的, 可以使用ping 命令多ping 几台局域网中的其他主机, 再使用arp-a 命令观察。
RARP 协议,RARP 运作需要服务器上有个很大的IP-MAC 地址映射数据库, 并能够响应客户端的请求。当一个 RARP server 收到一个客户端的请求, 它会在自己的MAC-IP 地址映射数据库中查找, 如果找到了, 就向客户端发出响应, 响应中包含有客户端的IP 地址; 找不到, 请求就被摒弃了。
ARP/ RARP协议帧格式相同。如下图:
硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。当ARP请求时,以太网首部中“以太网目的地址”为ff ff ff ff ff ff (广播)。“ARP请求”中目的以太网地址00 00 00 00 00 00。更多实例分析
点对点协议
网络层详细讲解:因特网协议(IP) 定义了如何将网络传输的数据装配为IP 数据报( 也叫作I P 包) , 以及如何在因特网上传输IP 数据报的规则。本节重点介绍IP 层的主要协议:IP 协议、I CMP 协议和路由选择协议。
IP 协议:I P 协议是 TCP/ IP 协议族中最为核心的协议。所有的 TCP 、UDP 、I CMP 及I GMP数据都以IP 数据报格式传输。IP协议格式如下图,是把本篇第三张图中的“IP数据报文”摘出来细看。
格式详细解释:首部中固定部分占20个字节。“版本”:占 4 bit,目前的流行协议版本号是4 , 因此I P 有时也称作IPv4 。I Pv6 也已经由实验阶段转入应用阶段。“首部长度”:占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是60字节。“服务类型”:定义了优先级和一些特殊的服务类型,不过之前很少使用,这里不多说。“总长度”:占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。“标识”:(identification) 占 16 bit,它是一个计数器,用来产生IP数据报的标识。注意分段之后的各个IP数据包标识相同。“标志”(flag):占 3 bit,第一位不用;第二位DF位:1 表示该IP包不分段;0表示该IP包分段;MF位:1表示该IP包已分段, 当前分段不是最后分段;0表示该分段是最后分段 。“片偏移”:12 bit,指较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。“生存时间”TTL( Ti me- To- Live):8 bit指出:每经过一个路由器减1。当该字段的值为0 时, 数据报就被丢弃, 并发送I CMP 报文通知源主机。“协议”:8 bit;指IP数据包的数据部分在传输层封装时所采用的协议。例如,1 表示ICMP 报文,6 表示TCP 报文,17 表示 UDP 报文。“首部校验和”:16 bit, 用于报头的校验, 以保证IP 报头的完整性。源IP 地址和目的I P 地址长度为32 位, 指明发送该数据报的源主机的IP 地址和接收该数据报的目的主机的IP 地址。“可选字段”:和一些安全处理和记录工作有关。“填充字段”需要保证首部长度为4字节的整数倍。
IP地址分类:如下图所示,注意每类地址前几位是固定的,这样保证了不同类IP地址网络号的连贯。其中127.x.x.x是保留用作回环地址 。255.255.255.255是向本网络上的所有主机广播。若网络号不全为1,主机号全1,对网络号所对应的网络内的所有主机进行广播。主机号全0:表示该IP就是该网络号的地址。
IP地址分配:IP地址由专门IANA(互联网地址管理机构)分配,不接受个人用户的IP地址申请。IANA将IP地址分为公网地址和私网地址,公网地址不可重复,全球唯一;私网地址用于单位内部的局域网,多个局域网之间可重复。同一个局域网中的IP地址网络号必须相同,用Hub或网桥(以太网交换机)连接起来的若干个局域网仍为一个网络,因此这些局域网中的IP地址都具有相同的网络号。
无分类域间路由选择 CIDR (Classless Inter-Domain Routing):CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,使用各种长度的“网络前缀”(network-prefix)或叫“掩码”来代替分类地址中的网络号和子网号。因而可以更加有效地分配 IPv4 的地址空间。主机号全0和全1一般不使用,全0表示网络地址,全1表示广播地址。CIDR 地址块在路由表中采取最长前缀匹配方式,CIDR地址块可以整合原来多个条目的网络号,解决了路由表中的条目数急剧增长的问题。
ICMP 协议,网际控制报文协议(I CMP ,Internet Control Message Protocol):每个ICMP 报文都是作为IP 数据报的数据部分在网络中进行传输的。其报文格式如下图所示。
ICMP报文类型字段为1 字节。如下图所示,ICMP报文说明(1字节)是报文类型下面更细小的类型分类。I CMP 的11 个报文类型按功能又可分为3 大类:I CMP 差错报文、I CMP 控制报文及I CMP 请求/ 应答报文。(1) ICMP 差错报文(提供差错报告传输机制)① 目的不可达报文② 超时报文③ 参数出错报文;(2) ICMP 控制报文(ICMP 控制报文主要用于网络拥塞控制和路由控制)① 报源抑制报文② 重定向报文;(3) ICMP 请求/ 应答报文① 回送请求与响应报文(检测目的站的可达性与状态,ping)② 时间戳请求和应答报文(用于估算源和目的节点间的报文往返时间)③ 掩码请求响应报文(用于获取源主机所在网络的IP 地址掩码信息, 可使无盘系统在引导过程中获取自己的子网掩码 )
路由选择:网络路由任务可分为两大类, 第一类任务是保证所有网络( 比如: 局域网、内联网等)都可以在其内部快速传递网络数据流( 内部路由选择) ; 而第二类任务则是确保这些网络之间实现可靠路由连通( 也就是外部路由选择)。我们通常把路由器支持的内部路由协议称为内部网关协议( IGP) , 这里的网关就是指路由器。同理, 外部路由协议也常被叫作外部网关协议( EGP) 。I GP 用于自治域内部的路径信息交换, 较常用的有RIP 协议和 OSPF 协议。RIP 协议是使用最广泛的I GP 协议之一, 是向量- 距离( V- D,Vector- Distance) 算法的实现;OSPF 协议是链接- 状态( S- L) 算法的实现, 它解决了 RIP 协议的一些不足。EGP 用于两个自治域之间路由信息的交换, 常用的协议是边界网关协议( BGP ,Border Gateway Protocol) 。
转发”与“路由选择”的区别:①转发”(forwarding)就是路由器根据转发表将用户的数据包从合适的端口转发出去。属于转发平面的范畴。②路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。属于控制平面的范畴。转发表和路由表的区别:路由表:属于控制平面,由路由协议计算得出,是转发表的生成依据。转发表:属于数据平面,直接作用于数据包。两者的联系:转发表通过路由表生成。使用路由表中的信息,加上自身的主机方面的信息-比如网卡等信息-加以综合,得到一张转发表。
路由算法:是网络层软件的一部分,是图论在计算机网络中的应用。路径评价的方法可以基于路径最短或者代价最小。下面介绍最短路径路由、洪泛路由、距离向量路由算法、链路状态路由、分层路由。
最短路径路由算法,典型代表是Dijkstra算法:过程如下图,每一个节点都记录了它离起始节点的最小距离和最小距离条件下的上一跳,
洪泛路由:基本思想,事先不需要任何网络信息,路由器把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。 将来会有多个分组的副本到达目的地端,最先到达的,一定是走了“最优”的路径。为了避免产生大量重复包①每个包头包含站点计数器,每经过一站计数器减1,为0时则丢弃该包,②每个结点记录包经过的路径,当包再次重复通过同一结点时,丢弃该包。
距离向量路由算法:典型应用:路由协议RIP、EIGRP;算法理解参考下图,每个路由器在路由表更新时会向邻居节点发送新的路由表,邻居节点收到后会结合自己的路由表进行更新:
但是会造成“无线计算问题”,如下图第一个,对好消息(当A与B连同)反应迅速,对坏消息(当A与B断开)反应迟钝。问题根源:是由于节点回头告知所引起的,即:如果A到一个目标的距离是通过邻居B计算得出的,那么A不能回头再告诉B。解决方案:①令“∞”为一个确定的数字,如:16,但这样一来,网络中两点之间的距离不能太大,否则无法表示。②水平分割法:具体做法是:到X的距离不向真正通向X的邻居节点报告。但有些场景下,该方法也会出问题,如下图第二个(假定C是目标节点)