12020/7/12TCP/IP原理与子网规划22020/7/12本章学习目标掌握TCP/IP体系结构及各层功能掌握IPv4编址方法32020/7/12课程内容TCP/IP原理TCP/IP各层的功能。TCP/IP中网络层、传输层和应用层的功能和常用协议。IPv4编址方法42020/7/12TCP/IP的历史简介HostInternetTCP/IPHost1973,TCP/IP正式提交1978,分成两个协议TCP和IP1983,正式成为所有网络与ARPANET互连的通信协议。52020/7/12TCP/IP的设计目标TCP/IP协议必须独立于硬件和软件的制造商。TCP/IP协议必须具备内在的故障恢复能力。必须能够在各种不同的线路条件下,提供端到端可靠传输服务。必须具备很好的网络可扩展性(例如新增一个网络,不会导致现有网络的业务中断)。62020/7/12TCP/IP与OSI参考模型比较应用层表示层会话层传输层网络层数据链路层OSIModel物理层TCPUDPHTTpICMPIPARPFTPSMTPTelnetTFTpSNMpDHCPBOOTPEthernetPPPFRATMX.25TCP/IPModelTCP/IP的典型沙漏模型HDLCE172020/7/12TCP/IP协议栈应用层会话层表示层传输层TCPUDP网络层ICMPARPIP数据链路层物理层网络接口层由底层网络定义的协议SMTPFTPTELNETDNSSNMPNFSTFTP提供应用进程使用网络服务的接口提供进程到进程通信服务提供主机到主机的通信服务(编址、路由和转发功能)物理介质访问控制二进制数据流传输IGMP82020/7/12TCP/IP数据流封装过程:网络接口层IP层TCP层应用层用户数据TCP段网络接口层IP层TCP层应用层IP包用户数据TCP段实际物理网络的帧IP包实际传输TCP/IP封装过程PDUUserdatasegmentpacketframe实际物理网络的帧bits92020/7/12应用层传输层网络层网络接口层文件传输-TFTP-FTP-NFSE-Mail-SMTP远程登录-Telnet-rlogin网络管理-SNMP名称管理-DNS应用层102020/7/12传输层TransmissionControlProtocol(TCP)UserDatagramProtocol(UDP)应用层传输层网络层网络接口层112020/7/12传输层的功能应用层数据的分段和重装(DATASEGMENT)提供应用进程间端到端的通信服务保证数据传送的可靠性(仅TCP)122020/7/12端口号TCPFTPTransportLayerTELNETDNSSNMPTFTPSMTPUDPApplicationLayer2123255369161服务器一般都是通过知名端口号来识别应用进程的,端口号用来标示互相通信的应用进程端口号132020/7/12TCP传输控制协议源端口(16)目的端口(16)序列号(32)首部长度(4字节单位)确认号(32)保留(6)Flags(6)窗口大小(16)TCP校验和(16)紧急指针(16)Options+数据01631Padding142020/7/12源端口目的端口HostADest.port=23.将数据包送到我的TELNET端口102823SPDPHostZ进程1TelnetZTCP端口号注:实际的TCP连接用四元组来表示,即源IP、目的IP、源端口、目的端口。152020/7/12多个连接时端口号的使用源端口目的端口HostA102823SPDPHostZ进程1TelnetZ进程2TelnetZ102923162020/7/12Ijustsent#10.源端口目的端口序号#确认序号#102823SourceDest.10Seq.5Ack.TCP序号和确认号综述172020/7/12Ijustsent#10.Ijustgot#10,nowIneed#11.102823SourceDest.10Seq.5Ack.102823SourceDest.11Seq.6Ack.源端口目的端口序号#确认序号#TCP序号和确认号综述182020/7/12Ijustsent#10.Ijustgot#10,nowIneed#11.102823SourceDest.10Seq.5Ack.102823SourceDest.11Seq.6Ack.102823SourceDest.11Seq.5Ack.源端口目的端口序号#确认序号#TCP序号和确认号综述192020/7/12102823SourceDest.11Seq.6Ack.102823SourceDest.10Seq.5Ack.102823SourceDest.11Seq.5Ack.102823SourceDest.12Seq.6Ack.Ijustgot#11,nowIneed#12.Ijustsent#11.TCP序号和确认号综述源端口目的端口序号#确认序号#202020/7/12SendSYN(seq=100)SYNreceivedHostAHostB1TCP三次握手/建立连接212020/7/12SendSYN(seq=100)SYNreceivedSendSYN+ACK(seq=300,ack=101)HostAHostBSYNreceived12TCP三次握手/建立连接222020/7/12SendSYN(seq=100)SYNreceivedSendSYN+ACK(seq=300,ack=101)EstablishedACK(seq=101,ack=301)HostAHostB123SYNreceivedTCP三次握手/建立连接为了建立或初始化一个连接,两个TCP通信者必须同步各自的初始序号。初始序列号是建立一个TCP连接时的开始号,用于跟踪通信顺序并确保每个数据包传输时无丢失。232020/7/12TCP四次握手/终止连接应用程序关闭主机A主机B应用程序关闭242020/7/12Windowsize=1Send1Receive1SenderReceiver窗口控制252020/7/12Windowsize=1Send1Receive1Ack2SenderReceiver基本概念—窗口控制262020/7/12Windowsize=1Send1Receive1Ack2Send2Receive2SenderReceiver基本概念—窗口控制272020/7/12Windowsize=1Send1Receive1Ack2Send2Receive2Ack3SenderReceiver基本概念—窗口控制282020/7/12Windowsize=1Send1Receive1Ack2Send2Receive2Ack3Send1Send2Receive1Receive2Windowsize=3Send3Receive3SenderReceiverSenderReceiver基本概念—窗口控制292020/7/12Windowsize=1Send1Receive1Ack2Send2Receive2Ack3Send1Send2Receive1Receive2Windowsize=3Send3Receive3Ack4SenderReceiverSenderReceiver基本概念—窗口控制302020/7/12Windowsize=1Send1Receive1Ack2Send2Receive2Ack3Send1Send2Receive1Receive2Windowsize=3Send3Receive3Ack4Send4SenderReceiverSenderReceiver基本概念—窗口控制312020/7/12UDP用户报文协议Sourceport(16)Destinationport(16)Length(16)Data(ifany)Bit0Bit15Bit16Bit31Checksum(16)8Bytes无序号及确认不可靠、面向无连接开销小、快速322020/7/12TCPUDP是否面向连接面向连接无连接是否提高可靠性可靠传输不提供可靠性是否流量控制流量控制不提供流量控制传输速度慢快协议开销大小TCP/UDP比较332020/7/12InternetProtocol(IP)地址解析/反向解析协议(ARP/RARP)互联网控制消息协议(ICMP)应用层传输层网络层网络接口层网络层该层实现主机到主机的通信能力,包含路由、转发功能,编址三项主要功能。主要的协议也包括三个:IP,ICMP和ARP342020/7/12IP数据包格式版本(4)目的IP地址(32)Options+Padding数据01631头部长度(4)服务类型(8)总长度(16)标识符(16)标志(3)片偏移(13)TTL存活时间(8)协议(8)报头校验和(16)源IP地址(32)352020/7/12通过协议类型的内容决定目的地的上层协议类型,以进行正确的分组交付。传输层网络层TCPUDP协议号IP176协议类型字段362020/7/12ICMPApplicationTransportIPDataLinkPhysicalDestinationUnreachableEcho(Ping)OtherICMP1ICMP工作在网络层,实际中扮演了网络层的差错报告机制372020/7/12ICMP差错消息的含义错误消息可能的问题Destinationhostunreachable通常是在源端到目的地之间的路由出现了故障。Unknownhosthostname域名解析无法解析主机名,或主机名写错。Requesttimedout域名解析可以正确解析主机名,但远端主机没收到,或收到不响应。常见错误消息表382020/7/12ARP工作机制172.16.3.1172.16.3.2IP:172.16.3.2=???我需要IP地址为172.16.3.2主机的物理地址作用:隐藏底层网络物理地址,以允许给每台主机分配任意IP地址组成:1)发送数据时,实现IP地址向MAC地址的映射2)回答其它机器的ARP请求。392020/7/12ARP工作过程IP:172.16.3.2Ethernet:0800.0020.1111172.16.3.1172.16.3.2IP:172.16.3.2=???我听到广播包了,这条消息是给我的,这是我的物理地址.我需要IP地址为176.16.3.2主机的物理地址402020/7/12课程内容TCP/IP原理IPv4编址方法IPV4地址介绍和编址方法412020/7/12172.18.0.2172.18.0.1172.17.0.2172.17.0.1172.16.0.2172.16.0.1SADAHeaderDATA10.13.0.0192.168.1.010.13.0.1192.168.1.1IPv4地址介绍TCP/IP协议要求网络上的每一个接口都必须拥有一个IP地址。32位二进制-网络部分和主机部分。一个IP子网由具有相同IP地址前缀的网络接口构成。422020/7/12IPv4地址172.16.2.1172.16.3.10172.16.12.1210.1.1.110.250.8.1110.180.30.118172.161212NetworkHost..172.16.2.110.6.24.2Fei_1/1Fei_1/2路由器每个端口连接一个IP子网,不同子网要求不同的网络前缀。点分十进制表示法432020/7/121ClassA:Bits:0Network(8bit)Host891617242532Range(1-126)1ClassB:Bits:10Network(16bit)Host891617242532Range(128-191)1ClassC:Bits:110Network(24bit)Host891617242532Range(192-223)1ClassD:Bits:1110××××组