第五章主要的TCP/IP协议第五章主要的TCP/IP协议2本章要点IP协议ARP协议RARP协议ICMP协议TCP协议与UDP协议第五章主要的TCP/IP协议3IP协议IP协议,即InternetProtocol,也称为网际协议,是整个TCP/IP协议的基础IP协议提供的主要服务IP分组的传输(投递服务)不可靠的(Unreliable)尽最大努力投递的(Best-EffortDelivery)无连接的(Connectionless)IP分组的拆分与重组第五章主要的TCP/IP协议4IP协议IP分组的格式IP头部作业:理解IP分组的拆分与重组(Identification、Flag与FragmentOffset字段)TimetoLive(TTL,即分组生命期)字段IP载荷(Payload)即传输层的报文第五章主要的TCP/IP协议5ARP协议ARP协议,AddressResolutionProtocol,即地址解析协议ARP协议的作用将IP地址(网络层地址)转换为MAC地址(数据链路层地址)第五章主要的TCP/IP协议6ARP协议为什么需要ARP协议对IP协议来讲,发送一个IP分组需要知道接收方的IP地址(即目的IP地址)而对数据链路层来讲,发送一个帧需要知道接收方的MAC地址(即目的MAC地址)在IP协议将自己的IP分组交给数据链路层进行发送时,需要告诉数据链路层接收方的MAC地址,因此,网络层(网际层)需要用ARP协议先将目的IP地址转换为目的MAC地址第五章主要的TCP/IP协议7ARP协议ARP缓冲区(ARPCache)每台主机为自己建立一个ARP缓冲区,保存了目的IP地址与目的MAC地址的映射关系主机在发送IP分组之前,根据目的IP地址在ARP缓冲区找到对应的目的MAC地址,数据链路层将根据目的MAC地址发送数据帧一台主机在刚启动时,ARP缓冲区为空第五章主要的TCP/IP协议8ARP协议ARP缓冲区(ARPCache)如果在ARP缓冲区没有找到某个目的IP地址时,主机将以广播的形式发送一个ARPRequest报文,报文中包含了该目的IP地址,其含义相当于大喊一声“谁的IP地址与目的IP地址相同”网络中的每台主机将该目的IP地址与自己的IP地址作比较,如果两者相等,那么该主机将发送ARPReply报文作为应答,该报文中包含了该主机的MAC地址,其含义相当于回答“我的IP地址与目的IP地址相同”第五章主要的TCP/IP协议9ARP协议重要问题ARP请求报文只能在本地广播,即不能通过路由器和网关,也就是说通过ARP协议只能获得同一网段的主机的MAC地址那么如何将IP分组发送给非同一网段的主机?解决方法:将IP分组交给缺省网关或路由器进行发送,此时就要求先通过ARP协议获取缺省网关或路由器的MAC地址第五章主要的TCP/IP协议10ARP协议HostStevens172.16.10.10255.255.255.0MAC00-0C-04-17-91-CC172.16.10.0/24HostPerlman172.16.20.12255.255.255.0MAC00-0C-22-A3-14-01DestinationSourceRouterAEthernet0172.16.10.1255.255.255.0MAC03-0D-17-8A-F1-32172.16.20.0/24第五章主要的TCP/IP协议11ARP协议重要问题主机如何判断目的主机与自己是否在同一网段?将自己的IP地址与子网掩码进行逻辑AND运算,再将目的IP地址与自己的子网掩码进行逻辑AND运算,如果两者结果相同,那么就认为目的主机与自己在同一网段,否则认为目的主机与自己不在同一网段第五章主要的TCP/IP协议12ARP协议重要问题判断发送方与接收方是否在同一网段举例发送方的IP地址为172.16.10.10子网掩码为255.255.255.0发送方所在网络地址172.16.10.0接收方的IP地址为172.16.20.12子网掩码为255.255.255.0接收方所在网络地址172.16.20.0结论:接收方与发送方不在同一个网段第五章主要的TCP/IP协议13ARP协议ARP协议小结如果发送方与接收方在同一网段中,直接使用ARP协议得到接收方的MAC地址如果发送方与接收方不在同一网段中,则通过ARP协议获得缺省网关的MAC地址,将IP分组发送给缺省网关,由缺省网关进行转发第五章主要的TCP/IP协议14ARP协议ARP命令在MS-DOS方式下,可以输入“ARP-A”命令,显示本机的ARP缓冲区不带参数的“ARP”命令可以显示ARP命令的帮助信息第五章主要的TCP/IP协议15RARP协议RARP协议,ReverseAddressResolutionProtocol,即逆向地址解析协议RARP协议的作用是通过MAC地址获得网络层地址(IP地址),可以视为ARP协议的衍生协议RARP协议通常在计算机启动时使用,以获得自己的IP地址第五章主要的TCP/IP协议16RARP协议RARP协议相关协议BOOTP协议DHCP协议DynamicHostConfigurationProtocol,动态主机配置协议使用DHCP可以为计算机动态配置各种网络设置,但需要设置DHCP服务器DHCP的好处•不易出错•易于维护•Client不需要繁琐的设置•IP地址可重复使用第五章主要的TCP/IP协议17ICMP协议ICMP协议,InternetControlMessageProtocol,即网际控制报文协议ICMP协议的主要作用是在主机之间相互发送差错或控制信息需要特别注意的是ICMP协议只负责报告问题,而不解决问题第五章主要的TCP/IP协议18ICMP协议常见的ICMP报文类型目的地不可达(DestinationUnreachable)报文生命期终止(TTL值为0)源站抑制(SourceQuench)回送请求/应答(EchoRequest/Reply)时间戳请求/应答重定向第五章主要的TCP/IP协议19ICMP协议常用的ICMP命令PING作用:测试目的主机的可达性原理:向目的主机发送回送请求的ICMP报文,目的主机将返回回送应答的ICMP报文命令格式:ping[参数][目的主机IP地址或域名]参数:参见教材第159页举例:ping-t协议20ICMP协议常用的ICMP命令TRACERT作用:测试到达目的主机所经过的路由器原理:依次向目的主机发送TTL值为1、2、3、4……的ICMP回送请求报文,由于TTL为零,中间的路由器将分别返回生命期终止的ICMP报文命令格式:tracert[参数][IP地址或域名]参数:参见教材第164页举例:tracertLinux下的命令为traceroute第五章主要的TCP/IP协议21ICMP协议常用的ICMP命令PathPing可视为PING与TRACERT两者的结合第五章主要的TCP/IP协议22TCP协议和UDP协议TCP协议与UDP协议之比较TCPUDP面向连接传输层协议无连接传输层协议可靠的不可靠的有流量控制机制无流量控制机制有确认重传机制无确认机制需要进行报文的拆分和重组不进行报文的拆分与重组第五章主要的TCP/IP协议23TCP协议和UDP协议连接端口(Port)可以理解为传输层的地址,一个端口通常代表一个进程或某种服务传输层接收到一个报文时,根据端口号来决定将报文交给哪个进程进行处理端口号的大小范围为0~65535TCP协议和UDP协议均有各自独立的端口号,并且都为常用的服务定义了特定的端口号(也称为知名端口,Well-KnownPort)第五章主要的TCP/IP协议24TCP协议和UDP协议常见的TCP协议知名端口端口号协议描述20FTP文件传输中的数据传输21FTP文件传输中的控制命令23Telnet远程登录25SMTP电子邮件传输80HTTP协议25TCP协议和UDP协议常见的UDP协议知名端口端口号协议描述53DNS域名解析服务67BOOTPBOOTPClient68BOOTPBOOTPServer69TFTP简单的文件传输第五章主要的TCP/IP协议26TCP协议和UDP协议SocketSocketAddress:IP地址+端口号Socket连接:源SocketAddress+目的SocketAddressSocket编程SocketAPI函数/WinSock类Socket控件用户可以选择使用UDP协议还是TCP协议