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协议选择),应用层就是根据其它层协议,选择适合自己的规则编写的协议。即我们常说地自己实现的网络通信框架。
我们之前了解到了套接字的创建及应用,其实我们只是在用套接字这个工具而已,其底层细节对我们是屏蔽的。要通过因特网完成数据传输,其实不光光是软件就能解决的,还需要构建硬件系统等。因此,为了解决这一难题,许多专家聚集在一起,这些人是硬件,系统,路由算法等各领域的顶级专家。他们把网络通信划分很多模块,通过层次化的结构把大问题分成若干小问题逐个攻破。每个层都有一套定义好的通信标准(协议),数据就是这样通过这个层次结构从上到下,再从下到上传输的。示例图如下(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协议选择),应用层就是根据其它层协议,选择适合自己的规则编写的协议。即我们常说地自己实现的网络通信框架。
相关文章推荐
- TCP/IP网络编程 学习笔记_4 --OSI七层网络模型
- WAF(Web Appllication Firewall)网络应用防火墙
- ON_WM_TIMER() void (__cdecl CtestDlg::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)本文来自: http://ww
- 网络参数
- 网络爬虫(四) Java实现简单的网络爬虫
- HTTP status codes
- http://www.cnblogs.com/flashsky/articles/642720.html
- TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具
- BP神经网络及其在教学质量评价中 的应用
- HTTP协议相关内容及web通信原理的理解
- 如何使用云桌面系统提高涉密网络安全性与方便性
- 7月第1周网络安全报告:发现放马站点167个
- Android 判断手机是否连接网络
- Android--HttpURLConnection及HttpClient选择
- android 截图,网络发送,只需1.8秒
- Eworkpal-ESN(企业社交网络)功能
- 网络爬虫(三) Java实现简单的网络爬虫
- 网络爬虫(二) 网络爬虫基本原理
- Android--网络连接之HttpURLConnection和HttpClient
- http协议详解