©1999,CiscoSystems,Inc.8-1Chapter2TCP/IP协议©1999,CiscoSystems,Inc.—8-21.5TCP/IP协议基础互联网协议(IP)和传输控制协议(TCP)是互联网协议族中最为有名的两个协议,其应用非常广泛,它能够用于任何相互连接的计算机网络系统之间的通信,对局域网(LAN)和广域网(WAN)都有非常好的效果。©1999,CiscoSystems,Inc.—8-31.5TCP/IP协议基础1.5.1TCP/IP与OSI参考模型●TCP/IP协议和OSI模型的对应关系TCP/IP协议OSI模型FTP,TELNET,SMTP,RPC,SNMP,DNS,TFTP,BOOTP,HTTP应用层TCP,UDP传输层IP(ICMP,IGMP),(ARP,RARP)网络层©1999,CiscoSystems,Inc.—8-41.5TCP/IP协议基础●TCP/IP的主要协议之间的相关性图中每个封闭的多边形对应了一个协议,并且位于它所直接使用的协议之上。如SMTP依赖于TCP,而TCP依赖于IP。©1999,CiscoSystems,Inc.—8-51.5TCP/IP协议基础●TCP/IP的层次结构l.应用层。向用户提供一组常用的应用程序。2.传输层(TCP和UDP)。提供应用程序间的通信,提供了可靠的传输(UDP不能提供可靠的传输)等。3.网络层(IP)。负责数据包的寻径功能,以保证数据包可靠到达目标主机,若不能到达,则向源主机发送差错控制报文。4.网络接口层。这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据包,并把它交给IP层。©1999,CiscoSystems,Inc.—8-61.5TCP/IP协议基础1.5.2网络层(IP层)将所有的低层的物理实现隐藏起来,作用是将数据包从源主机发送出去,并且使这些数据包独立地到达目的主机。在数据包传送过程中,即使是连续的数据包,也可能走过不同的路径,到达目的主机的顺序也会不同于它们被发送时的顺序。©1999,CiscoSystems,Inc.—8-71.5TCP/IP协议基础●TCP/IP数据流程©1999,CiscoSystems,Inc.—8-81.5TCP/IP协议基础●IP数据包一个IP数据包由包头和数据体两部分组成。包头由20字节的固定部分和变长的可选项成。©1999,CiscoSystems,Inc.—8-91.5TCP/IP协议基础●IP地址在Internet中,每一台主机都有一个唯一的地址,网关常常有不止一个的地址。地址由两部分组成:网络号和主机号。这种组合是唯一的,以使每一个IP地址表示Internet中的唯—一台主机。所有IP地址都是32位长。IP地址分为五类,平常使用的是A,B,C三类地址地址类型地址形式AN.H.H.HBN.N.H.HCN.N.N.H©1999,CiscoSystems,Inc.—8-101.5TCP/IP协议基础●IP层的其它一些协议ICMP(Internet控制信息协议)用来传送一些关于网络和主机的控制信息。如目标主机是不可到达的、路由的重定向等。ARP(地址解析协议)用来将IP地址映射成相应的主机MAC地址。RARP(反向地址解析协议)用来将物理地址映射成32位的IP地址。©1999,CiscoSystems,Inc.—8-111.5TCP/IP协议基础1.5.3传输层(TCP和UDP)●TCPTCP协议,即传输控制协议,是一个可靠的、面向连接的协议。它允许在Internet上两台主机间信息的无差错传输。●UDP无连接方式,即UDP方式,当源主机有数据时,就发送。它不管发送的数据包是否到达目标主机,数据包是否出错,收到数据包的主机也不会告诉发送方是否正确收到了数据,因此,这是一种不可靠的数据传输方式。©1999,CiscoSystems,Inc.—8-121.5TCP/IP协议基础1.5.4应用层协议Telnet,也就是虚终端服务。它允许一台主机上的用户登录进另一台远程主机,并在远程主机中工作,而用户当前所使用的主机好象仅仅是远程主机的一个终端。FTP,即文件传输协议。提供了一个有效的途径,将数据从一台主机传送到另一台主机。文件传输有文本和二进制两种模式。文本模式用来传输文本文件,并实现一些格式转换。SMTP,即电子邮件服务使用缺省的端口25,以电子数据的方式,使用户快速、方便地传送信息。即使相隔大洲、大洋,电子邮件也可以在短短的几分钟内到达接收方的电子信箱。HTTP,即超文本传输协议,用来在服务器上取得用超文本标记语言书写的页面。©1999,CiscoSystems,Inc.—8-13EarlyprotocolsuiteUniversalIntroductiontoTCP/IPHostInternetTCP/IPHost©1999,CiscoSystems,Inc.—8-14TCP/IP协议栈7654325432ApplicationPresentationSessionTransportNetworkDataLinkPhysical1ApplicationTransportInternetDataLinkPhysical1©1999,CiscoSystems,Inc.—8-15应用层Overview*UsedbytherouterApplicationTransportInternetDataLinkPhysicalFileTransfer-TFTP*-FTP*-NFSE-Mail-SMTPRemoteLogin-Telnet*-rlogin*NetworkManagement-SNMP*NameManagement-DNS*©1999,CiscoSystems,Inc.—8-16传输层OverviewTransmissionControlProtocol(TCP)UserDatagramProtocol(UDP)ApplicationTransportInternetDataLinkPhysical面向连接、可靠的无连接,不可靠的©1999,CiscoSystems,Inc.—8-17TCP传输控制协议•面向连接的–先建立连接,后传数据–通过三次握手建立连接•可靠的–发送数据后,必须等待确认后才继续发送–等不到确认,会重传数据电话©1999,CiscoSystems,Inc.—8-18TCPSegmentFormatSourceport(16)Destinationport(16)Sequencenumber(32)Headerlength(4)Acknowledgementnumber(32)Reserved(6)Codebits(6)Window(16)Checksum(16)Urgent(16)Options(0or32ifany)Data(varies)20BytesBit0Bit15Bit16Bit31©1999,CiscoSystems,Inc.—8-19PortNumbersTCPPortNumbersFTPTransportLayerTELNETDNSSNMPTFTPSMTPUDPApplicationLayer2123255369161RIP520©1999,CiscoSystems,Inc.—8-20TCPPortNumbersSourcePortDest.Port…HostA102823…SPDPHostZTelnetZDest.port=23.SendpackettomyTelnetapplication.©1999,CiscoSystems,Inc.—8-21SendSYN(seq=100ctl=SYN)SYNreceivedHostAHostBTCP三次握手1©1999,CiscoSystems,Inc.—8-22SendSYN(seq=100ctl=SYN)SYNreceivedSendSYN,ACK(seq=300ack=101ctl=syn,ack)HostAHostBSYNreceived12TCPThreeWayHandshake/OpenConnection©1999,CiscoSystems,Inc.—8-23SendSYN(seq=100ctl=SYN)SYNreceivedSendSYN,ACK(seq=300ack=101ctl=syn,ack)Established(seq=101ack=301ctl=ack)HostAHostB123SYNreceivedTCPThreeWayHandshake/OpenConnection©1999,CiscoSystems,Inc.—8-24TCPSimpleAcknowledgmentWindowsize=1SenderReceiver©1999,CiscoSystems,Inc.—8-25TCPSimpleAcknowledgmentWindowsize=1SenderReceiverSend1Receive1©1999,CiscoSystems,Inc.—8-26TCPSimpleAcknowledgmentWindowsize=1SenderReceiverSend1Receive1ReceiveACK2SendACK2©1999,CiscoSystems,Inc.—8-27TCPSimpleAcknowledgmentWindowsize=1SenderReceiverSend1Receive1ReceiveACK2SendACK2Send2Receive2©1999,CiscoSystems,Inc.—8-28TCPSimpleAcknowledgmentWindowsize=1SenderReceiverSend1Receive1ReceiveACK2SendACK2Send2Receive2ReceiveACK3SendACK3©1999,CiscoSystems,Inc.—8-29TCPSimpleAcknowledgmentWindowsize=1SenderReceiverSend1Receive1ReceiveACK2SendACK2Send2Receive2ReceiveACK3SendACK3Send3Receive3©1999,CiscoSystems,Inc.—8-30Windowsize=1SenderReceiverSend1Receive1ReceiveACK2SendACK2Send2Receive2ReceiveACK3SendACK3Send3Receive3ReceiveACK4SendACK4TCPSimpleAcknowledgment©1999,CiscoSystems,Inc.—8