网络中的七层模型、五层模型、四层模型
一:ISO 七层模型
OSI模型有7层结构,每层都可以有几个子层。
70年代以来,国外一些主要计算机生产厂家先后推出了各自的网络体系结构,但它们都属于专用的。
为使不同计算机厂家的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。
国际标准化组织ISO 于1981年正式推荐了一个网络系统结构----七层参考模型,叫做开放系统互连模型(Open System Interconnection,OSI)。由于这个标准模型的建立,使得各种计算机网络向它靠拢, 大大推动了网络通信的发展。下面我简单的介绍一下这7层及其功能。
OSI的7层从上到下分别是:
7 应用层
6 表示层
5 会话层
4 传输层
OSI模型有7层结构,每层都可以有几个子层。
70年代以来,国外一些主要计算机生产厂家先后推出了各自的网络体系结构,但它们都属于专用的。
为使不同计算机厂家的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。
国际标准化组织ISO 于1981年正式推荐了一个网络系统结构----七层参考模型,叫做开放系统互连模型(Open System Interconnection,OSI)。由于这个标准模型的建立,使得各种计算机网络向它靠拢, 大大推动了网络通信的发展。下面我简单的介绍一下这7层及其功能。
OSI的7层从上到下分别是:
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层
其中高层,既7、6、5、4层定义了应用程序的功能,下面3层,既3、2、1层主要面向通过网络的端到端的数据流。
(1)应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
(3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,
2 数据链路层
1 物理层
其中高层,既7、6、5、4层定义了应用程序的功能,下面3层,既3、2、1层主要面向通过网络的端到端的数据流。
(1)应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
(3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,
在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。(4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
(5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
(6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
(5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
(6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
(7)物理层:OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
二:TCP/IP分层模型(大学的教科书中用这个五层模型)
1、应用层:确定进程之间通信的性质以满足用户需求;应用层协议如支持万维网应用的http
1、应用层:确定进程之间通信的性质以满足用户需求;应用层协议如支持万维网应用的http
协议、支持的smtp协议、支持文件传送的ftp协议等等 .
2、运输层:负责主机间不同进程的通信;协议有面向连接的TCP(传输控制协议)、无连接的UDP(用户数据报协议);数据传输的单位称为报文段或用户数据报
3、网络层:负责分组交换网中不同主机间的通信;作用有二:发送数据时,将运输层中的报文段或用户数据报封装成IP数据报;选择合适路由
4、数据链路层:负责将网络层的IP数据报组装成帧
5、物理层:透明地传输比特流
2、运输层:负责主机间不同进程的通信;协议有面向连接的TCP(传输控制协议)、无连接的UDP(用户数据报协议);数据传输的单位称为报文段或用户数据报
3、网络层:负责分组交换网中不同主机间的通信;作用有二:发送数据时,将运输层中的报文段或用户数据报封装成IP数据报;选择合适路由
4、数据链路层:负责将网络层的IP数据报组装成帧
5、物理层:透明地传输比特流
三:TCP/IP分层模型(四层)
TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。下图表示了TCP/IP分层模型的四层。
┌────────┐┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│ ││D│F│W│F│H│G│T│I│S│U│ │
│ ││N│I│H│T│T│O│E│R│M│S│其│
│第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │
│ ││ │G│I│ │P│H│N│ │P│N│ │
TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。下图表示了TCP/IP分层模型的四层。
┌────────┐┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│ ││D│F│W│F│H│G│T│I│S│U│ │
│ ││N│I│H│T│T│O│E│R│M│S│其│
│第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │
│ ││ │G│I│ │P│H│N│ │P│N│ │
│ ││ │E│S│ │ │E│E│ │ │E│它│
│ ││ │R│ │ │ │R│T│ │ │T│ │
└────────┘└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
┌────────┐┌─────────┬───────────┐
│第三层,传输层 ││ TCP │ UDP │
└────────┘└─────────┴───────────┘
osi参考模型的作用 ┌────────┐┌─────┬────┬──────────┐
│ ││ │ICMP│ │
│第二层,网间层 ││ └────┘ │
│ ││ IP │
└────────┘└─────────────────────┘
┌────────┐┌─────────┬───────────┐
│第一层,网络接口││ARP/RARP │ 其它 │
└────────┘└─────────┴───────────┘
图2.2 TCP/IP四层参考模型
│ ││ │R│ │ │ │R│T│ │ │T│ │
└────────┘└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
┌────────┐┌─────────┬───────────┐
│第三层,传输层 ││ TCP │ UDP │
└────────┘└─────────┴───────────┘
osi参考模型的作用 ┌────────┐┌─────┬────┬──────────┐
│ ││ │ICMP│ │
│第二层,网间层 ││ └────┘ │
│ ││ IP │
└────────┘└─────────────────────┘
┌────────┐┌─────────┬───────────┐
│第一层,网络接口││ARP/RARP │ 其它 │
└────────┘└─────────┴───────────┘
图2.2 TCP/IP四层参考模型
TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
TCP/IP分层模型的四个协议层分别完成以下的功能:
第一层
网络接口层
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
第二层
网间层
网间层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(In
ternet Control Message Protocol,ICMP)用来提供网络诊断信息。
第三层
传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
第四层
应用层
应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点。
第三层
传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
第四层
应用层
应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点。
TCP/IP通信设计程序
对于通信设计,我们一般可以根据用例很轻松的设计出一个通信范例出来。然而,据此就认为TCP/IP编程很容易就不对了。TCP/IP编程是一门很
重要的学问。其复杂性主要体现在通信方式和报文格式的多样性上。
一,通信方式,主要有两类:
1, 一个Client方连接一个Server方,称为点对点。
2, 多个Client方连接一个Server方,这个就是我们通常的并发服务器。
二,连接方式
1, 长连接
Client与Server方先建立通讯连接,连接建立以后不断开,然后再进行报文的发送和接收。这种方式由于通信连接一直存在,可以使用
下面的命令查看连接是否建立:
netstat -f inet | grep 端口号。 这种方式通常用于点对点通信。
2, 短连接
Client 方与Server方每进行一次报文收发交易时才进行通信连接,交易完成以后就断开连接。此种连接方式适用于多个客户端和一个Server的
重要的学问。其复杂性主要体现在通信方式和报文格式的多样性上。
一,通信方式,主要有两类:
1, 一个Client方连接一个Server方,称为点对点。
2, 多个Client方连接一个Server方,这个就是我们通常的并发服务器。
二,连接方式
1, 长连接
Client与Server方先建立通讯连接,连接建立以后不断开,然后再进行报文的发送和接收。这种方式由于通信连接一直存在,可以使用
下面的命令查看连接是否建立:
netstat -f inet | grep 端口号。 这种方式通常用于点对点通信。
2, 短连接
Client 方与Server方每进行一次报文收发交易时才进行通信连接,交易完成以后就断开连接。此种连接方式适用于多个客户端和一个Server的
的那种连接方式。
三, 报文发送和接收方式
1, 异步
报文发送和接收是分开的,相互独立的,互不影响。这种方式又分为两种情况:
1), 异步双工: 接收和发送在同一个子程序中,有两个不同的子进程分别负责发送和接收;
2), 异步单工: 接收和发送由两个不同的应用程序来完成。
2,同步
报文发送和接收是同步进行,即报文发送后等待接收返回报文。 同步方式一般要考虑超时的问题,即报文发出去以后
不能无限等待,需要设定超时时间。超过该时间,发送方不再等待,读返回报文,直接通知超时返回。
实际通信方式是这三类通信方式的组合。比如书上的范例一般是同步短连接的Client/Server应用程序。
其中,异步长连接双工是最为复杂的一种通信方式。有时候经常会出现在不同银行,不同
三, 报文发送和接收方式
1, 异步
报文发送和接收是分开的,相互独立的,互不影响。这种方式又分为两种情况:
1), 异步双工: 接收和发送在同一个子程序中,有两个不同的子进程分别负责发送和接收;
2), 异步单工: 接收和发送由两个不同的应用程序来完成。
2,同步
报文发送和接收是同步进行,即报文发送后等待接收返回报文。 同步方式一般要考虑超时的问题,即报文发出去以后
不能无限等待,需要设定超时时间。超过该时间,发送方不再等待,读返回报文,直接通知超时返回。
实际通信方式是这三类通信方式的组合。比如书上的范例一般是同步短连接的Client/Server应用程序。
其中,异步长连接双工是最为复杂的一种通信方式。有时候经常会出现在不同银行,不同
城市的两套系统上进行通信。
四,报文格式
通信的报文格式多样性更多,相应的必须设计相应的读写报文和发送报文的函数。
(一)阻塞与非阻塞方式
1,非阻塞方式
读函数不停地进行读动作,如果没有报文接收到,等待一段时间以后超时返回,这种方式需要设置超时时间。
2,阻塞方式
如果没有报文接收到,则函数一直处于等待状态,直到有报文到达。
四,报文格式
通信的报文格式多样性更多,相应的必须设计相应的读写报文和发送报文的函数。
(一)阻塞与非阻塞方式
1,非阻塞方式
读函数不停地进行读动作,如果没有报文接收到,等待一段时间以后超时返回,这种方式需要设置超时时间。
2,阻塞方式
如果没有报文接收到,则函数一直处于等待状态,直到有报文到达。
(二)循环读写方式
1,一次性直接读写报文
一次性发送的报文,全部都读写完。
2,不指定长度循环读
一般发生在短连接进程中,受网络路由的限制,一次较长的报文在传输的过程中被分解成好几个包。一次读取可能
1,一次性直接读写报文
一次性发送的报文,全部都读写完。
2,不指定长度循环读
一般发生在短连接进程中,受网络路由的限制,一次较长的报文在传输的过程中被分解成好几个包。一次读取可能
不能够完全读完报文,这就需要循环的反复读,直到读完为止。
3,带长度报文循环读写
这种情况一般是在长连接进程中,由于长连接中没有条件能够判断循环读什么时候结束,所以必须加上长度报文头。
读函数先读取报文头的长度,再根据这个长度去读取实际的报文。
通常的Web服务器都是采用的长连接,即客户端一次请求完后,不关闭连接,保持一段时间的连接。下次客户端再次请求时,
不用创建新的连接,复用所保持的连接即可。
这种情况一般是在长连接进程中,由于长连接中没有条件能够判断循环读什么时候结束,所以必须加上长度报文头。
读函数先读取报文头的长度,再根据这个长度去读取实际的报文。
通常的Web服务器都是采用的长连接,即客户端一次请求完后,不关闭连接,保持一段时间的连接。下次客户端再次请求时,
不用创建新的连接,复用所保持的连接即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论