TCPIP协议的结构与运行原理图
20080715135940转载标签:
杂谈
本文背景:TCPIP模型很成功,其设计已经经得起多年的磨练。无奈,TCPIP协议族是很繁杂的一个模型,为了全面理解它,宜采取先全局后局部的庖丁解牛式。本文从应用的角度试着去理解TCPIP的全貌,配合例子加以讲解。
本文目的:
巩固自己这方面的知识,作为深入TCPIP协议族的基础。
本文内容:
1TCPIP协议族组成从字面上理解,TCPIP协议族只有TCP、IP协议,其实不然。其真正的名字是I
ter
et协议族I
ter
etProtocolSuite。和大型软件一样,其分为四层:应用层、传输层、网络层、链路层。每一层的功能和目的都是不一样的,每一层上服务的协议也不是有区别的。从上往下看:应用层(产生利用数据)协议:FTP、HTTP、SNMP网管、SMTPEmail等常用协议;职责:利用应用层协议发送用户的应用数据,比如利用FTP发送文件,利用SMTP发送Email;由系统调用交给运输层处理。运输层(发送接收数据)协议:TCP有连接、UDP无连接;职责:负责建立连接、将数据分割发送;释放连接、数据重组或错误处理。网络层(分组路由数据)协议:IP、ICMP控制报文协议、IGMP组管理协议;职责:负责数据的路由,即数据往哪个路由器发送。链路层(按位发送接收数据)协议:以太网卡设备驱动、令牌网卡驱动程序、ARP、RARP等;职责:负责传输校验二进制用户数据。
从可靠性角度看各层区别:网络层IP协议是不可靠的协议,为此,如果其上面的层也不做任何特殊处理,也将是不可靠的。于是,运输层的TCP协议弥补了这个空缺,提供有连接的、可校验的数据传输服务。应用层的话可对数据进行加密之类的处理,增强的是传输数据的安全性,如https。链路层可对数据进行校验。
从运行进程态看各层区别:应用层运行在用户程序进程中,属性用户态;其他层则在系统内核进程运行,属于核心态;从通信方式上看各层区别:传输层是端对端的通信,也就是说,处理的是进程与进程之间的通信,如两个TCP进程;网络层是点对点的通信,也就是说,处理的是机器之间的逻辑连接。
从传输数据单元上看区别:传输层上形成的是TCP或UDP报文段;网络层形成的是IP数据报;数据链路层形成的是帧Frame。
从寻址方式上看各层区别:网络层通过IP寻址;链路层通过MAC寻址。
注解ICMP供IP用于发送错误报文,也可由应用层直接调用;IGMP用于多播Multicast,比如,UDP可用多播IP地址往多个目标主机发送数据报,就是依靠它。ARPRARP用户在IP地址r