OSI参考模型和TCP/IP模型基本知识
OSI七层模型
- 为了解决网络之间的兼容性问题,实现网络设备间的相互通信,ISO于1984年提出的OSI参考模型(开放系统互连参考模型)。但是由于种种原因,并没有一种完全忠实于OSI参考模型的协议族流行开来。然后美国国防局在20世纪60年代开发的ARPANET的TCP/IP协议得到了广泛应用,成了Internet的事实标准。而OSI模型则只是理论标准。
OSI参考模型的层次结构[OSI七层模型]

- 优点
开放的标准化接口:
通过规范各个层次之间的标准化接口,是各个厂商可以自由地生产出网络产品,这种开放给网络产业的发展注入了活力。
多厂商兼容性:
采用统一的标准的层次化模块后,各个设备生产厂商遵循标准进行产品的设计开发,有效地保证了产品间的兼容性。
易于理解、学习和更新协议标准:
由于各层次之间相对独立,使得讨论、制定和学习协议标准变得比较容易,某一层次协议标准的改变也不会影响其他层次的而协议。
实现模块化工程,降低了开发实现的复杂度:
每个厂商都可以专注于某一个层次货某一模块、独立开发自己的产品,这样的模块化开发降低了单一产品或模块的复杂度,提高了开发效率,降低了开发费用。
便于故障排除:
一旦发生网络故障,可以比较容易地将故障定位于某一层次,进而快速找出故障根源。
TCP/IP模型
OSI参考模型的诞生为清晰地理解互连网络、开发网络产品和网络设计等带来了极大的方便。但是它过于复杂,难以完全实现;各层功能之间具有一定的重复性,效率较低。加之OSI模型提出时,TCP/IP协议已逐渐占据主导地位,所以OSI参考模型并没有流行开来,也从来没有存在一种完全遵守OSI参考模型的协议族。
TCP/IP起源于20世纪60年代末美国政府资助的一个分组交换网络研究项目,在20世纪90年代发展为计算机之间最常用的网络协议。是一个真正的开放系统,以为协议族的定义及其多种实现可以免费或花很少的钱获得。是“全球互联网“或”因特网“的基础协议族。相较于OSI参考模型简化了层次设计。
TCP/IP模型的层次结构[TCP_ip]

- 各层的作用
- 网络接口层
TCP/IP对网络层之下并没有严格的描述。但TCP/IP主机必须使用某种下层协议连接到网络,以便通信。且,TCP/IP必须能在多种下层协议上运行,以便实现端到端、与链路无关的网络通信。网络接口层正是负责处理与传输介质相关的细节,为上层提供统一的接口。大体对应于OSI参考模型的数据链路层和物理层,通常包括计算机和网络设备的接口驱动程序和网卡等。
TCP/IP可以基于大部分局域网和广域网技术运行。这些协议都可以划分到网络接口层。如:常见的以太网、FDDI(光纤分布式数据接口)、令牌环等局域网技术,用于串行连接的SLIP(串行线路IP)、HDLC(高级数据链路控制)和PPP(点到点协议)等技术,及常见的X.25、帧中继、ATM(异步传输模式)等分组交换技术。 网络层
是TCP/IP体系的关键部分。主要功能是使主机能够将信息发往任何网络并传送到正确的目的主机。网络层定义了包格式及其协议------IP(Internet Protocol,网际协议)。网络层使用IP标识网络节点;使用路由协议生成路由信息,并且根据这些路由信息实现包的转发,使包能够准确地传送到目的地;使用ICMP(互联网控制消息协议)、IGMP(Internet组管理协议)协助管理网络。
ICMP通常被认为是一个网络层协议。它通过一套预定义的消息在互联网上传递IP协议的相关信息,从而对IP网络提供管理控制功能。典型应用是探测IP网络的可达性(ping命令)。传输层
主要负责为不同主机上的应用程序提供端到端的连接,使源、目的主机上的对等实体能进行会话。传输层主要包括TCP(传输控制协议)和UDP(用户数据包协议)。
传输层的主要作用如下:
- 提供面向连接或无连接的服务:TCP面向连接,UDP面向无连接。
- 维护连接状态:TCP在通信时建立连接,传输层协议必须在其数据库中记录这种连接关系,并通过某种机制维护连接关系,及时发现连接故障等。
- 对应用层数据进行分段和封装: 应用层的数据一般是大块或者持续的数据流,但网络只能发送长度有限的数据包,所以传输层协议在传输应用层数据之前必须将其划分成适当尺寸的段,在交给IP协议发送。
- 实现多路复用:一个IP地址可以标识一台主机,一对”源-目的“IP地址可以标识一对主机的通信关系,但一台主机上可能同时有多个程序访问网络,因此TCP/UDP采用端口号来标识这些上层的应用程序,从而使这些程序可以复用网络通道。
- 可靠地传输数据:数据在跨网络传输时可能出现错误、、丢包、乱序等问题,传输层协议必须能检测并更正这些问题。TCP通过序列号和校验和等机制检查数据传输中发生的错误,并可以重新传递出错的数据。但UDP提供的是非可靠性数据传输,所以数据的可靠性交由应用层保证。
- 执行流量控制:当发送方的发送速率超过接收方的接收速率时,或当资源不足以支持数据的处理时,传输层负责将流量控制在合理的水平;反之,当资源允许时,传输层可以放开流量,使其增加到适当的水平。通过流量控制防止网络拥塞造成数据包的丢失。TCP通过滑动窗口机制对堆到端的流量进行控制。
应用层
TCP/IP模型没有单独的会话层和表示层,其功能融合在TCP/IP应用层中。应用层直接与用户和应用程序打交道,负责对软件提供接口以使程序能使用网络服务。网络服务包括:文件传输、文件管理和电子邮件的消息处理等。典型的应用层协议包括:Telnet、FTP、SMTP、SNMP等。- Telnet具有两重含义,既指这种应用也指协议自身。Telnet给用户提供了一种通过联网的终端登录远程服务器的方式。
- FTP(文件传输协议)用于文件传输的Internet标准。FTP支持文本文件(ASCII、二进制等)和面向字节流的文件结构。FTP使用TCP在支持FTP的终端系统间进行文件传输,因此,FTP被认为提供了可靠的面向连接的文件传输能力,适合于远距离、可靠性较差的线路上的文件传输。
- TFTP(简单文件传输协议)使用UDP提供文件传输服务,被认为是不可靠的、无连接的。通常用于可靠的局域网内部的文件传输。
- SMTP(简单邮件传输协议)支持文本邮件的Internet传输。
- SNMP(简单网络管理协议)负责网络设备监控和维护,支持安全管理和性能管理等。
- HTTP(超文本传输协议)是www的基础,Internet上的网页主要通过HTTP进行传输。
OSI参考模型和TCP/IP模型基本知识的更多相关文章
- 【计算机网络】两个网络模型——OSI参考模型和TCP/IP模型
计算机网络 两个网络模型 计算机网络模型 分层机制----规划通讯细节 层与层之间之间是独立的.屏蔽的,下层为上层提供服务. 一些概念 实体: 任何发送/接收信息的软件/硬件进程. 对等层: 两个不同 ...
- OSI参考模型和TCP/IP参考模型
- (转载)OSI七层参考模型和TCP/IP四层参考模型
Mallory 网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互 ...
- Java网络编程:OSI七层模型和TCP/IP模型介绍
OSI(Open System Interconnection),开放式系统互联参考模型 .是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层.每一层都有相关.相对应的物理设备,比如常规的路 ...
- 查漏补缺:OSI七层模型和TCP/IP模型
应用层协议:Telnet.FTP.e-mail等 传输层协议:TCP.UDP.STCP等 网络层协议:IP.ICMP.IGMP等 链路层协议:设备驱动及接口卡
- 大白话聊OSI七层模型和TCP/IP四层模型
前言 今天和大家聊的是一个比较基础的问题,OSI七层模型和TCP/IP四层模型. 小伙伴们可能有疑问,这个东西还用写文章吗,太基础了吧,网上文章多的是,随便一搜索就能找到. 确实是这样,网上资料确实很 ...
- 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)
以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型 下四层是为数据传输服务的,物理层是真正的传输数 ...
- OSI 七层模型和 TCP/IP 四层模型 及 相关网络协议
简介 OSI 是理论上的模型,也就是一个统一的国际标准,现在的很多网络设备或者是网络协议都不同程度的精简了自己的所谓的模型,那么他们为了自己的通讯兼容都会参考这个OSI模型 TCP/IP 包括: TC ...
- OSI七层模型和tcp/ip四层模型对比
OSI 与TCP/IP 模型对比 OSI 协议层名称 TCP/IP 协议层名称 封装的单元 功能描述 TCP/IP协议 应用层(Application) 应用层(Application) 数据 应用程 ...
随机推荐
- 插入外置网卡端口顺序混乱--linux系统
本文皆是作者工作学习中的理解或感悟,欢迎大家提出问题,一起讨论!! 一.问题提出 一般的主板上都带有两个网卡接口,linux系统启动后一般命名为eth0,eth1,当然如果我们不对eth0与eth1进 ...
- Android Weekly Notes Issue #247
Android Weekly Issue #247 March 5th, 2017 Android Weekly Issue #247. 本期内容包括: 离线模式的实现; RxJava2的测试支持; ...
- 13.用别名(alias)创建你自己的命令
现在是时候,感受第一次编程经历了!我们将用 alias 命令创建我们自己的命令.但在 开始之前,我们需要展示一个命令行小技巧.可以把多个命令放在同一行上,命令之间 用”;”分开.它像这样工作: com ...
- int占几个字节?
class Program19 { static void Main(string[] args) { // true,或false Console.WriteLine("bool占用:&q ...
- fiddler抓包出现Tunnel to
在抓包的时候,有时候会遇到很多的tunnel to,图标是一把锁的形状,如下图: connect是为了建立http tunnel,connect是http众多方法中的其中一种,它跟post.get.p ...
- 存储过程存储过程需要用两个'',先where再Group,再Order by
存储过程需要用两个'',先where再Group,再Order by 未完,待续
- 通信与实际用例应用(消息队列和进程撰写的ATM机与消息队列的五子棋对站)
int semget(key_t key, int nsems, int semflg); 功能:创建信号量或获取信号量 nsems:信号量的数量 semflg: IPC_CREAT|IPC_EXEC ...
- linux 下通过过 hbase 的Java api 操作hbase
hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ...
- 将旧的时间字符串转换为新的string时间字符串
旧的时间字符串-->simpledataformat1.parse(该字符串) 获得date类型 -->simpledataformat2.format(date) simpledatef ...
- 乘风破浪:LeetCode真题_016_3Sum Closest
乘风破浪:LeetCode真题_016_3Sum Closest 一.前言 这一次,问题又升级了,寻找的是三个数之和最靠近的某个数,这是非常让人难以思考的,需要把三个数相加之后和最后给的目标 ...