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

前言:本节将概括性的总结下网络通信的整体框架,其底层流程。

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

  • 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协议选择),应用层就是根据其它层协议,选择适合自己的规则编写的协议。即我们常说地自己实现的网络通信框架。

你可能感兴趣的:(网络编程,网络编程)