刘云涛 http://www.jk100f.com/baidianfengzixun/jiankangbaiwen/m/44509.html1、TCP/IP协议通讯图简介TCP/IP网络协议栈分为应用层、传输层、网络层和网络链路层四层。这里为了更方便理解,我使用五层进行介绍。两台计算机通过TCP/IP协议通讯的过程如下所示:注意:各层协议之间无法跨层传输,只能传输给对应的层。2、数据封装过程简介传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个相对应的头部(header),称为封装(Encapsulation),如下图所示:3、数据解封装过程简介不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后,每层协议再剥掉相应的头部,最后将应用层数据交给应用程序处理。4、举例说明数据封装和解封装过程1、从计算机A的应用层内网通软件向计算机B发出一个消息,生成数据。2、请求从计算机A的应用层下到计算机A的传输层,传输层在上层数据前面加上tcp报头,报头中包括目标端口以及源端口。3、传输层数据下到网络层,计算机A在网络层封装,源ip地址为计算机A地址,目标ip地址为计算机B地址。4、计算机A将计算机B的ip地址和子网掩码与自己做比对,可以发现计算机B与自己处于相同的子网。所以数据传输不必经过网关设备。5、数据包下到计算机A的数据链路层进行封装,源mac地址为计算机A的mac地址,目标mac地址查询自己的arp表。6、计算机A把帧转换成bit流,从物理接口网卡发出。7、物理层接收到电信号,把它交给数据链路层进行查看帧的目标mac地址,和自己是否相等,如果相等说明该帧是发送给自己的,于是将mac帧头解开并接着上传到网络层。8、网络层查看目标ip地址和自己是否匹配,如果匹配即解开ip头封装。然后再把数据上传到传输层。9、传输层解开对应的包头之后,继续把数据传给应用层,计算机B即可接收到计算机A发的消息。总结:数据向外发送时,数据是由最上面的应用层向下经过一层层封装后发送给物理层;而接收数据时,数据是由物理层向上经过一层层解封后发给应用层。感谢各位网友的阅读,欢迎各位留言评论或转发,如果有什么意见或建议也欢迎提出,后期会发布更多专业技术内容。