A. 网络分层简述
在tcp/ip详解中,不同于osi的七层协议,网络协议被分成了四层,包含应用层,传输层,网络层和数据链路层。(剔除了物理层等与网络传输关系不大的层)。
每一层负责不同的功能:
我们注意到应用程序通常是一个用户进程,而下三层则一般在(操作系统)内核中执行。尽管这不是必需的,但通常都是这样处理的。顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的通信细节。
F T P是一种应用层协议, T C P是一种运输层协议,I P是一种网络层协议,而以太网协议则应用于链路层上。 T C P / I P协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为 T C P / I P,但T C P和I P只是其中的两种协议而已(该协议族的另一个名字是 I n t e r n e t协议族(Internet Protocol Suite))。
下图是一个包含两个网络的互连网:一个以太网和一个令牌环网,通过一个路由器互相连接。
我们可以划分出端系统( End system )(两边的两台主机)和中间系统(Intermediate system)(中间的路由器)。 应用层和运输层使用端到端( En d - t o - e n d)协议 。在图中,只有端系统需要这两层协议。但是, 网络层提供的却是逐跳( Ho p - b y - h o p)协议 ,两个端系统和每个中间系统都要使用它。
注:应用层和传输层只关心我要连到哪台服务器上,我列出要连接的ip地址和端口号就行了,这种称之为端到端的协议。至于怎么连到我想要的端,不是我传输层和应用层管的事情,由下面的网络层和数据链路层来完成。
但是网络层不能这么做,因为我很有可能直接在路由表中找不到要连接服务器的mac地址,那怎么搞?
我的主机只能调用默认路由来发送一个广播。(下面就是arp协议来处理找到目的主机的mac地址。)
arp发送时广播发送,arp请求的数据帧中包含目的主机的ip地址,其意思就是, 如果你是这个ip地址的拥有者,请你回答你的硬件地址。
当我拿到目的ip主机的mac地址后,后续的数据包发送才能进行。
接下来,如果时tcp连接的话,就是3次握手的操作,然后开始发数据包。
总结下来,网络连接的具体过程是,
1.应用层要去连接一个目的主机,就会给传输层一个ip地址和要连接的port
2.传输层将自己的头加上,交给网络层去处理
3.因为还没有连接到目的主机,网络层拿到ip地址,首先去查自己的默认路由里的ip存不存在要连接的ip地址,如果默认路由中有(即曾经连接过,就直接调用arp来解析相应ip的mac地址)。如果没有,就去向默认路由发送arp包。默认路由的主机去查自己的路由表,依次类推。
4.当最终一个路由找到了目的主机,将arp发送给它,目的主机采用单播的方式向源主机返回一个arp数据包(因为在接收的arp数据包中包含了源主机的ip和mac地址),里面包含了自己的mac地址。
5.当源主机拿到目的主机的mac地址,之后的发送数据包的工作才能进行。
6.之后的发送数据包需要对应用层的数据进行封装,每经过一层,就要封装上每一层的头部。应用程序的数据到达传输层,封装上tcp或者udp的头部,然后数据包到达网络层,就要封装上ip头部,再到达数据链路层,封装上以太网头部。当封装完成后,在向目的主机(如果目的主机直接不可达,就向默认路由发送)发送封装好的数据包。
在T C P / I P协议族中,网络层 I P提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面, T C P在不可靠的I P层上提供了一个可靠的运输层。为了提供这种可靠的服务, T C P采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。
1.应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP(80)HTTPS(443) FTP(21) TFTP(69) SMTP(25) DNS(53)
2.表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
3.会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
4.传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错效验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
5.网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
6.数据链路层 (Link):
建立逻辑连接、进行硬件地址寻址、差错效验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
7.物理层(Physical Layer):
建立、维护、断开物理连接。(由底层网络定义协议)
B. 网络协议分别是哪七层协议
你问的应该是OSI网络协议,一共七层。
最下面一层是物理层,关心的是接口,信号,和介质,只是说明标准,如EIA-232接口,以太网,fddi令牌环网
第二层是数据链路层:一类是局域网中数据连路层协议:MAC子层协议,有LLC子层协议.另一类是广域网的协议如:HDLC,PPP,SLIP.
第三层是网络层:主要是IP协议.
第四层是传输层:主要是面向连接的TCP传输控制协议.另一个是不面向连接的UDP用户数据报协议.
第五层是会话层:主要是解决一个会话的开始进行和结束.(真的想不起有什么协议)
第六层是表示层:主要是编码如ASⅡ
第七层是应用层,就是应用程序里面的拉,文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。 HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务...
C. 分层网络协议的简介
OSI模型是国际标准化组织ISO创立的。这是一个理论模型,并无实际产品完全符合OSI模型。制订OSI模型只是为了分析网络通讯方便而引进的一套理论。也为以后制订实用协议或产品打下基础。
OSI模型共分七层:从上至下依次是
应用层指网络操作系统和具体的应用程序,对应WWW服务器、FTP服务器等应用软件
表示层数据语法的转换、数据的传送等
会话层 建立起两端之间的会话关系,并负责数据的传送
传输层负责错误的检查与修复,以确保传送的质量,是TCP工作的地方。(报文)
网络层提供了编址方案,IP协议工作的地方(数据包)
数据链路层将由物理层传来的未经处理的位数据包装成数据帧
物理层 对应网线、网卡、接口等物理设备(位)
D. TCP/IP协议诞生于60年代末,但是却一直在使用,请问TCP/IP协议怎么应对新需求的请说的详细一点儿,谢啦
1、首先TCP/IP从诞生那天起,就具备强大的生命力。
众所周知,从DARPA开始而在短短30年间占领全世界互联网络的TCP/IP结构协议已成为人类科技史上的一个传奇。TCP/IP起初就是一个美国军方为冷战而设计的、满足“最坏”条件下通信需求的协议。
2、采用按照需求分层实现,TCP/IP协议模型为以后兼容不同结构网络及功能,奠定了最基本的基础。
TCP/IP最初的设计并没有较多的考虑网络系统管理,但简洁、灵活的设计为后续网络测量、管理及安全等提供了应用基础。如协议设计如何兼容各种不同结构及功能的网络时,提出了最基本而且简单的假设,即:所有网络都是使用数据包来进行传播的,包结构必须合理,而且易于传播,没有依赖性。在考虑系统数据的按序传播、时延、网络分层多播及优先级调整等需求时,若协议从一开始就进行上述因素的工程实现,相信我们的协议会从诞生时就是一个不健康的“巨婴”,或许不到十年就将因自身负担过重而被淘汰掉。按照需求分层实现是个不错的选择,将这些需求交给端系统或其他真正有需要的应用场合进行工程实现的意义更大些。
3、定位准确,协议具有高度适应性。
为实现多种通信服务及可靠性、时延、带宽等约束的服务,TCP提供了可靠的数据流传输,而IP提供了基于报文的协议,并可以建立多种服务。报文作为IP协议的基本构造单元,能够屏蔽底层通信细节,为上层多种通信应用提供服务,也即我们所称的“细腰结构”。但IP并不可靠的,为满足可靠通信要求,可以在高层协议通过确认、重传等机制实现可靠性,或者用可靠性交换低时延,满足如视频会议等特殊场合的需求。UDP则提供基于报文服务的应用级别接口。
正因为如此,一个具备高度适应性的协议将具有强大的生命力,从最初的实际应用型到打败科班出生的OSI,成为互联网界的实际标准,一统天下。
4、TCP可以提供稳定的数据传输,而IP又能兼容很多服务,因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上,满足未来需求驱动。
在需求驱动下,TCP/IP协议结构使得这些目标能够最好的达到。但是,它仍然不能够满足所有的要求,正因为这样,互联网协议才在不断的发展和完善,比如UDP协议的出现。基于先天设计的结构模型,可以根据未来网络需求的变化,不断涌现新的子协议和保留扩展功能(如支持IPV6结构)等,来满足互联网发展,能提供多样的新服务以适应不同的需求。
E. iso/osi七层网络通信协议的含义是什么
一、网络协议
在计算机网络系统中,为了保证通信双方能正确而自动地进行数据通信,针对通信过程的各种情况,制定了一整套约定——网络系统的通信协议。网络协议是计算机网络不可缺少的组成部分。
1、协议的定义
简单地说,协议是指通信双方必须遵循的、控制信息交换的规则的集合,是一套语义和语法规则,用来规定有关功能部件在通信过程中的操作,它定义了数据发送和接收工作中必经的过程。协议规定了网络中使用的格式、定时方式、顺序和检错。
2、协议的组成
一般说,一个网络协议主要由语法、语义和同步三个要素组成。
语法指数据与控制信息的结构或格式,确定通信时采用的数据格式,编码及信号电平等。
语义由通信过程的说明构成,它规定了需要发出何种控制信息完成何种动作以及做出何种应答,对发布请求、执行动作、以及返回应答予以解释,并确定用于协调和差错处理的控制信息。
同步是对事件实现顺序的详细说明,指出事件的顺序以及速度匹配。
3、协议的特点
现代计算机网络采用高度结构化的设计和实现技术,是用分层或协议分层来组织的。每一层和相邻层有接口,较低层通过接口向它的上一层提供服务,但这一服务的实现细节对上层是屏蔽的。较高层又是在较低层提供的低级服务的基础上实现更高级的服务。
网络系统体系结构是有层次的,通信协议也被分为多个层次,在每个层次内又可分成若干子层次,协议各层次有高低之分。
只有通信协议有效,才能实现系统内各种资源共享。如果通信协议不可靠就会造成通信混乱和中断。
在设计和选择协议时,不仅要考虑网络系统的拓扑结构、信息的传输量、所采用的传输技术、数据存取方式,还要考虑到其效率、价格和适应性等问题。
二、开放式系统互连参考模型OSI
在计算机网络产生之初,每个计算机厂商都有一套自己的网络体系结构的概念,它们之间互不相容。为此,国际标准化组织(ISO)在1979年建立了一个分委员会来专门研究一种用于开放系统互联的体系结构(Open Systems Interconnection)简称OSI,ISO/IEC 是 国际化标准组织和国际电工委员会的英文缩写,它是致力于国际标准的、自愿和非盈利的专门机构。"开放"这个词表示:只要遵循OSI标准,一个系统可以和位于世界上任何地方的、也遵循OSI标准的其他任何系统进行连接。这个分委员提出了开放系统互联,即OSI参考模型,它定义了连接异种计算机的标准框架。OSI是Open Systems Interconnection的简称,其中文译名为“开放式系统互联”。开放系统互连七层模型的定义和功能是网络技术入门者的敲门砖,也是分析、评判各种网络技术的依据。OSI模型为一种分层结构,通过这种结构,使得网络中不同计算机间相互交换信息的方式标准化。
开发系统互联OSI参考模型是在1984年由国际标准化组织ISO(International Organization for Standardization )发布的,现在已被公认为计算机互联通信的基本体系结构模型,该模型是设计和描述网络通信的基本框架,描述了信息如何从一台计算机的应用层软件通过网络媒体传输到另一台计算机的应用层软件中。该模型应用最多的就是描述网络环境。生产厂商根据OSI模型的标准设计自己的产品。它描述了网络硬件和软件如何以层的方式协同工作进行网络通信。
1、 OSI的分层结构
OSI参考模型定义了不同计算机互连标准的框架结构,得到了国际上的承认,被认为是新一代网络的结构。OSI参考模型的系统结构是层次式结构,由七层组成,它从高层到低层依次是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层等,各个层次包含了不同的网络活动和设备,以及相应的技术接口,此外,各个层次还拥有独立的称之为协议的标准。各层间相对独立,并且下一层为上一层提供服务。通过分层可以把复杂的通信过程分成了多个独立的、比较容易解决的子问题。
开放式系统互连模型的最大优点是将服务、接口和协议这三个概念明确地区分开来:服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:
减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;
在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;
l 便于研究和教学。
2、各层的主要功能
物理层(Physical Layer)
OSI模型的最低层是物理层,也是OSI分层结构体系中最重要、最基础的一层,它是建立在通信介质基础上的,它直接面向传输介质,实现设备之间的物理接口,为数据链路层提供一个传输原始比特流的物理连接。。通过通信介质实现二进制比特流的传输,负责从一台计算机向另一台计算机传输比特流(0和1)。物理层定义了数据编码和流同步,确保发送方与接收方之间的正确传输;定义了比特流的持续时间以及比特流是如何转换为可在通信介质上传输的电或光信号;定义了线缆如何接到网卡上。我们知道,要传递信息就要利用一些物理媒体,如双绞线、同轴电缆等,但具体的物理媒体并不在OSI的7层之内,有人把物理媒体当作第0层,物理层的任务就是为它的上一层提供一个物理连接,并为建立、维持和拆除物理连接规定了它们的机械、电气、功能和过 程特性。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。
物理层的机械特性:物理连接时所采用的连接器的几何尺寸、插针和插孔数量及排列顺序等。
物理层的电气特性:在物理连接上传输二进制比特流时,线路上信号电压的高低、阻抗的匹配、传输速率和距离的限制。
物理层的功能特性:物理接口上各条信号线的功能分配和确切定义
物理层的规程特性:利用信号线进行二进制比特流传输的一组操作过程,即各信号线的工作规则和先后顺序。
在物理层中,为用户设备提供入网连接点的设备被称为数据通信设备 (DCE);拥有的数据设备被称为数据终端设备 (DTE);
数 据 链 路 层(Data Link Layer)
数据链路层负责在两个相邻结点间的线路上,无差错的传送以帧为单位的数据,负责建立、维持和释放数据链路的连接,向网络层提供可靠透明的数据传输服务组帧。数据帧是存放数据的有组织的逻辑结构,每一帧包括一定数量的数据和一些必要的控制信息,含有源站点和目的站点的物理地址。通常,数据链路层发送一个数据帧后,等待接收方的确认。接收方数据链路层检测数据帧传输过程中产生的任何问题。没有经过确认的帧和损坏的帧都要进行重传。在传送数据时,如果接收点检测到所传数据中有差错,就要通知发送方重发该帧。
网 络 层(Network Layer)
网络层,负责信息寻址和将逻辑地址和名字转换为物理地址,决定从源到目的计算机之间的路由,根据物理情况、服务的优先级和其他因素等,确定数据应该经过的通道;管理物理通信问题,如报文交换、路由和数据竞争控制等。在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。
传 输 层(Transport Layer)
传输层是整个协议层次的核心。它根据通信子网的特性最佳的利用网络资源,并以可靠和经济的方式,为两个端系统(也就是源站和目的站)的会话层之间,提供建立、维护和取消传输连接的功能,提供数据流控制和错误处理,以及与报文传输和接收有关的故障处理,负责可靠地传输数据,确保报文无差错、有序、不丢失、无重复地传输。传输层对信息重新打包,将长的信息分成几个报文,并把小的信息合并成一个报文,从而使得报文在网络上有效的传输。在接收端,传输层对信息解包,重新组装信息,通常还要发送、接收、确认信息。
会 话 层(Session Layer)
对话层也可以称为会晤层。在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。会话层,允许不同计算机上的两个应用程序建立、使用和结束会话连接,协调数据发送方、发送时间和数据包的大小等。会话层也执行名字识别以及安全性等功能,允许两个应用程序跨网络通信。会话层通过在数据流上放置检测点来保护用户任务之间的同步。这样,如果网络出现故障,只有最近检测点之后的数据才需要重传。
表 示 层(Presentation Layer)
表示层在会话层和应用层之间,这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。负责协议转换、翻译数据、加密数据、改变或转换字符集以及扩展图形命令;负责数据压缩以便减少网上数据的传输量。它为异种机通信提供一种公共语言,确定计算机之间交换数据的格式,可称其为网络转换器。在发送计算机方,表示层将应用层发送下来的数据转换成可辨认的中间格式;在接收计算机方,表示层将数据的中间格式转换成应用层可以理解的格式。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。对于用户数据来说,可以从两个侧面来分析:一个是数据含义被称为语义同,另一个是数据的表示形式,称做语法,像文字,图形,声音,文种,压缩,加密等都属于语法范畴。例如:ASCⅡ,EBCDIC,JPEG,GIF,PICT,MIDI,MPEG等。表示层上还运行重定向器(Redirector)工具,对网络资源的I/O操作重定向到服务器上。
应 用 层(Application Layer)
应用层,即OSI模型的最高层,是应用程序访问网络服务的窗口,应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务。该层服务直接支持用户的应用程序,如文件传输、数据库访问和电子邮件等。应用层处理一般的网络访问、流量控制和错误恢复。在OSI的七个层次中,应用层是最复杂的,所包含的应用层协议也最多,有些还正在研究和开发之中。
3、OSI模型系统间的通信
OSI参考模型的各层使用不同格式的控制信息,以便与其它计算机系统的对等层进行通信,这个控制信息由对等OSI层之间交换的特殊请求和指令组成。控制信息一般采用数据头或数据尾的形式。数据头附加在上层传输下来的数据之前;数据尾附加在上层传输下来的数据之后。一个OSI层并不一定必须附加一个数据头或数据尾到上层的数据中。此外,在一个OSI层信息中,信息单元的数据部分还包括所有从上层传送下来的数据头,数据尾和数据,这就是众所周知的“封装(Encapsulation)”。
信息交换发生在对等OSI层之间,源系统中的每一层把控制信息附加到数据中,而目的系统的每一层则对接收到的信息进行分析,并从数据中移除控制信息。例如系统A 的数据从应用层软件发往系统B,数据首先被传输到系统A的应用层,然后由系统A的应用层将系统B应用层所需的控制信息附加在实际传输的数据之前,封装后的信息单元(数据头和数据)被传输到表示层,表示层再将包含有系统B表示层所需的控制信息附加到数据头中,随着每层附加包含系统B同层所需要的控制信息的数据头(或数据尾),信息单元长度不断变化,整个信息单元在物理层被传输给网络介质, 并通过介质发送到系统B。 系统B 的物理层接收到信息单元后,将它传送到数据链路层,然后系统B的数据链路层读取附加的控制信息,移去数据头,并把信息单元的余留部分传送到网络层。每一层都读取并移去该层的数据头,然后将信息单元的余留部分传送到上一层,在应用层执行完这些步骤之后,系统A中的数据就以非常精确的格式传送到系统B的应用软件中了。
三、OSI参考模型与TCP/IP协议的比较研究
使网络中的两台计算机系统通信需要一致的协议,同时不通主机、不同厂商的网络互联需要统一的标准。国际标准化组织(ISO)早在20多年前就提出了开放系统互联(OSI)参考模型。OSI模型提出后的20多年来,有关网络协议设计的思想已经有了很大发展,许多现代的网络协议(例如本文将要介绍的TCP/IP协议)也不完全符合OSI模型,但是OSI的概念与思想仍然被保留了下来。
1、OSI参考模型
OSI/RM只给出了计算机网络的一些原则性说明,并不是一个具体的网络。它将整个网络的功能划分成七个层次(如图1所示)。层与层之间的联系是通过各层之间的接口来进行的,上层通过接口向下层提出服务请求,而下层通过接口向上层提供服务。两个用户计算机通过网络进行通信时,除物理层之外,其余各对等层之间均不存在直接的通信关系,而是通过各对等层之间的通信协议来进行通信(用虚线连接),只有两物理层之间通过传输介质进行真正的数据通信。
2、TCP/IP协议分层
网络接口层 这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网际层。
网际网层(IP层) 该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处于核心地位。
传输层 该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。
应用层 TCP/IP协议的应用层相当于OSI模型的会话层、表示层和应用层,它向用户提供一组常用的应用层协议,其中包括:Telnet、SMTP、DNS等。此外,在应用层中还包含有用户应用程序,它们均是建立在TCP/IP协议组之上的专用程序。
3、OSI参考模型与TCP/IP协议的比较
OSI参考模型与TCP/IP协议作为两个为了完成相同任务的协议体系结构,因此二者有比较紧密的关系,下面我们从以下几个方面逐一比较它们之间的联系与区别。
l 分层结构
OSI参考模型与TCP/IP协议都采用了分层结构,都是基于独立的协议栈的概念。OSI参考模型有7层,而TCP/IP协议只有4层,即TCP/IP协议没有了表示层和会话层,并且把数据链路层和物理层合并为网络接口层。不过,二者的分层之间有一定的对应关系,
l 标准的特色
OSI参考模型的标准最早是由ISO和CCITT(ITU的前身)制定的,有浓厚的通信背景,因此也打上了深厚的通信系统的特色,比如对服务质量(QoS)、差错率的保证,只考虑了面向连接的服务。并且是先定义一套功能完整的构架,再根据该构架来发展相应的协议与系统。
TCP/IP协议产生于对Internet网络的研究与实践中,是应实际需求而产生的,再由IAB、IETF等组织标准化,而并不是之前定义一个严谨的框架。而且TCP/IP最早是在UNIX系统中实现的,考虑了计算机网络的特点,比较适合计算机实现和使用。
l 连接服务
OSI的网络层基本与TCP/IP的网际层对应,二者的功能基本相似,但是寻址方式有较大的区别。
OSI的地址空间为不固定的可变长,由选定的地址命名方式决定,最长可达160byte,可以容纳非常大的网络,因而具有较大的成长空间。根据OSI的规定,网络上每个系统至多可以有256个通信地址。
TCP/IP网络的地址空间为固定的4byte(在目前常用的IPV4中是这样,在IPV6中将扩展到16byte)。网络上的每一个系统至少有一个唯一的地址与之对应。
l 传输服务
OSI与TCP/IP的传输层都对不同的业务采取不同的传输策略。OSI定义了五个不同层次的服务:TP1,TP2,TP3,TP4,TP5。TCP/IP定义了TCP和UPD两种协议,分别具有面向连接和面向无连接的性质。其中TCP与OSI中的TP4,UDP与OSI中的TP0在构架和功能上大体相同,只是内部细节有一些差异。
l 应用范围
OSI由于体系比较复杂,而且设计先于实现,有许多设计过于理想,不太方便计算机软件实现,因而完全实现OSI参考模型的系统并不多,应用的范围有限。而TCP/IP协议最早在计算机系统中实现,在UNIX、Windows平台中都有稳定的实现,并且提供了简单方便的编程接口(API),可以在其上开发出丰富的应用程序,因此得到了广泛的应用。TCP/IP协议已成为目前网际互联事实上的国际标准和工业标准。
4、OSI参考模型与TCP/IP协议的发展趋势
从以上的比较可以看出,OSI参考模型和TCP/IP协议大致相似,也各具特色。虽然TCP/IP在目前的应用中占了统治地位,在下一代网络(NGN)中也有强大的发展潜力,甚至有人提出了“Everything is IP”的预言。但是OSI作为一个完整、严谨的体系结构,也有它的生存空间,它的设计思想在许多系统中得以借鉴,同时随着它的逐步改进,必将得到更广泛的应用。
TCP/IP目前面临的主要问题有地址空间问题、QoS问题、安全问题等。地址问题有望随着IPV6的引入而得到解决,QoS、安全保证也正在研究,并取得了不少的成果。因此,TCP/IP在一段时期内还将保持它强大的生命力。OSI的确定在于太理想化,不易适应变化与实现。因此,它在这些方面做出适当的调整,也将会迎来自己的发展机会。
尽管OSI模型在各种场合得到了广泛的应用,但由于其建立时间过早,各种网络的发展不断突破了OSI参考模型,特别是互联网的发展,对OSI模型是一个巨大的挑战。OSI参考模型的教训是:首先,引入时间过晚,建立标准时TCP/IP已在大学使用,而后来又被广泛使用;其次,在技术上不能完全适应网络发展现状,如会晤层在大多数应用中很少使用,表述层几乎是空的,实际上英国给ISO的建议只有5层,而不是7层。相反数据链路层和网络层内容过多,有时不得不分成子层,每一子层赋予不同的功能。OSI的另一个问题是有些功能在不同的层一再出现,如编址、流量控制、纠错等等。有些功能放在那里很难达成一致意见,如安全性、加密及网络管理层很难达成一致而干脆未包括在内。同时OSI完全忽略了无连接业务的相应的协议,而这在LAN和演播室局域网中得到了广泛的应用,只是后来才加以补充。另一个严重问题是OSI主要考虑通信,而计算机世界有相当多的不同点。最后在OSI的实现和政策上都有一些问题。
可以看到,其中不存在会晤层和表述层,主要面向连接的网络层也被以包交接为基础的无连接互联网络层代替,称为互联网层,数据链路层和物理层也大大简化为主机到网络层(Host-To-Network),除了指出主机必须使用能发送IP包的协议外并不规定什么。在互联网层中定义了包结构和相应的协议,称为互联网协议(IP:Internet Protocol),主要作用是将IP包送到相应的地址。TCP/IP传送层的作用类似于OSI传送层的作用,是使源和目标设备相互对话。TCP/IP定义了两种端到端协议,第一种是传输控制协议(TCP:Transmission Control Protocol),是可靠的面向连接的协议,能确保拜特流无误码从源设备传送到互联网中的其他设备。它将输入拜特流分割成较小的信息并将其每一个都放入互联网层,在接收端,接收TCP重组所接收的信息还原成原拜特流。TCP还进行流量控制,确保较高速的发送端不会使较低速的接收设备过载。第二种协议是用户数据报协议(UDP:User Datagram Protocol),是一个非确保的无连接协议,用于那些不需要TCP顺序和流量控制的应用,广泛用于单项数据传输、服务器用户类型的应答应用。在这些应用中,即时传送比精确传送更重要,典型的应用就是语言和视频传输。 在传送层上面是应用层,包括了所有终端协议。早期的包括虚拟终端(TELNET),文件传送(FTP)和电子邮件(SMTP),虚拟终端协议允许用户登录道远端设备并在那里工作。以后加入的有域名服务(DNS:Domain Name Service)、网络新闻传送协议(NNTP:Network News Transport Protocol) 和超文本传输协议(HTTP: Hyper Text Transport Protocol)。域名服务将主机名字与网络地址相匹配;网络新闻传送协议用于在网上到处发送新闻;超文本传输协议用来传输网页。
TCP/IP也不是对什么情况下都适合的,它没有象OSI模型那样有明确定义的“服务”、“接口”和“协议”,因此软件工程师在设计时,在规范和实现之间有较大的距离,也很少有使用新技术设计新网络的指导意见。TCP/IP也很难用来描述不同需要的其他协议,其中的主机到网络层也很难说是一层,不能区分物理层和数据链路层,而它们是完全不同的。另一个问题是由于TCP/IP应用的广泛,经常会有一个大学的学生设计一些新的功能,并无偿提供使用,其中有一些被广泛扩散,但由于考虑不是很全面,而很难替代,如虚拟终端协议TELNET原是为每秒10个字符设计的远端打字终端,与图形用户接口和鼠标无关,但25年后的今天,他仍然使用。与OSI的另一个区别是,OSI模型在网络层支持无连接和面向连接的通信,而TCP/IP在网络层只支持无连接通信,而在传送层可以支持两种通信。
F. 互联网的概念是由谁提出的还有TCP/IP协议是谁创立的
根据历史记录,1973年由Kahn和Vinton Cerf两人合作为ARPAnet开发了新的互联协议,此前ARPAnet使用网络控制协议(Network Control Protocol,NCP)。1974年12月两人正式发表第一份TCP协议详细说明,但此协议有信包丢失时不能得到有效的纠正。
这个就是tcpip的雏形。
1977年,TCP协议分成了两个不同的协议:用来检测网络传输中差错的传输控制协议TCP,以及专门负责对不同网络进行互联的互联网协议IP。从此TCP/IP协议诞生。
G. 网络分层协议
楼上有各个层的定义和说明,我就不拷贝了,呵呵
这里的屏蔽是一种封装,这些都是操作系统做的事情
一般我们只能基于操作系统上进行开发,根本不需要自己去实现网络的各个分层。也就是说,除了应用层,底层的很多东西包括物理层等等都是硬件厂商和操作系统生产商进行封装,实现细节对我们来说是看不到的,所以说是屏蔽。大体就是这意思。
操作系统只提供开发接口,供开发人员使用。你可以不知道计算机网络是怎么实现数据传输的,但是你可以用操作系统提供的开发接口实现你想要的数据传输功能。
至于所谓的服务,其实也就是本层封装(屏蔽)实现细节后,对高一层提供接口(服务)。
比如,数据链路层和网络层; 网络层所实现的功能必须要使用数据链路层的数据链路功能。 对于数据链路层来说是对网络层提供了数据链路服务。
形象点就是:
数据链路层告诉网络层,我给你提供数据链路服务,你就不用管我怎么帮你建立数据链路,把数据传到目的地。你只要将数据填入我指定的地方(缓冲区),我到时会自动帮你传到目的地的。
H. osi七层模型和tcp/ip模型哪个出现的时间早啊有出处吗
1、OSI七层模型-1977年
Charlie Bachman 参加了ANSI早期的会议,并提交了他的七层模型,这个模型就成了提交ISO专委会的唯一的一份草案。1978年3月,在ISO的OSI专委会在华盛顿召 开的会议上,与会专家很快达成了共识,认为这个分层的体系结构能够满足开放式系统的大多数需求,而且具有可扩展的能力,能够满足新的需求。于是,1978 年发布了这个临时版本,1979年稍作细化之后,成了最终的版本。因此,OSI模型和1977年DSA模型基本相同。
2、TCP/IP v3\v4 版本 1978年 ,设计思想在1973-1974年
NCP诞生后两年,1972年,罗伯特·卡恩(Robert E. Kahn)被DARPA的信息技术处理办公室雇佣,在那里他研究卫星数据包网络和地面无线数据包网络,并且意识到能够在它们之间沟通的价值。在1973年春天,已有的ARPANET网络控制程序(NCP)协议的开发者文顿·瑟夫(Vinton Cerf)加入到卡恩为ARPANET设计下一代协议而开发开放互连模型的工作中。
到了1973年夏天,卡恩和瑟夫很快就开发出了一个基本的改进形式,其中网络协议之间的不同通过使用一个公用互联网络协议而隐藏起来,并且可靠性由主机保证而不是像ARPANET那样由网络保证。(瑟夫称赞Hubert Zimmerman和Louis Pouzin(CYCLADES网络的设计者)在这个设计上发挥了重要影响。)
由于网络的作用减少到最小的程度,就有可能将任何网络连接到一起,而不用管它们不同的特点 ,这样就解决了卡恩最初的问题。(一个流行的说法提到瑟夫和卡恩工作的最终产品TCP/IP将在运行“两个罐子和一根弦”上,实际上它已经用在信鸽上。一个称为网关(后来改为路由器以免与网关混淆)的计算机为每个网络提供一个接口并且在它们之间来回传输数据包。
这个设计思想更细的形式由瑟夫在斯坦福的网络研究组的1973年–1974年期间开发出来。(处于同一时期的诞生了PARC通用包协议组的施乐PARC早期网络研究工作也有重要的技术影响;人们在两者之间摇摆不定。)
DARPA于是与BBN、斯坦福和伦敦大学签署了协议开发不同硬件平台上协议的运行版本。有四个版本被开发出来——TCP v1、TCP v2、在1978年春天分成TCP v3和IP v3的版本,后来就是稳定的TCP/IP v4——目前因特网仍然使用的标准协议。
I. 【面试题集】Tcp/Ip协议分层及详解
品茗IT-面试题集-首发
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以 加入我们的java学习圈,点击即可加入 ,共同学习,节约学习时间,减少很多在学习中遇到的难题。
首先,网络分层协议到底是几层?有人说七层,有人说四层。
其实,这样说都没错,至于有人说五层,那是瞎扯的,约定俗成的东西是你说5层就5层么?
网络七层协议是OSI是一个开放性的通信系统互连参考模型;而基于TCP/IP的参考模型将协议分成四个层次。
注意,这里说的是基于TCP/IP的参考模型将协议是四层,而且七层指的是OSI网络分层协议。基于TCP/IP的参考模型已经说明自己是TCP/IPl ,而且将表示层和会话层合并,所以看起来就是四层。下面显示两者的不同:
总结一下,就是:
OSI 七层:
TCP/IP 四层:
J. 网络 分层
很多人都把TCP/IP理解为TCP和IP,其实不是。TCP/IP其实是一个协议族群包括了TCP协议,UDP协议,IP协议,DHCP协议(动态IP),SSH(远程登录协议),HTTP协议(超文本传输协议),PPP协议(点对点通信协议)。
TCP/IP 模型也是分层模型,分为4 层。OSI/RM 模型与TCP/IP 模型的参考层次如图所示:
当用户通过http发起一个请求时,应用层,传输层,网络层,链路层的相关协议依次对该请求进行包装并协带对应的首部,最终在链路层生成以太网数据包,数据包通过物理介质传输给对方主机,对方接收到数据包后,再一层一层地采用对应的协议进行拆包,最后把应用层数据交给应用程序去处理。
传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP 为提供可靠性传输,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制的机制。此外,因为TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而还具备“流量控制”、“拥塞控制”、提高网络利用率等众多功能。着名的三次握手就是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立,而终止TCP连接就是四次挥手,需要客户端和服务端总共发送四个包以确认连接的断开。
用户数据报协议(User Datagram Protocol ,UDP)是TCP/IP 模型中一种面向无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP 协议与上层协议的接口。UDP 协议适用于端口分别运行在同一台设备上的多个应用程序中。与TCP 不同,UDP 并不提供对IP 协议的可靠机制、流控制以及错误恢复功能等,在数据传输之前不需要建立连接。由于UDP 比较简单,UDP 头包含很少的字节,所以比TCP负载消耗少。UDP 适用于不需要TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP 服务于很多知名应用层协议,包括网络文件系统(Network File System,NFS)、简单网络管理协议(Simple Network Management Protocol,SNMP)、域名系统(DomainName System,DNS)以及简单文件传输系统(Trivial File Transfer Protocol,TFTP)。
互联网协议(Internet Protocol,IP)是用于报文交换网络的一种面向数据的协议。IP是在TCP/IP 协议中网络层的主要协议,任务是根据源主机和目的主机的地址传送数据。为达到此目的,IP 定义了寻址方法和数据报的封装结构。第一个架构的主要版本,现在称为IPv4,仍然是最主要的互联网协议。当前世界各地正在积极部署IPv6。
面向有连接型 :在发送数据之前,需要在收发主机之间建立一条通信线路。在通信传输前后,专门进行建立和断开连接的处理,可以避免发送无谓的数据。
面向无连接型 :发送数据时候不需要建立连接,发送端可以在任何时候自由发送数据,即使接收端不存在,发送端也可以将数据发送出去。
它是连接计算机与网络的硬件设备,无论是光纤连接,还是电缆,都必须借助网卡才能实现数据的通信。
网卡的主要功能:
中继器是在局域网环境下用来延长网络物理距离最简单最廉价的设备,作用是将电缆传过来的电信号或光信号复制、调整、放大再传给另一个电缆,以此来解决线路传输过程中信号功率衰减的问题,延长网络的长度。
二层交换机工作于OSI模型的第二层数据链路层(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层),它可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些地址与对应的连接端口记录在自己内部的一个地址表中
地址的唯一性:一个地址必须明确表示一个主体对象,同一个通信网络中不允许有两个相同地址通信主体存在。
地址的层次性:MAC与IP地址都具有唯一性,但是只有IP地址具有层次性。
网络中通信地址越来越多,如何高效从一堆地址中找到通信的目标地址,这就需要地址具有层次性。 IP地址由网络号和主机号组成。IPv4是一个32位的地址,用4个十进制数字表示。以C类地址192.168.24.1为例,其中前24位是网络地址,后8位是主机地址。如果两个IP地址在同一个子网内,则网络地址一定相同。
网关是从一个网络到另一个网络的关口,或者说是从一个网络通向其他网络的IP地址。比如有网络A和网络B,A的IP范围是192.168.1.1~ 192.168.1.254,子网掩码255.255.255.0,B的IP范围是192.168.2.1 ~192.168.2.254,子网掩码为255.255.255.0。在没有路由器的情况下,A网络和B网络是不能进行TCP/IP通信的。TCP/IP协议会判定两个网络中的主机属于不同的网络。如果网络A中的主机发现数据包的目的主机不在自己所属的网络中,它就会把数据包发送给自己的网关,再由网关转发给网络B的网关,最终网络B的网关再转发个网络B中的某个主机。
所以只有设置好网关的IP,TCP/IP协议才能实现不同网络之间的通信。网关的IP地址是具有路由功能的设备的IP地址,也就是路由器。