TCP/IP各层协议通信流程

1.服务访问点
服务访问点sap(service access point)是网络体系结构中上下层之间进行通信的接口,即n层的sap就是n+1层可以访问n层的通道。
具体解释,sap就是相邻层实体(软件或硬件)之间的逻辑接口,如图4-17所示.若按照internet四层网络体系结构分析,网络访问层向上层(网络层)提供的sap应该是各种介质访问控制的方法(详细解释请参见第5.2节介绍);网络层向上层(传输层)提供的sap就是tcp和i兀护两种不同的数据传输服务接口;而传输层向上层(应用层)提供的sap就是tcp和udp两种数据传输方式允许通过不同网站建设端口进行若干个进程的复用。
2.通信流程
internet网络通信技术看似深奥、复杂,但并不是想象的那么难以理解。把tcp/ip协议按照各层“服务访问点”分层给出,再描绘internet各层的数据通信流程就简单易傲了。首先,用户数据从不同应用进程的端口分别流向丁cp或udp;在传输层,tcp或udp收到上层来自不同进程的报文数据后,开始封装传输层的数据单元,封装的主要信息是上层进程的源端口号和目的端口号,然后通过指定的服务访问点流向网络层;在网络层,上层的数据单元无论是tcp数据报,还是udp数据报,ip协议均将其作为本层传输数据再次进行封装,封装的主要信息是源发端ip地址和目的端ip地址;然后通过下层的服务访问点流向网络访问层。
当网络出现故障导致网络不通或目的主机不可达、路由不可用等情况时,icmp协议就会辅助传送相应的控制消息,以通知网络管理、各转发路由器以及源发主机用户。arp协议是辅助在数据链路层传送数据时,可获取下一链接点或目的节点的mac地址。
通过上述分析可知:
(1)网络层和传输层之间的职责是非常清晰而明确的。网络层的ip协议头指明了数据传输过程中两端主机的逻辑地址(ip);而传输层的tcp或udp协议头指明了数据传输过程中两端进程的端地址(源端口和目的端口)。网络层只负责网络之间主机到主机的数据传输,而传输层只负责进程与进程之间端到端的数据传输。
(2)一个完整的数据传输过程至少要有3个基本参数。一是进程间端到端传输数据所需要的端口号,二是传输层数据传输的控制方式,即tcp或udp,三是网络间主机到主机传输数据所需要的ip地址。将这3个基本参数绑定起来就构成了一个套接字socket,以虚拟文件形式管理着。可以这样理解,任何两个应用层之间的数据传输均是通过一个特定的套接字接口实现的。