1、2010年4月17日上海贝尔培训中心1Internet 原理及应用简介nullTCP/IP简介(Internet物理结构、TCP/IP原理)nullIP路由协议介绍null其它主要内容2010年4月17日上海贝尔培训中心2Internet 原理简介TCP/IP简介null Internet是一个利用TCP/IP技术,通过路由器连接各种局域网的覆盖全球的计算机网络,在它上面提供了许多我们所需要的服务。如,WWW ,FTP ,TFTP ,Telnet,BBS,Mail,Gopher等。一、Internet的物理结构LANFTP ServerHTTP ServerSMTP ServerRouterI
2、ntranetIntranetIntranetIntranetIntranetRouterRouter图1 Internet结构示意图2010年4月17日上海贝尔培训中心3Internet 原理简介TCP/IP简介null在TCP/IP中,所有的协议被封装在IP分组中,通过IP网间网传输。IP是一个路由协议,这意味着使用IP通信的两个节点不必连接到同一物理线路上(不进行路由)。要对信息是如何穿越有一个基本的了解,要理解以下六个问题: 1。该协议中的地址格式是什么? 2.。设备如何获得一个地址? 3。协议中的地址如何映射到一个物理地址? 4。终端节点如何查找路由器? 5。路由器如何由网络的拓扑结
3、构进行路由? 6。用户如何查找网络上的服务(服务名字解析:DNS等)?二、了解TCP/IP信息如何从源端穿越网络到达目的端?2010年4月17日上海贝尔培训中心4Internet 原理简介TCP/IP简介null MAC地址:在网上的两个计算机要通信,最终要利用它们的物理地址来联系。在局域网的技术中,使用最普遍的物理地址是MAC地址(以太网卡标识),它在以太网中唯一地标识了每个对象。MAC地址是一个48bit的整数。一般写成:U:V:W:X:Y:Z或U-V-W-X-Y-Z,U到Z是0255的整数(常用16近制表示),其中X:Y:Z代表以太网卡厂家,如00:20:AF属于3Com。MAC地址是全
4、球唯一的。null IP地址:IP地址由一个32位值组成,它是由网络管理员为每一台工作站(或服务器)设置的一组数字。一般写成:W.X.Y.Z,W到Z是0255的整数。Internet上的每个机器具有唯一的IP地址。它用于节点在IP互联网上的通信。为了便于路由,IP地址是一种层次化地址,它可分为两部分:网络地址和节点地址。当一个IP包要前往一个IP终端的时候,先利用该网络地址寻找最佳的到达终端网络的路径,然后利用节点地址定位到目的地。共由五类IP地址:A类地址、B类地址、C类地址、D类地址、E类地址。第一个问题、MAC(物理地址)地址与IP地址2010年4月17日上海贝尔培训中心5Interne
5、t 原理简介TCP/IP简介null IP地址中有一些是保留的,它们具有特殊的用途。地址用途全0网络地址只在系统启动时有效,用于启动时临时通信网络127指本地节点(一般为127.0.0.1),用于测试网卡及TCP/IP软件,这样浪费了1700万个地址全0节点地址用于指定网络本身,指网络号,如用于子网掩码全1节点地址全0 IP 地址全1 IP 地址用于本地广播,也称有限广播,无须知道本地网络地址用于广播,也称定向广播,需要指定目标网络RIP协议中用它指定默认路由,路由表中信宿的网络号为0.0.0.0表1 特殊的IP地址五类地址2010年4月17日上海贝尔培训中心6Internet 原理简介TCP
6、/IP简介 (1) A类地址0 7bit 24bit031网络号节点号共有27-2(全0、全1)=126个A类网络,每个网络可容纳224-2(全1、全0)个节点。 (2) B类地址172.16.199.121-10 14bit 16bit031网络号节点号共有214-1=16,383个B类网络,每个网络可容纳216-2=65,534个节点。2010年4月17日上海贝尔培训中心7Internet 原理简介TCP/IP简介 (3) C类地址202.96.245.133- 192.168.2.37-lacalhost110 21bit 8bit031网络号节点号共有221-1=2,097,171个C
7、类网络,每个网络可容纳28-2=254个节点。一般net.1用于默认路由器,最多只有253个主机。 (4) D类地址1110 28bit0该地址用于组播,从224.0.0.0239.255.255.255,其中224.0.0.1用于永久组播。31 (5) E类地址:11110XXX.H.H.H,作为实验的保留地址,从240.0.0.0247.255.255.255。另外,11111 XXX.H.H.H留着备用。2010年4月17日上海贝尔培训中心8Internet 原理简介TCP/IP简介null IP地址与MAC地址的关系:既然每一台设备已经有一个物理地址,那么为什么还需要IP地址呢?首先,
8、并不是每一台设备都支持以太地址,而IP地址能使那些没有以太地址的设备(光纤、令牌环等)能利用IP地址连接到Internet。其次,以太地址由设备商管理,而不是由买方机构管理,因此最终要得到一个基于设备商,而不是设备位置的有效路由方式是不可能的。而IP地址是根据网络拓扑结构来分配的,这利于网络路由。最后一点,利用IP地址和MAC地址结合的方式增加了组网的灵活性。如果一块以太卡坏了,可以换掉它,而不必获取一个新的IP地址;如果一个IP节点从一个网络被移到另一个网络,可以给它分配一个新的IP地址,而不必更换一块新的以太卡。 IP地址是网络层地址,用于信息穿越互联网络的目的,可利用它路由。而MAC地址
9、用于同一线路上两个节点间的通信,不能用来路由。2010年4月17日上海贝尔培训中心9Internet 原理简介TCP/IP简介null要将网络连接到Internet,可以向InterNIC(Internet Network Information Center)申请IP地址。可通过E-MAIL到联系。也可以向ISP申请IP地址。过去,当一个组织向NIC申请IP地址时,你可以取得一个A或B或C。在某一类地址中具体的地址分配可以由组织自己控制。由于IP地址的紧张,现在已不以地址类别为地址分配单位了,而采用CIDR(Classless InterDomain Routing,无类型域间路由)分配方式
10、。null解决IP地址紧张的手段有两种:利用Proxy代理技术和子网划分技术。假设公司只得到了一个B的地址172.16.0.0。公司可能有几个物理网络,由于只有一个网络号,所以不可能给每个物理网络一个网络地址。可以将公司的Intranet划分成几个子网,它们之间通过路由器连接起来。在IP地址中,可以将172.16.0.0中的后两个字节的一部分作为子网地址。这样还可以减少网络交通,便于管理。划分子网时,要为每台设备指定子网掩码。这样,具有相同的子网掩码的设备就处于同一个子网内。子网之间的路由与Internet中的路由相似。注意,RIP I 不支持子网路由,RIP II支持。null例:将网络17
11、2.16.0.0分成4个子网。网络结构-掩码配置-子网识别。第二个问题、给TCP/IP设备分配IP地址2010年4月17日上海贝尔培训中心10Internet 原理简介TCP/IP简介null有了子网的概念,下面进一步讲CIDR地址分配。现在NIC可以给你一个子网掩码地址(即给你一个子网),如可以提供子网号192.168.2.192,这样你的网络中可以有26-2=62台设备。这样的子网称slash网(它具有的是子网号,而不是网络号)。192.168.2.192子网是一个slash 26网,NIC控制前26位,组织控制后6位。null得到了IP地址,就可以将它分配给设备。大部分IP设备需要人工配
12、置IP地址,将IP地址输入到某些配置程序或控制台中。一起输入的通常还有其它信息,如广播地址,子网掩码和默认网关地址等。某些站点支持IP地址的动态配置。像引导协议(Boot Protocol, BOOTP)和动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)这样的协议能利用集中服务器分配唯一的IP地址,并根据需求配置其它信息。2010年4月17日上海贝尔培训中心11Internet 原理简介TCP/IP简介null Internet中的两个节点要通信,它们首先是靠IP地址来标识联系的,但它们最终要靠MAC地址来通信,一旦知道了对方的MAC地址,两
13、个节点就可以在以太网内进行通信。所以要将IP地址映射到MAC地址。完成这个工作的协议是地址解析协议(Address Resolution Protocol,ARP)。在具体讲述ARP之前,先来了解一下以太网中流动的信息(IEEE802.3)。null我们先看一下以太网的一般配置:第三个问题、将IP地址映射到MAC地址(ARP)收发器: 负责处理载波监听和冲突检测(A/D、D/A)网卡主机=50m可放置一中继器打、拆帧和计算校验和同轴电缆2010年4月17日上海贝尔培训中心12Internet 原理简介TCP/IP简介总体结构(10M):null以太帧格式:8B 6B 6B 2B 461500B
14、 填充4B10.10,10101011帧前导帧同步帧起始目的地址源地址帧类型数据CRC基于CSMA/CD原因自识别,增加上层协议的灵活性ARP可能是单目、多目和广播(FFFFFF)2010年4月17日上海贝尔培训中心13Internet 原理简介TCP/IP简介null当信源网卡想通过信宿IP地址知道其MAC地址的时候,它向同一线路上的所有机器广播一个ARP报文(如下图),该报文封装在以太帧中。它填充以太帧的“数据”字段。帧头ARP数据报文CRC硬件类型协议类型操作发送者硬件地址(03B)发送者IP(01B)目的硬件地址(01B)目的硬件地址(25B)目的IP(03B)发送者硬件地址(45B)
15、硬件地址长度发送者IP(23B)协议地址长度0318 162010年4月17日上海贝尔培训中心14Internet 原理简介TCP/IP简介null ARP报文解释:硬件类型:发送者本机硬件接口类型(以太网卡:1)协议类型:发送者提供的高级协议类型(IP协议:0X0800)操作:说明报文类型null 1:ARP请求null 2:ARP响应目的硬件地址:ARP请求时,空出该域。有些硬件技术不支持上层软件访问帧头,所以在帧头中和ARP数据报文中都有发送者硬件地址域。null ARP报文处理进行ARP请求时,发送者在“发送者硬件地址”域和“发送者协议地址”域分别填入本机的硬件地址和IP地址;并在“目
16、标协议地址”域填入要解析的目标机的IP地址,在“操作”域填入“1”。目标机处理请求时,在所缺域中填入相应数据,交换发送者域和目标域的位置,将“操作”域更改为“2”。2010年4月17日上海贝尔培训中心15Internet 原理简介TCP/IP简介null当A(IPa)为得到B(IPb)的MAC地址而广播ARP请求时,它在以太帧头的目的物理地址中填入“FFFFFF”。问在同一线路上的所有机器,“请IP地址是IPb的机器告诉它的MAC地址”。这时候只有B会响应,并回答出自己的MAC地址。null为了提高效率,ARP使用了高速缓存技术。机器尽可能地将它所能知道的IP和MAC地址对存入高速缓存(默认生
17、存期是30s,可人为修改),对在高速缓存中有的IP地址,它将不进行ARP请求。另外,在新机入网时,它主动广播其MAC地址。2010年4月17日上海贝尔培训中心16Internet 原理简介TCP/IP简介null路由器是将局域网连接成广域网的常用的方法。路由器在网络中的一般位置如图:它有两个MAC地址和两个IP地址。第四个问题、终端节点找路由器LANLAN路由器null当TCP/IP网络上的节点有一个IP分组要发送给另一个节点时,它遵循一个简单的算法来决定如何进行。它利用目标地址与子网掩码“与”的方法来决定发送者和目标是否在同一个网段。若它们在同一个网段,发送节点就使用ARP得到信宿节点的MA
18、C地址,并将分组封装在一个数据链路层的帧中,直接传送到信宿节点。如果它们不在同一个网段,这时候要将分组交给路由器去处理(同前)。节点如何知道到哪一个路由器呢?在TCP/IP的终端上至少要人工配置一个路由器的地址,通常称默认网关(我机器的默认网关是192.168.2.1)。当分组到达路由器以后,路由器对它的处理就是路由的问题。2010年4月17日上海贝尔培训中心17Internet 原理简介TCP/IP简介null一个以太网中包含IP数据的帧传向路由器是为了到达其它网络,那么在终端节点和路由器之间流动的到底是什么呢?一旦终端节点通过ARP知道了路由器的MAC地址,它就可以将IP数据封装在以太帧中
19、(如下图)传向路由器。这种方式使得IP具有很好的灵活性,能适应各种下层网络。下面按照Internet协议(IP协议)和TCP及UDP协议以下层以太网为例来介绍一下帧内容。第五个问题、路由器路由2010年4月17日上海贝尔培训中心18Internet 原理简介TCP/IP简介null IP协议:传输机制IP数据报传输是一种简洁而有效的分组交换方式,为了达到最高的传输速率,它放弃了可靠性保证(如检错、重传等,数据的可靠性要靠更高层协议,如TCP等来保证),以便尽快将数据报传往目的地。它不保证传输质量,只是尽最大努力来传输要传的数据。IP数据报传输的关键问题是分片和重组。分片是为了适应物理网的最大传
20、输单元(MTU),重组是为了将已分片的数据根据分片规则重新组合起来。数据报传输的一大特点是随机路由,因而从信源到信宿的时延也是随机的。另外,在路由时数据报还可能进入一条循环路由,IP中采用“生存期”来解决。2010年4月17日上海贝尔培训中心19Internet 原理简介TCP/IP简介版本号(4B) 报头长度(4B) TOS(8B) 总长度0 31版本号报头长度TOS 总长度标识符标志分片偏移量TTL 协议首部校验和信源IP地址目的IP地址IP选项(若有) 填充数据 IP数据报.4 8 16 19 24版本:V4报头长度:它是以32比特为单位的。最常见的是5(不含IP选项,20B),也有为6
21、的(含IP选项,24B)。TOS(业务类型):IP协议是一个不保证质量的协议。它通过TOS来弥补一下其QOS的不足。其8个比特的含义如下:2010年4月17日上海贝尔培训中心20Internet 原理简介TCP/IP简介优先级D T R 保留03 5 7三个比特的优先级指明本数据报的优先级,允许发送方表示数据报的重要程度。优先级从0到7,其中“0”表示普通用户优先级,“7”表示网络控制优先级。D、T、R表示本数据报希望的传输类型。D=1表示低时延,T=1表示高吞吐量,R=1表示高可靠性。注意,优先级对网络没有强制性,目前大多数网络对此一般不作处理,但为技术的进一步的提供了手段。总长度:指明IP
22、数据报的长度,以字节为单位。数据报最长为216=64k字节标识符、标志和分片偏移量:它们用于分片和重组,下面一同介绍。2010年4月17日上海贝尔培训中心21Internet 原理简介TCP/IP简介我们知道,任何IP帧最终都要封装在链路层帧中才能发送和被目标所接收。而链路层帧在每一种物理网络中都有一个最大长度限制,这个最大长度称为最大传输单元(Maximum Transfer Unit,MTU)。所以虽然IP数据报的最大长度可以达到64k,但在链路上传输的数据帧最大只能达到MTU。所以当IP数据报从IP层传到数据链路层和从一个MTU较大的的物理网络通过路由器达到另外一个MTU较小的网络的时候
23、,主机和路由器先要将IP数据报划分成较小的数据单元,这个过程叫做数据报分片。较小的数据报在达到目的地之前不会进行重组,他们可以自由路由,到达目的地后他们会重新组合成原来的数据报,若在这个过程中,某一个数据报片丢失,整个数据报将无法重组。在实际情况下,接收机在收到初始片后将启动一个重组定时器,如果在收到所有分片之前定时器超时,则接收机丢弃已收到的分片,不对数据报进行进行处理。IP规范要求:路由器必须接收所连网络中MTU大小的数据报;同时必须随时能够处理至少576B的数据报,对主机的要求也是如此。分片和重组的具体过程:2010年4月17日上海贝尔培训中心22Internet 原理简介TCP/IP简
24、介在将数据报分片时,先将原数据报的报头复制到每个数据报片中,然后填入“标志”域,它一共有3个比特,第一个比特指明是否要对数据报分片,为1表明这是一个分片数据报;第二个比特指明该分片是否是这个数据报的最后一个分片,1表示不是最后一个分片,也就是说分片未完;第三个比特未用。其中的标识符指明了它原来属于哪一个数据报。然后填入“偏移量”域,它指明该分片的数据在原来数据只能中从数据头开始的字节偏移量,第一个分片的偏移量为0,这样可以确定数据片在原数据中的位置,以便到终端进行重组。它还要填入“总长度”域,它指明分片的长度。当各分片通过各种路径到达接收机的时候,通过“标志”域的第一位可以知道这是一个分片,并
25、且由“标识符”知道它属于哪一个数据报;由第二位知道是否收到了最后一个分片,如果收到了最后一个分片,由该分片中的“偏移量”和所有属于该数据报的数据总长度就可以知道是否收到了所有的分片,从而可以进行重组。重组好数据报后就可以交给IP层去处理。2010年4月17日上海贝尔培训中心23Internet 原理简介TCP/IP简介TTL(Time To Live,生存期):它用来处理时延。它以秒为单位,指明了数据报在网络中的最长有效时间。路由器处理报头时,从TTL中减1;若数据报在路由器中排队而被延迟;则要从TTL中减去等待时间;若TTL=0则将它从网络中删除。协议:它指明数据区中的数据格式,说明在IP的
26、上一层(传输层)所采用的协议,如(TCP、UDP)。当IP数据报到达对端以后,将按照“协议”来将数据报交给传输层进行相应处理。头部校验和:对报头的CRC。IP选项:包括时间戳、源站路由、路由器路由,IP数据报中可以没有这些选项。null UDP、TCP协议:为了对基于TCP/IP的高层服务进行访问,TCP和UDP数据报被封装在IP分组中进行传送。为了把数据交给相应的上层程序去处理,需要另一级寻址。在节点上提供的每一个服务可以通过“端口”的唯一地址访问。它们位于传输层,提供了端口(进程)复用的能力。2010年4月17日上海贝尔培训中心24Internet 原理简介TCP/IP简介TCP、UDP
27、服务/端口(保留):一共有216=65536个端口端口号关键字描述42NAMESERVER主机名字服务53DOMAIN域名服务67BOOTPS启动协议服务69TFTP简单文件传输111SUNRPC微系统公司RPC(远程过程调用)20FTP-DATA文件传输服务(数据连接)21FTP23TELNET远程登录服务25SMTP简单邮件服务42NAMESERVER主机名字服务53DOMAIN域名服务UDPTCP文件传输服务(控制连接)2010年4月17日上海贝尔培训中心25Internet 原理简介TCP/IP简介null UDP建立在IP协议之上,它封装在IP数据区中,同IP协议一样提供无连接数据报
28、传输。相对于IP协议,它唯一增加的能力是提供协议端口,以保证进程通信。UDP报文格式如下:UDP源端口UDP信宿端口长度UDP校验和数据UDP信宿端口:一个UDP端口是一个可读写的软件结构,内部有一个接收报文缓冲区。接收数据时,UDP软件要判断此信宿端口是否与当前使用的端口匹配,如是,则将数据报放入相应的接收队列,否则,抛弃该数据并向信源端口发送“端口不可达”的差错消息报文。长度:以字节计的整个报文长度,最小为8,只有报头。校验和:它是一个可选项,以提高效率。在利用IP传送语音和视频的时候,要利用UDP协议。031162010年4月17日上海贝尔培训中心26Internet 原理简介TCP/I
29、P简介null TCP也是建立在IP协议之上,封装在IP数据区中,但它是在基于无连接的IP协议之上提供面向连接的高可靠性数据传输和与进程通信的能力。它利用确认与超时重传、滑动窗口机制进行流控和拥塞控制来保证高可靠性的,同时,为了保证可靠性,它以牺牲效率为代价,在高适时要求场合不合适。TCP段格式如下:源端口信宿端口序号确认号头长保留码位窗口031校验和紧急指针可选项填充数据410 24162010年4月17日上海贝尔培训中心27Internet 原理简介TCP/IP简介序号:指出段中数据在发送端数据流中的位置。确认号:指出本机希望下一个接收的字节的序号。头长:指出以32比特为单位的段头长度。它
30、是针对便长的“选项”域设计的。码位:有些报文段是用于传输数据的,但有些报文段仅仅携带了确认信息,另一些报文段携带的是建立和关闭连接的请求。它使用“码位”来指出段的目的与内容。这6个比特各位的意义如图:0 URG,紧急指针字段可用1 ACK,确认字段可用2 PSH,本报文段请求急迫(PUSH)操作3 RST,连接复位4 SYN,序号同步,用于建立连接中的同步5 FIN,发送方字节流结束由于有时发送方希望终止操作,不想接收方接收完所有的比特。如远程主机上的程序错误时就需要这种信号。TCP将数据指定为“紧急”型,接收方收到这种数据后,会不必排队而尽快通知应用程序。URG比特为1时,表明它是紧急的,其
31、中的“紧急指针”指出了紧急数据在报文段中的结束位置。2010年4月17日上海贝尔培训中心28Internet 原理简介TCP/IP简介窗口(滑动窗口):用于通知接收端接收缓冲区的大小。理解TCP的面向连接特性:一条TCP连接是一条虚电路,它通过主机IP地址和端口号来标识一条连接。如(192.168.2.37,21;192.168.2.30,21)就标识了一条TCP连接。所以两个程序可以共享主机上的同一端口,因为连接不同。连接的建立和拆除需要得到对方的认可,而UDP中,一方发送数据是不需要得到对方的认可的。连接能保持状态并实现可靠性,而无连接不能保持状态。一般来说,控制信息是通过TCP来传递的。
32、它是在无连接的协议,IP协议之上来实现面向连接的。当所有的紧急数据消失之后,TCP软件会告诉应用程序恢复正常的操作状态。PUSH位提供了数据强迫传输机制,以强迫传输当前流中的数据,而不必等待缓冲区满。远程登录中,终端的击键信号就是用PUSH操作来提供的。2010年4月17日上海贝尔培训中心29Internet 原理简介TCP/IP简介null TCP/IP Internet环境中的协议层次高层TCP/UDPIP802.3等硬件(含ARP)Telnet,FTP等报文或数据流数据报或段IP数据报特定网络帧以太帧头IP头TCP/UDP头应用数据校验数据流内容同步目标MAC 源MAC 协议类型 信源I
33、P 信宿IP 2010年4月17日上海贝尔培训中心30Internet 原理简介TCP/IP简介当然是最终节点的IP地址,否则路由器不会知道把该分组送到那里去。null前面讲述了在网络上流动的信息的内容,当IP分组到达路由器以后,路由器要通过路由将它传向下一个路由器或直接交给目标网络(若目标机在路由器所在的网络)。具体的路由过程留在后面讲述。这里还有一个问题,终端节点在通过ARP用路由器的IP地址找到其MAC地址后,在IP头中的“目标IP地址”中的内容是什么呢,是路由器的IP地址,还是最终节点的IP地址?事实上,分组在网络中穿梭的过程中,IP头中的“目标IP地址”和源“源IP地址”始终不变,都是最终节点的IP地址。而两个MAC地址是随着穿越不同的网络而改变的。 00:08:00:00:03:02 00:08:00:00:03:01 0800 192.168.2.2 192.168.3.2 .主机路由器主机192.168.2.2192.168.3.2192.168.2.1 192.168.3.100:08:00:00:02:0200:08:00:00:02:0100:08:00:00:03:0200:08:00:00:03:01 00:08:00:00:02:01 00:08:00:00:02:02 0800 192.168.2.2 192.168.3.2 .