TCPIP协议分成
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能,一个协议族是一组不同层次上的多个协议的组合
每一层负责不同的功能:
(1)链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,他们呢一起处理与电缆的物理接口细节
(2)网络层:有时也称作互联网层,处理分组在网络中的活动,例如分组的选路,在TCPIP协议族中,网络层协议包括IP协议,ICMP协议以及IGMP协议
(3)运输层:主要为两台主机上的应用程序提供端到端的通信,在TCPIP协议族中,有两个户不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)
TCP为两台主机提供高可靠性的数据通行,它所作的工作包括把应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等,由于运输层提供了高可靠性的端到端的通信,因此应用成可以忽略所有这些细节
而另一方面,UDP则为引用层提供一种非常简单的服务,他只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据能到达另一端,任何必须的可靠性必须由应用层来提供
这两种运输层协议分别在不同的应用程序中有不同的用途。
(4)应用层负责处理特定的应用程序细节。几乎各种不同的TCPIP实现都会提供下面这些通用的引用程序:
Telnet远程登录。
FTP文件传输协议。
SMTP简单邮件传送协议
SNMP简单网络管理协议
解释:
应用程序通常是一个用户进程,而下三层则一般在操作系统内核中执行,尽管这不是必须的,但通常都是这样处理的
顶层与下三层之间还有:应用层关心的是应用程序的细节,而不是数据在网络中的传输活动,下三层对应用程序义务所知,但他们要处理所有的通信细节
IP是网络层上的主要协议,同时被TCP和UDP使用,TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输,
ICMP是IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息
IGMP是Internet组管理协议,他用来把一个UDP数据报多播到多个主机
ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址
域名系统
尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名,在TCPIP领域中,域名系统DNS是一个分布的数据库,由他来提供IP地址和主机名之间的映射消息。
应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址,类似的,系统还提供一个逆函数——给定主机的IP地址,查看它对应的主机名。
大多数使用主机名作为参数的应用程序也可以把IP地址作为参数。如在远程登录是,既可以指定一个主机名,也可以指定一个IP地址。
封装
当应用程序使用TCP传输数据时,数据被送入协议栈中,然后逐个通过每一层直到被当做一串比特流送入网络,其中每一层收到的数据都要增加一些首部信息(有时还要增加尾部信息)TCP传给IP的数据单元称作TCP报文段或简称为TCP端。IP传给网络接口层的数据单元称作IP数据包,通过以太网传输的比特流称作帧
UDP数据与TCP数据基本一致,唯一的不同是UDP的信息单元称作UDP数据包,而且UDP的首部场为8个字节
由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标志,以表明数据属于哪一层,为此,IP在首部中存入一个长度为8bit的数值,称作协议域
类似的,许多应用程序都可以使用TCP或UDP来传送数据,运输层协议在生成报文首部时都要存入一个应用程序的标识符,TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中
网络接口分别要发送和接受IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标志,以表明生成数据的网络层协议,为此,以太网的帧首部也有一个16bit的帧类型域
分用:
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部,每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议,这个过程称作分用