TCP/IP协议族的四个层次
- 应用层: Telnet FTP e-mail等
- 运输层: TCP和UDP
- 网络层: IP、ICMP和IGMP
- 链路层: 设备驱动程序及接口卡
TCP为两台主机提供高可高性的数据通信,它所做的工作包括
- 把应用程序交给他们的数据分成合适的小块交给下面的网络层,确定接收到分组,设置发送最后确认分组的超时时钟等
- 因为TCP运输层提供了高可靠性的端到端的通信,所以应用层可以忽略这些细节
而UDP则为应用层提供一种非常简单的服务,它只是把称作数据报的分组从一台数据发送到另一台数据,但不保证该数据报能到达另一端.任何必须的可靠性必须由应用层来提供
为什么要区分运输层和网络层?
网络层的IP提供的是不可靠的服务,它只是尽可能快的地把分组从源节点运输到目的节点,不提供任何可靠的保证
而运输层的TCP协议,采用了超时重传,发送和接受端到端的确认分组机制
因为有TCP UDP ICMP 和IGMP都要给IP传送数据
所以IP必须在首部添加一个长度为8bit的数值,称为协议域
- 1 表示ICMP
- 2 表示IGMP
- 6 表示TCP
- 17 表示UDP
类似的,还有很多程序试用TCP或UDP传送数据
所以运输层协议在生成报文首部时要存入一个应用程序的标识符
TCP和UDP都用一个16bit的端口号表示不同的应用程序
TCP和UDP把源端口号和目标端口号分别存入报文首部中
链路层(网络接口)分别要发送和接收IP ARP PARP数据,所以也必须在以太网的帧首部加入某种形式的标识,以表明生成数据的网络层协议
为此,以太网的帧首部也有一个16bit的帧类型域
当目标主机收到一个以太网数据时,数据开始由底往上升,同时去掉各层协议加上的报文首部,每层协议盒要去检查报文首部的协议标识,以确定接收数据的上层协议,这个过程叫做分用
这种服务分为两种类型
- 重复型: 等待请求-处理请求-发送响应-等待请求(只能同时处理一个请求),一般UDP方式
- 并发型: 等待请求-开启进程/线程(取决操作系统)处理请求,处理结束后,终止进程/线程-等待请求,一般TCP方式
网络层和运输层之间区别是最关键的: 网络层(IP)提供的是点到点服务,而运输层(TCP/UDP)提供的是端到端的服务