TCP/IP简介 要点
描述网络是如何工作的
l 描述在OSI和TCP模型中协议的作用和基本功能
l 使用分层模型的方法,识别并纠正第1、第2、第3和第7层常见的网络问题
实现IP寻址方式和IP服务来满足中等规模企业的分支办公网中的网络要求
l 描述使用私有和公共IP地址寻址的性能和好处
传输控制协议/因特网协议(TCP/IP)组是由美国国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信。 3.1、TCP/IP简史
TCP/IP于1973年面世,并于1978年被划分成两个协议:TCP和IP。1983年,TCP/IP取代了NCP(Network Control Protocol,网络控制协议),并被批准成为官方数据传输方式,用于任何连接到ARPnet的网络。
大部分TCP/IP开发工作都是由位于加州北部的加州大学伯克利分校完成的。
3.2、TCP/IP和DOD模型
DoD模型基本上是OSI模型的一个浓缩版本,它只有4个层次,而不是7个,它们是:
l 过程/应用层
l 主机到主机层
l 因特网层
l 网络接入层
DoD模型和OSI模型的比较
DoD模型
OSI模型
过程/应用层
应用层
表示层
会话层
主机到主机层
传输层
因特网层
网络层
网络接入层
数据链路层
物理层
注:当在IP栈中来描述不同的协议时,OSI模型和DoD模型中的层是可以互换的。换句话说,因特网层和网络层描述的是相同的事情,主机到主机层和传输层也是同样的。
过程/应用层定义了结点到结点的应用通信协议以及对用户界面规范的控制。
主机到主机层的功能类似于OSI模型中传输层的功能,它所定义的协议为应用程序提供了在传输层面上的服务。它主要解决了如何创建可靠的端到端的通信,并确保对数据传送是无差错的。它保证了数据包的顺序传送及数据的完整性。
因特网层对应于OSI模型的网络层,,它所包含的协议涉及数据包在整个网络上的逻辑传输。它注重通过赋予主机一个IP(因特网协议)地址来完成对主机的寻址,它还负责数据包在多种网络中的理由。
在DoD模型的底部是网络接入层,它负责监视数据在主机和网络之间的交换。它等价于OSI模型的数据链路层和物理层,网络接入层检查硬件地址并定义数据的物理传输协议。
l FTP
l TFTP
l NFS
l SMTP
l LPD
l X Window
l SNMP
l DNS
l DHCP/BootP
OSI 7层参考模型
DoD层次结构
TCP/IP协议组件
应用层
过程/应用层
Telnet
FTP
LPD
SNMP
表示层
TFTP
SMTP
NFS
X Window
会话层
传输层
主机到主机层
TCP
UDP
网络层
Internet层
因特网层
ICMP
ARP
RARP
IP
数据链路层
网络接入层
Ethernet
Fast Ethernet
Token Ring
FDDI
物理层
Telnet
Telnet是协议中的变色龙,它的特别之处在于它对终端的仿真。它允许一个用户在远程客户端(被称为Telnet客户)访问另一台机器(称为Telnet服务器)上的资源。Telnet是通过在Telnet服务器上运行并且在客户端显示操作结果来实现控制的,就好像是一个本地连接在本地网络上的操作终端。这个显示结果实际上是一个软件处理的映像,即一个虚拟终端,一个可以同远程被选择主机进行交互控制的虚终端。
这些仿真终端是一些基于文本模式类型的终端,它可以执行一些精心编制的程序,如带有可以给用户提供多种选项菜单的程序,并且它还可以在登录的服务器上访问一些应用程序。用户可以通过运行Telnet客户端软件来打开一个Telnet会话,并且登录到Telnet服务器上。
FTP
文件传输协议(FTP)实际上就是传输文件的协议,它可以应用在任意两台主机之间。但是FTP不仅仅是一个协议,它同时也是一个程序。作为协议,FTP是被应用程序所使用的;而作为程序,用户需要通过手动方式来使用FTP并完成文件的传送。FTP允许执行对目录和文件的访问,并且可以完成特定类型的目录操作,例如将文件重新定位到不同的目录中。显然,FTP是与Telnet合作一同来完成对FTP服务器的登录操作,并在这之后再开始提供文件传送服务的。
然而,通过FTP访问主机这只是第一步。随后,用户必须通过一个由系统管理员为保护系统资源而设置的安全登录认证,这个认证需要输入正确的口令和用户名。但是也可以通过使用用户名“anonymous”来尝试登录,当然,通过这种方式完成登录后,所能访问的内容将会受到某些限制。
即使FTP可以被用户以应用程序的方式来使用,FTP的功能也只限于列表和目录操作、文件内容输入,以及在主机间进行文件拷贝,它不能远程执行程序文件。
简单文件传输协议(TFTP)
简单文件传输协议(TFTP)是FTP的简化版本,只有在你确切地知道想要得到的文件名及它的准确位置时,才可有选择地使用TFTP。TFTP是一个非常易用的、快捷的程序!TFTP并不提供像FTP那样的强大功能。TFTP不提供目录浏览的功能,它只能完成文件的发送和接收操作。这个紧凑的小协议在传送的数据单元上也是节省的,它发送比FTP更小的数据块,同时它也没有FTP所需要的传送确认,因而它是不可靠的。正是由于这个内在的安全风险,事实上只有很少的站点支持TFTP服务。
网络文件系统(NFS)
网络文件系统(NFS)在文件共享中是一个特殊的协议珍宝。它允许两个不同类型的文件系统实现互操作。它的工作机理是这样的:假设NFS服务器软件运行在NT服务器上,而NFS客户端软件则运行在一台UNIX主机上。NFS允许在NT服务器上划分出一部分RAM来透明地存放UNIX文件,而这些文件可以被一些UNIX用户使用。即使NT文件系统和UNIX文件系统是完全不同的(它们有不同的大小写敏感性、文件名长度、安全保障等),UNIX用户和NT用户也依然可以以他们习惯的方式来使用他们常用的文件系统,访问同一个文件。
简单邮件传输协议(SMTP)
简单邮件传输协议(SMTP)对应于我们普遍使用的被称为E-mail的应用,它描述了邮件投递中的假脱机、排列及方法。当某个邮件被发往目的端时,它将先被存放在某个设备上,通常是一个磁盘。目的端的服务器软件负责定期检查信件的存放队列。当它发现有信件来时,会将它们投递到目的方。SMTP用来发送邮件,POP3又来接收邮件。
行式打印机守护进程(LPD)
行式打印机守护进程(LPD)协议设计用于实现打印机共享。LPD和LPR(行式打印机程序)允许将打印任务发送到打印池中,再使用TCP/IP发送到网络打印机上。
X Window
为客户/服务器操作而设计,X Window定义了一个编写基于图形化用户界面(GUI)的客户/服务器应用程序的协议。它允许在一台计算机上运行一个被称为客户的程序,并使它可以在另一台计算机上显示一个所谓窗口服务器的程序。
简单网络管理协议(SNMP)
简单网络管理协议(SNMP)采集并使用一些有价值的网络信息。它通过从管理站定期或不定期地轮询网络上的设备来获取数据,并要求这些设备透露某些与管理有关的信息。当所有设备工作正常时,SNMP会接收到被称为基线的信息,即一个界定健康网络运转特性的报告。这个协议也可以被描述为整个网络的看门狗,它可以很快地通告管理人员任何突然事件的发生。这些网络看门狗被称为代理,并且当一个故障发生时,这些代理会发送一个称为陷阱的警告给管理站。
域名服务(DNS)
域名服务(DNS)可以解析主机名,特别是Internet名,如www.routersim.com。不一定非要使用DNS,完全可以通过只输入任一设备的IP地址来与之进行通信。网络中的IP地址用来标识网络中的某台主机,这在因特网中也是同样的。然而,DNS的设计会使我们的生活变得更轻松。想象一下,假如有一天你想将自己的Web页迁移到另一个不同的服务提供商那里,这时会发生什么呢?这个Web页面的IP地址将会发生变化,没有人会知道新的IP地址是什么。DNS允许你使用域名来指定某个IP地址。这样,就可以在需要时经常变更这个IP地址,并且没有人会感觉到这中间的不同。
DNS是用于解析完全合格域名(FQDN),例如:www.lanmle.com或todd.lammle.com。FQDN是一个分层的结构,它可以基于域标识符来逻辑定位一个系统。
如果要解析名称“Todd”,必须要输入todd.lammle.com这样一个完整的FQDN,或者需要一个像PC或路由器这样的设备来负责添加这个前缀。例如:在Cisco路由器上,可以使用命令ip domain name lammel.com来为每个请求附加lammle.com域。如果不这样做,将不得不输入FQDN来让DNS解析这个名字。
关于使用DNS需要记住的是,如果可以使用IP地址ping到某个设备,但却不能使用它的FQDN来完成同样的工作,那么,很可能存在着某种DNS配置上的失误。
动态主机配置协议(DHCP)/引导协议(BootP)
动态主机配置协议(DHCP)可以为主机分配IP地址。它可以工作在小型甚至超大型网络环境中,并使得对这些网络的管理和操作更为简单、更为容易。几乎所有类型的硬件都可以被用作DHCP服务器,其中也包括Cisco路由器。
DHCP与BootP的不同点在于,BootP也可以完成给主机分配IP地址的任务,但它要求主机的硬件地址必须被手工输入到BootP表中。可以将DHCP看成是一个动态的BootP。但是,要记住的是,BootP还可以将用来引导主机的操作系统发送给主机。而DHCP却不能。
然而,当主机从DHCP服务器请求分配一个IP地址时,DHCP可以为这个主机提供多种不同的服务信息。DHCP提供的信息列表:
l IP地址
l 子网掩码
l 域名
l 默认网关(路由器)
l DNS
l WINS信息
DHCP服务器可以给我们提供比这更多的信息,这里列出是最常用的。
为了收到一个IP地址,发送DHCP发现信息的客户会发送给出第2层和第3层上的广播。第2层的广播是十六进制的全F,即看上去是FF:FF:FF:FF:FF:FF。第3层上的广播是255.255.255.255,指向所有网络和所有主机。DHCP是无连接的,它在传输层(即主机到主机层)使用用户数据报协议(UDP)
主机到主机层协议
主机到主机层协议主要目的是将上层的应用程序从网络传输的复杂性中分离出来。在这一层可以对它的上层说:“只需给我你的数据流,它的结构可以是任意的,让我来负责这些数据的发送准备。”
两个协议:
l 传输控制协议(TCP)
l 用户数据报协议(UDP)
此外,我们还将了解一些主机到主机层协议的概念,如端口号。
记住这里仍然被视为第4层,并且Cisco也愿意以这一方式来看待它,这样,就可以使用确认、序号和流量控制等概念
传输控制协议(TCP)
传输控制协议(TCP)通常从应用程序中得到大段的信息数据,然后将它分割成若干个数据段。TCP会为这些数据段编号并排序,这样,在目的方的TCP协议栈才可以将这些数据段再重新组成原来应用数据的结构。由于TCP采用的虚电路连接方式,这些数据段在被发送出去后,发送方的TCP会等待接收方TCP给出一个确认性应答,那些没有收到确认应答的数据段将被重新发送。
当发送方主机开始沿分层模型向下发送数据段时,发送方的TCP协议会通知目的方的TCP协议去建立一个连接,也就是所谓的虚电路。这种通信方式被称为是面向连接的。在这个初始化的握手协商期间,双方的TCP层需要对接收方在返回确认应答之前,可以连续发送多少数量的信息达成一致。随着协商过程的深入,用于可靠传输的信道就被建立起来。
TCP是一个全双工的、面向连接的、可靠的并且是精确控制的协议,但是要建立所有这些条件和环境并附加差错控制,并不是一件简单的事情。所以,毫无疑问,TCP是复杂的,并在网络开销方面是昂贵的。然而,由于如今的网络传输同以往的网络相比,已经可以提供更高的可靠性,因此,TCP所附加的可靠性就显得不是那么重要了。
TCP的数据段格式
由于上层只发送一个数据流到传输层的协议中,这里将说明TCP是如何将一个数据流进行分段的,以及它是如何为因特网层进行数据组织的。当因特网层收到该数据流时,会将数据段作为数据包通过互联网络传送。最终这个数据包传递给接收方主机上的主机到主机层协议,在那里数据会被重建为数据流并传递给上层的应用程序或协议。
TCP报头是一个20字节长的段,在带有选型时可以长达24字节。需要了解TCP数据段中的每个字段是什么。
位0 位15位16 位31
3.3 IP寻址
IP术语
位 一位就是一个数字,要么是1,要么0。
字节 一个字节可以有7位或8位,取决于是否使用了检验位。一直将一个字节假定为8位。
八位位组 就是8位,一个最基本的8位二进制数,术语字节和八位位组是完全可以互换的。
网络地址 将数据包发送到远程网络的路由中使用的名称,例如,10.0.0.0、172.16.0.0和192.168.10.0
广播地址 被应用程序和主机用来将信息发送给网络上所有结点的地址,我们称为广播地址。例如,255.255.255.255用于指向所有网络,所有结点;172.16.255.255,指向网络172.16.0.0上的所有子网和主机;而10.255.255.255,指向网络10.0.0.0上的所有子网和主机。
分层的IP寻址方案
一个IP地址包含有32位信息。这些位通常被分割为4个部分,被称为八位位组或字节,每一部分包含一个字节(8位)。可以用3种方式来描述IP地址:
l 点分十进制,如172.16.30.56
l 二进制,如10101100.00010000.00011110.00111000
l 十六进制,如AC.10.1E.38
分层化寻址优点在于可以处理数量巨大的地址空间,几乎是43亿(32位的地址空间,每一位上可以使用0或1这两种取值,它可以带给你2^32或4294967296种不同的地址表示空间)
网络地址
网络地址(也可以称为网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的IP地址,并用它作为自己IP地址的一部分。例如,在IP地址172.16.30.56中,172.16就是这个网络的地址。
结点地址是在一个网络中用来标识每台计算机,它是一个唯一的标识符。这个地址结点部分必须唯一,因为相对于网络(可以把它理解为一个组)而言它是用来独立标识指定计算机。这个结点部分的编号也称为主机地址。在IP地址为172.16.30.56的这个例子中国,30.56就是这个主机的地址。
8位
8位
8位
8位
A类
网络
主机
主机
主机
B类
网络
网络
主机
主机
C类
网络
网络
网络
主机
D类
组播
E类
研究
网络地址范围:A类
格式:网络.结点.结点.结点
全“0”的地址是默认路由,地址“127”用于诊断的,实际可用的网络地址是“2^7-2=128-2=126”
地址中全“0”或全“1”的地址是被保留的,所以实际可用结点地址是“2^24-2=16777214”
00000000=0
011111111=127
0和127在A类地址是不合法的,因有保留地址。
A类中有效的主机ID
l 将所有的主机位都置为off,网络地址10.0.0.0
l 将所有的主机位都置为on,广播地址10.255.255.255
合法的主机号在10.0.0.1到10.255.255.254之间的地址
注意,中间的那些0和255也都是合法的主机ID,需要注意的是主机位的值是不可以同时被全部置为off或全部置为on的。
网络地址范围:B类
格式:网络.网络.结点.结点
实际可用的网络地址是2^(16-2)=2^14=16384
地址中全“0”或全“1”的地址是被保留的,实际可用结点地址2^16-2=65534
B类中有效的主机ID
l 将所有的主机位都置为off,网络地址172.16.0.0
l 将所有的主机位都置为on,广播地址172.16.255.255
合法的主机号在172.16.0.1到172.16.255.254之间的地址
10000000=128
101111111=191
网络地址范围:C类
格式:网络.网络.网络.结点
实际可用的网络地址是2^(24-3)=2^21=2097152
地址中全“0”或全“1”的地址是被保留的,实际可用结点地址2^8-2=256-2=254
C类中有效的主机ID
l 将所有的主机位都置为off,网络地址192.168.100.0
l 将所有的主机位都置为on,广播地址192.168.100.255
l 合法的主机号在192.168.100.0到192.168.100.254之间的地址
11000000=192
110111111=223