Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解
OSI七层模型
OSI是Open System Interconnect的缩写,意为开放式系统互联。
OSI
是Open System Interconnect
的缩写,意为开放式系统互联。
OSI
七层参考模型的各个层次的划分遵循下列原则:
根据不同层次的抽象分层
每层应当有一个定义明确的功能
每层功能的选择应该有助于制定网络协议的国际标准。
各层边界的选择应尽量节省跨过接口的通信量。
层数应足够多,以避免不同的功能混杂在同一层中,但也不能太多,否则体系结构会过于庞大
同一层中的各网络节点都有相同的层次结构,具有同样的功能。
同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。
七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
不同节点的同等层按照协议实现对等层之间的通信。
根据以上标准,OSI参考模型分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层涉及在信道上传输的原始比特流。
数据链路层的主要任务是加强物理层传输原始比特流的功能,使之对应的网络层显现为一条无错线路。发送包把输入数据封装在数据帧,按顺序传送出去并处理接收方回送的确认帧。
网络层关系到子网的运行控制,其中一个关键问题是确认从源端到目的端如何选择路由。
传输层的基本功能是从会话层接收数据而且把其分成较小的单元传递给网络层。
会话层允许不同机器上的用户建立会话关系。
表示层用来完成某些特定的功能。
应用层包含着大量人们普遍需要的协议。
OSI层 | 功能 | 设备 | 对应TCP/IP协议 |
---|---|---|---|
应用层 | 用户接口、应用程序(文件传输,电子邮件,文件服务,虚拟终端) | 网关 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet |
表示层 | 数据的表示、压缩和加密(数据格式化,代码转换,数据加密) | 网关 | 没有协议 |
会话层 | 会话的建立和结束(解除或建立与别的接点的联系) | 网关 | 没有协议 |
传输层 | 提供端对端的接口 | 网关 | TCP,UDP |
网络层 | 为数据包选择路由,寻址 | 路由器 | IP,ICMP,RIP,OSPF,BGP,IGMP |
数据链路层 | 保证误差错的数据链路,传输有地址的帧以及错误检测功能 | 交换机、网桥、网卡 | SLIP,CSLIP,PPP,ARP,RARP,MTU |
物理层 | 传输比特流,以二进制数据形式在物理媒体上传输数据 | 集线器、中继器 | ISO2110,IEEE802,IEEE802.2 |
七层模型的每一层都具有清晰的特征。基本来说,第七至第四层处理数据源和数据目的地之间的端到端 通信,而第三至第一层处理网络设备间的通信。
另外,OSI模型的七层也可以划分为两组:上层(层7、层6和层5)和下层(层4、层3、层2和层 1)。
OSI模型的上层处理应用程序问题,并且通常只应用在软件上。最高层,即应用层是与终端用户最接近的。
OSI模型的下层是处理数据 传输的。物理层和数据链路层应用在硬件和软件上。最底层,即物理层是与物理网络媒介(比如说,电线)最接近的,并且负责在媒介上发送
第7层-应用层
- 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;
- 提供标准服务,比如虚拟终端、文件以及任务的传输和处 理;
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
第6层-表示层
- 掩盖不同系统间的数据格式的不同性;
- 指定独立结构的数据传输格式;
- 数据的编码和解码;加密和解密; 压缩和解压缩
这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
第5层-会话层
- 管理用户会话和对话;
- 控制用户间逻辑连接的建立和挂断;
- 报告上一层发生的错误
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,而是统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
第4层-处理信息的传输层
- 管理网络中端到端的信息传送;
- 通过错误纠正和流控制机制提供可靠且有序的数据包传送;
- 提供面向无连 接的数据包的传送;
第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的 数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中 传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等。
第3层-网络层
- 定义网络设备间如何传输数据;
- 根据唯一的网络设备地址路由数据包;
- 提供流和拥塞控制以防止网络资源 的损耗
在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。如 果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地 址解析协议(ARP)。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。
第2层-数据链路层(DataLinkLayer):
- 定义操作通信连接的程序;
- 封装数据包为数据帧;
- 监测和纠正数据包传输错误
在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
第1层-物理层(PhysicalLayer)
- 定义通过网络设备发送数据的物理方式;
- 作为网络媒介和设备间的接口;
- 定义光学、电气以及机械特性。
规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列。在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网间网协议)是目前世界上应用最为广泛的协议,它的流行与Internet的迅猛发展密切相关—TCP/IP最初是为互联网的原型ARPANET所设计的,目的是提供一整套方便实用、能应用于多种网络上的协议,事实证明TCP/IP做到了这一点,它使网络互联变得容易起来,并且使越来越多的网络加入其中,成为Internet的事实标准。
TCP/IP协议族包含了很多功能各异的子协议。为此我们也利用上文所述的分层的方式来剖析它的结构。TCP/IP层次模型共分为四层:应用层、传输层、网络层、数据链路层。
TCP/IP层 | 协议 |
---|---|
数据链路层 | ARP,RARP |
网络层 | IP,ICMP,IGMP |
传输层 | TCP ,UDP,UGP |
应用层 | Telnet,FTP,SMTP,SNMP |
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
应用层
应用层是所有用户所面向的应用程序的统称。ICP/IP协议族在这一层面有着很多协议来支持不同的应用,许多大家所熟悉的基于Internet的应用的实现就离不开这些协议。如我们进行万维网(WWW)访问用到了HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、远程登录用Telnet协议等等,都是属于TCP/IP应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。
传输层
这一层的的功能主要是提供应用程序间的通信,TCP/IP协议族
在这一层的协议有TCP和UDP。
网络层
TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输,IP协议就是一个网络层协议。
网络接口层
这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。
区别与联系
除了层的数量之外,开放式系统互联(OSI)模型与TCP/IP协议有什么区别?
开放式系统互联模型是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下:
TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。
TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。
转载:http://blog.csdn.net/gatieme/article/details/50858920
Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解相关推荐
- OSI七层与TCP/IP五层网络架构详解
http://network.51cto.com/art/201310/413853.htm 1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议. IP层接收由更低层(网络接口层例 ...
- 8、 OSI七层与TCP/IP五层网络架构详解
OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助. 一.OSI参考模型 1.OSI的来源: OSI(Open System Interconnect),即开 ...
- 详解OSI七层网络模型 TCP/IP四层模型
@TOC这里对OSI七层网络模型和TCP/IP四层模型及其下的各层和TCP协议的设计核心做出总结供大家参考,如有错误欢迎指出讨论! OSI七层网络模型 & TCP/IP四层模型 OSI七层模型 ...
- 【转载】Linux下套接字学习
感觉这个系列还不错,学习一下. 先看的是第三篇: http://blog.csdn.net/gatieme/article/details/46334337 < Linux下套接字详解(三)-- ...
- Linux下套接字详解(二)----套接字Socket
在前面我们讲了TCP/IP.TCP和UDP的一些基本知识,但是协议只有一套,而我们系统多个TCP连接或多个应用程序进程必须通过同一个 TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算 ...
- Linux下套接字详解(四)----简单的TCP套接字应用(迭代型)
前面我们已经将了TCP/UDP的基本知识,还说了并发服务器与迭代服务器的区别,我们大致了解大多数TCP服务器是并发的,大多数UDP服务器是迭代的 ,即我们在进行数据传送的时候,往往使用服务器与客户但之 ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协 ...
- Linux下套接字详解(七)----线程池accept处理高并发connect
前言 服务器在调用listen和accept后,就会阻塞在accept函数上,accpet函数返回后循环调用accept函数等待客户的TCP连接. 我们知道服务器段listen套接字能处理的连接数与监 ...
- Linux下套接字详解(六)----基于pthread的多线程的TCP套接字(阻塞/同步/并发)
上节我们实现了一个简单的多进程的服务器程序,这节,我们服务器的框架不做修改,只是将其修改为一个多线程的服务器程序. 直接上代码 server #include <stdio.h> #inc ...
最新文章
- iOS 打电话回到当前应用
- linux终端定时器实验报告,定时器实验报告.doc
- SAP Spartacus如何启用B2B feature
- 2019蓝桥杯国赛B组第九题
- 高倍数泡沫装置PHP_泡沫灭火系统,了解这几点就好
- 关于如何调用Datalist里面的Datalist
- 巧用 Class Extension 隐藏属性
- JavaSE复习_6 枚举类
- i++,++i 作为参数
- IDEA使用SVN上传项目
- 奇妙的数字 小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。你能猜出这个数字是多少吗?
- 【免费】雪糕刺客小程序,天价雪糕查询表,简单小程序框架
- Windows便签数据恢复
- EBS中的销售员SQL
- 端午节送点话费给大家,千万别错过!
- python 制作刷题程序
- 《枪炮、病菌与钢铁》读后感
- kata cantainer介绍及Ubuntu安装kata cantainer
- h5 canvas html 合成,图片合成以及canvas的应用
- PDManer安装教程
热门文章
- c语言模板程序,模板模式 (C语言实现)
- 导购提成怎么算_空调选购,别问“小白”问题,问导购这几个参数,才会显得内行...
- 理解矩阵,矩阵背后的现实意义
- 「镁客·请讲」虚之实康成:等风来不如先发制人,打磨好硬件产品才是王道...
- 关于Swift中Struct,Class和Enum的哪些事儿
- 关于停断电后电脑自动开机重启的问题
- mysql的左连接应用
- can not open file Permission denied at securecrt_linux_crack.pl line 57
- /home/appleyuchi主目录迁移到新磁盘中
- Flask/Django/Tornado语法对比(持续更新中)