计算机网络体系结构详解
计算机网络体系结构
计算机网络的各层及其协议的集合,称为网络的体系结构。
网络协议:
为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。
网络协议主要由以下三要素组成:
1、语法,即数据与控制信息的结构或格式。
2、语义,即需要发出何种控制信息,完成何种动作以及做出何种相应。
3、同步,即事件实现顺序的详细说明。
网络协议是计算机网络不可缺少的部分,但是当我们经常在自己的PC机上进行文件存盘操作时,就不需要任何网络协议,除非这个用来存储文件的磁盘是网络上的某个文件服务器的磁盘。
具有五层协议的体系结构:
OSI 7层体系结构包括应用层、表示层、会话层、运输层、网络层、数据链路层、物理层。
TCP/IP是一个四层体系结构。包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是强调这一层是为了解决不同网络的互联问题)。从实质上讲,TCP/IP只有最上面三层,因为最下面的网络接口层并没有什么具体内容。
因此在学习计算机网络的原理时往往采取折中的方法,采用一种只有5层协议的体系结构。下面我们分别介绍。
物理层
信号的传输离不开传输介质,而传输介质两端必然有接口用于发送和接收信号。因此,既然物理层主要关心如何传输信号,物理层的主要任务就是规定各种传输介质和接口与传输信号相关的一些特性。
1.机械特性
指明接口所用的接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
差错检测
网络层
从一般概念来讲,将网络互相连接起来需要使用一些中间设备,根据中间设备所在的层次,可以有以下四种不同的中间设备。
1、物理层使用的中间设备叫做转发器(repeater)
2、数据链路层使用的设备叫做网桥或桥接器(bridge)
3、网络层使用的中间设备叫做路由器(router)
4、在网络层以上使用的中间设备叫做网关(gateway)
用网关连接两个不兼容的系统需要在高层进行协议转换
IP地址
IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。
A类、B类和C类地址都是单播地址(一对一通信)是最常用的。
A类、B类和C类地址的网络号字段分别为1,2,3个字节长,而在网络号的最前面有1~3位的类别位,其数值分别规定为0,10和110.
A类、B类C类地址的主机号字段分别为3个、2个和1个字节长。
D类地址用于多播(一对多通信)
而E类地址(前4位是1111)保留为以后用。
IP地址的指派范围:
特殊的IP地址:
一、0.0.0.0
严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
二、255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
三、127.0.0.1
本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。
四、224.0.0.1
组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机, 224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
五、169.254.x.x
如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。
六、10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x
私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译 (NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。
对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。
网络层提供的两种服务:
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议(ICMP)
ICMP报文的种类有两种:
ICMP差错报告报文
ICMP差错报告报文共有5种
1> 终点不可达:终点不可达分为:网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为0至5。当出现以上六种情况时就向源站发送终点不可达报文。
说明:
端口不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。
2> 源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。
3> 时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。
4> 参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。
5> 改变路由(重定向)路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
ICMP询问报文
ICMP询问报文有两种:
1、回送请求和回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文,这种询问报文用来测试目的站是否可达以及了解其有关状态。
2、时间戳请求和回答
ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用来进行时钟同步和测量时间。
IP数据包格式以及路由协议请自行百度。
传输层
只有主机的协议栈才有传输层,而网络核心部分中的路由器在转发分组时,都只用到下三层的功能。
传输层提供应用进程间的逻辑通信。也就是说通信的真正端点不是主机而是主机中的进程。
TCP连接、数据传输、与断开连接示意图:
应用层
应用层的具体内容就是规定应用进程在通信时所遵循的协议。
应用层协议分类: