您的位置:首页 > 理论基础 > 计算机网络

TCP/IP网络编程 学习笔记_4 --OSI七层网络模型

2015-07-13 10:48 537 查看
前言:本节将概括性的总结下网络通信的整体框架,其底层流程。

我们之前了解到了套接字的创建及应用,其实我们只是在用套接字这个工具而已,其底层细节对我们是屏蔽的。要通过因特网完成数据传输,其实不光光是软件就能解决的,还需要构建硬件系统等。因此,为了解决这一难题,许多专家聚集在一起,这些人是硬件,系统,路由算法等各领域的顶级专家。他们把网络通信划分很多模块,通过层次化的结构把大问题分成若干小问题逐个攻破。每个层都有一套定义好的通信标准(协议),数据就是这样通过这个层次结构从上到下,再从下到上传输的。示例图如下(OSI七层网络模型):



TCP/IP协议栈:数据通信中使用的协议栈分为7层,但TCP/IP协议栈只有4层,本系列教程也是主要讲TCP/IP协议。对于程序员来说,掌握4层协议栈就足够了。它们包括:链路层,网络层,传输层,应用层。

1,链路层:网卡等网络硬件设备及驱动程序,专门定义LAN,WAN,MAN等网络标准。

2,网络层:也叫IP层,数据传输的路径选择。IP本身是面向消息的,不可靠的协议。每次传输数据时会帮我们选择路径,但并不一致。如果传输中发生路径错误,则选择其他路径,但如果发生数据丢失或错误,则无法解决。换言之,IP协议无法应对数据错误。

3,传输层:即TCP/UDP层,存在于IP层之上,决定主机之间的数据传输方式。如TCP协议确认后向不可靠的IP协议赋予可靠性。TCP每发送一个数据都会和接收端确认,如果接收端确认收到才发下一个数据,否则重新发送。

4,应用层:套接字通信过程是自动处理的,如上面那些传输路径选择,数据确认过程等都被隐藏到套接字内部。总之,对于我们来说,套接字就是提供给我们的工具,我们只需要利用套接字编出程序即可。编写软件的过程中,需要根据程序特点决定服务端和客服端之间的数据传输规则,这便是应用层协议。网络编程的大部分内容就是设计并实现应用层协议。如:超文本传输协议HTTP,邮件传送协议SMTP等。

注释:应用层才是提供给我们程序员自己根据项目需求设计的协议,即其它层已经定义好了各种数据传输的标准供选择(如传输层的tcp与udp协议选择),应用层就是根据其它层协议,选择适合自己的规则编写的协议。即我们常说地自己实现的网络通信框架。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: