您好,欢迎访问三七文档
TCP/IP协议体系概述TCP/IP协议源于1969年,是针对Internet开发的一种体系结构和协议标准,目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是Internet采用的协议标准。TCP/IP是一组通信协议的代名词,是由一系列协议组成的协议簇。它本身指两个协议集:TCP(传输控制协议)。IP(互联网络协议)。TCP/IP协议的基本传输单位是数据包(Datagram)。TCP协议负责把数据分成若干个数据包,并给每个数据包加上包头,包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式。IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方,如果传输过程中出现数据丢失、失真等情况,TCP协议会自动要求数据重传。TCP/IP协议族是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统。应用层(ApplicationLayer):包含各种网络应用协议。如HTTP、FTP、telnet、SMTP、DNS、SNMP等。传输层(TransportLayer):负责在源主机和目的主机的应用程序间建立、管理和拆除可靠而又有效的端到端连接。主要有TCP和UDP两个传输协议。网络互联层(InternetLayer):负责将分组独立地从信源传送到信宿,主要解决路由选择、拥塞控制和网络互联等问题。如最重要的协议——IP。网络接口层(NetworkAccessLayer):负责将IP分组封装成适合在物理网络上传输的帧格式并传输;或将从物理网络接收到的帧解封,取出IP分组交给网络互联层。当前几乎所有的物理网络上都可运行TCP/IP协议。TCP/IP的分层及基本工作原理TCP/IP体系结构与协议栈之间关系TCP/IP与OSI的比较应用层协议CP协议栈不仅包括第3层和第4层的规范(如IP和TCP),也包括一些普通应用规范,即应用层规范,其中某些应用也能在网络设备如路由器和交换机上实现。应用层协议1、Telnet:它允许一个用户在一个远程的客户机上,访问另一台机器上的资源。2、FTP:文件传输协议实际上就是传输文件的协议,它可以应用在任意两个主机之间。3、TFTP:简单文件传输协议是FTP的简化版本,只有在你确切地知道想到得到的文件名及他的准确位置时,才可有选择的使用TFTP。4、SNMP:简单网络管理协议采集并使用一些有价值的网络信息。5、SMTP:简单邮件传输协议,是对应于我们普遍使用的被称为E-mail的应用,他描述了邮件投递中的假脱机、排列及方法。6、DNS:域名服务可以解析主机名,特别是Internet名。7、DHCP/BootP:动态主机配置协议可以为主机分配IP地址。8、HTTP:超文本。9、HTTPS:加密WEB通信。传输层协议传输层的服务允许用户按照传输层的数据格式分段及封装应用层送来的数据。这一层数据流提供了端到端的传输服务,它在发送主机与接收主机之间构建了一个逻辑连接。它允许在Internet上两台主机之间信息的无差错传输。TCP还进行流量控制,以避免发送过快而发生拥塞。传输层包括两个协议:TCP协议:即传输控制协议,是一个可靠的、面向连接的协议。UDP协议:采用无连接的方式,不管发送的数据包是否到达目的主机,数据包是否出错。收到数据包的主机也不会告诉发送方是否正确收到了数据,它的可靠性是由上层协议来保障的。TCP协议栈不仅包括第3层和第4层的规范(如IP和TCP),也包括一些普通应用规范,即应用层规范,其中某些应用也能在网络设备如路由器和交换机上实现。1、传输控制协议TCP:TCP将数据分成数据报,用能够到达目的地的路径信息连行包装,接收端则将这些数据进行重组。它提供可靠的、面向连接的数据报传递服务。TCP协议位于IP协议的上层,为数据提供错误校验,流量控制及序列信息用以补充IP协议的不足。TCP是面向连接的协议。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则应终止这个连接。面向连接服务具有:连接建立、数据传输和连接释放这三个阶段。在传送数据时是按序传送的。TCP数据格式TCP数据封装示意图TCP协议工作机制(三次握手)第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。第一次“握手第二次“握手”SYN为1,开始建立请求连接,需要对方计算机确认,对方计算机确认返回的数据包。第三次“握手”对方计算机返回的数据包中ACK为1并且SYN为1,说明同意连接。这个时候需要源计算机的确认就可以建立连接了。确认数据包的结构。传输层协议2、用户数据报协议UDP:UDP是无连接的服务。在无连接服务的情况下,两个实体之间的通信不需先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。无连接服务的另一特征就是它不需要通信的两个实体同时是活跃的(即处于激活态)。当发送端的实体正在进行发送时,它才必须是活跃的。优点是灵活方便和比较迅速,但不能防止报文的丢失、重复或失序,特别适合于传送少量零星的报文。UDP数据封装示意图:UDP数据格式网络层协议4个协议中仅IP具有全网的寻址能力,而ICMP、ARP和RARP均无全网的寻址能力,ICMP需要在不同网络之间传递,因此必须用IP封装,ARP和RARP只在一个网络的内部进行通信,不需要在网络之间寻址,所以无须用IP封装。1、网际协议(IP):主要负责在主机之间寻址和选择数据包的路由。IP协议不含错误恢复的编码,属于不可靠的协议。IP数据报格式网络层协议2、地址解析协议ARP:ARP(AddressResolutionProtocol)把基于TCP/IP软件使用的IP地址解析成局域网硬件使用的媒体访问控制(MAC)地址。ARP是一个广播协议——网络上的每一台机器都能收到请求。每一台机器都检查请求的IP和自己的地址,符合要求的主机回答请求。源主机A要向目的主机B发送数据,为什么主机A除知道目的主机B的IP地址外,源主机A还必须要知道目的主机B的MAC地址?IP地址具有全网范围内的寻址能力,主机A和B可能分别处在不同网络,主机A要访问主机B首先要知道主机B的IP地址,不然找不到主机B所在的网络。在现行寻址机制中,主机的以太网网卡只能识别MAC地址,而不能识别IP地址,若数据帧中不指明主机B的MAC地址,主机B的网卡不能识别该帧是发给自己的,因此主机A仅知道主机B的IP地址还不够,还必须知道主机B的MAC地址,才能完成对主机B的访问;网络之间是用IP地址寻址,网络之内(同一物理网段或称IP子网)是用MAC地址寻址。且尽管MAC地址和IP地址一样都是在全网范围内唯一定义的,但MAC的寻址能力仅局限在一个物理网段(一个IP子网)中。2、地址解析协议ARP:2、主机A如何通过主机B的IP地址解析得到主机B的MAC地址?1)源主机A与目的主机B位于同一物理网段—当主机A不知道主机B的MAC地址时,发送ARPrequest广播包;—主机B收到ARPrequest广播包后,发现目的IP地址是自己,于是将自己的MAC地址通过ARPreply包送回主机A,同时主机B将广播包中主机A的IP地址和MAC地址存入本地的ARPcache中,以备后用;网上其他主机不作响应;—主机A收到ARPreply包后将包中主机B的IP地址和MAC地址存入本地ARPcache中,并开始向主机B发送数据。2、主机A如何通过主机B的IP地址解析得到主机B的MAC地址?2)源主机A与目的主机B位于不同物理网段—当主机A不知道主机B的MAC地址时,发送ARPrequest广播包(第二层广播帧);—路由器能收到此广播包后,路由器能够根据主机A和B的IP地址可以知道主机A和主机B不在同一IP子网(或同一广播域),且主机B不可能收到ARPrequest广播包(广播包不跨路由器),因此路由器则以ARP代理身份将自己的MAC地址发送给主机A;—主机A收到来自路由器的ARPreply包后,将包中主机B的IP地址和路由器的MAC地址存入本地ARPcache中,以后主机A发往主机B的数据帧用的是主机B的IP地址和路由器的MAC地址,数据帧首先送往路由器,然后由路由器转发。RP地址解析和数据包在网间的传递—跨路由器后主机A不可能知道主机B的MAC地址;—数据包传送过程中,不仅仅是主机A,所经过的路由器都要进行地址解析;—数据包传送过程中源、目IP地址始终不变,而源、目MAC地址逐段变化。网络层协议ARP(AddressResolutionProtocol):在网中每次都以广播方式传送数据帧是低效的,因网中每一台主机都要花费一定的代价去处理广播包,所以不直接用广播方式发送数据帧。为提高地址解析的效率,每一台主机都必须在本地建立一张ARPcache表,记录本地子网中所有主机包括路由器的IP地址和MAC地址的对应关系。主机本地ARPcache表的建立和维护:通过发送和接收ARPrequest包获取对方的IP和MAC地址;接收网上任一ARPrequest广播包,取得发送主机的IP和MAC地址;为ARPcache中每一表项设定生存时间,以防某台主机的IP地址或MAC地址发生变更(动态更新)。查看ARP缓存表:ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp-a”就可以查看ARP缓存表中的内容了。用“arp-d”命令可以删除ARP表中某一行的内容用“arp-s”可以手动在ARP表中指定IP地址与MAC地址的对应。ARP解析过程主机A向主机B发送数据前,根据主机B的IP地址首先查找本地的ARPcache表,若查到则向主机B发送数据;若主机A在本地没查到主机B的MAC地址,则发ARPrequest广播包,从ARPreply包中获取主机B的IP和MAC地址并存入本地ARPcache表中,然后才向主机B发送数据。查看本机IP和MAC地址:3、反向地址解析协议RARP:RARP(ReverseAddressResolutionProtocol)一般仅适用于无盘工作站在启动时获取自身IP地址。通常主机将自己的IP地址存放在硬盘中,无盘工作站因为没有盘无法记忆自己的IP地址。所有无盘工作站的IP地址由RARP服务器集中保存,无盘工作站启动时通过发送RARP请求,从RARP服务器获得自己的IP地址。3、反向地址解析协议RARP:4、ICMP协议ICMP(InternetControlMessageProtocol)传递差错报文以及其他需要注意的信息。ICMP报文通常被网络层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP用来传送一些关于网络和主机的控制信息。如目标主机不可到达、路由重定向等。常用的ping命令就是使用了ICMP协议。ICMP不为数据提供错误控制服务,只是报告数据出错并不再传送错误的数据,并在IP数据报的生存期过后将其抛弃。ICMP应用实例一般而言,ping目的端不可达可能有3个原因:(1)线路或网络设备故障,或目的主机不存在(2)网络拥塞(3)ICMP分组在传输过程中超时(TTL减为0)数据链路层协议4、SLIP:全称是SerialLineIP。它是一种在串行线路上对IP数据报进行封装的简单形式。5、PPP:点对点协议修改了SLIP协议中的所有缺陷。与SLIP类似,PPP经常用于低速的串行链路。端口传输层通过端口与应用层的应用程序进行信息交互,应用层各种用户进程通过相应的端口与传输层实体进行信息交互。端口是一个16Bit
本文标题:TCP IP协议
链接地址:https://www.777doc.com/doc-3510614 .html