❶ 网络层的详解
www.cnblogs.com/wendingding/p/3813466.html
www.jianshu.com/p/1389677a5840
www.cnblogs.com/meier1205/p/5971313.html
blog.csdn.net/hopedark/article/details/50729763
我相信出去面试的同学经常会被问到网络层相关的问题,其实作为一个ios开发,可能接触这一块比较少,但是如果想表现自己是一位老程序员,这方面的知识是不可少的.首先上一张图给大家看看网络请求过程.
七层模型介绍(OSI 模型(Open System Interconnection model))
1.物理层: 物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;eg:RJ45等将数据转化成0和1;
2.数据链路层: 数据链路层通过物理网络链路提供数据传输。不同的数据链路层定义了不同的网络和协 议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控;可以简单的理解为:规定了0和1的分包形式,确定了网络数据包的形式;
数据链路层:SLIP,CSLIP,PPP,MTU
3.网络层: 网络层负责在源和终点之间建立连接;可以理解为,此处需要确定计算机的位置,怎么确定?IPv4,IPv6!
网络层:IP,ICMP,OSPF,EIGRP,IGMP
IP 协议: 是网络互连协议(Internet Protocol)的缩写。它提供了能适应各种网络硬件的灵活性,对底层网络硬件几乎没任何要求,任何一个网络只要能够从一个地点向另一个地点传送二进制数据,即可使用IP协议加入互联网络了
4.传输层: 传输层向高层提提供可靠的端到端的网络数据流服务,可以理解为:每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信!常用的(TCP/IP)协议;
传输层:TCP,UDP
说说关于UDP/TCP的区别?
UDP: 是用户数据报协议: 主要用在实时性要求高以及对质量相对较弱的地方,但面对现在高质量的线路不是容易丢包除非是一些拥塞条件下, 如流媒体
TCP: 是传输控制协议:是面连接的,那么运行环境必然要求其可靠性不可丢包有良好的拥塞控制机制如http ftp telnet 等
什么是三次握手与四次挥手?
三次握手实现的过程:
第一次握手:建立连接时,客户端发送同步序列编号到服务器,并进入发送状态,等待服务器确认
第二次:服务器收到同步序列编号,确认并同时自己也发送一个同步序列编号+确认标志,此时服务器进入接收状态
第三次:客户端收到服务器发送的包,并向服务器发送确认标志,随后链接成功。
注意:是在链接成功后在进行数据传输。
四次挥手:
第一次: 客户端向服务器发送一个带有结束标记的报文。
第二次:服务器收到报文后,向客户端发送一个确认序号,同时通知自己相应的应用程序:对方要求关闭连接
第三次: 服务器向客户端发送一个带有结束滚带标记的报文。
第四次: 客户端收到报文后,向服务器发送一个确认序号。链接关闭。
5.会话层: 会话层建立、管理和终止表示层与实体之间的通信会话;建立一个连接(自动的手机信息、自动的网络寻址);
6.表示层: 表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;可以理解为:解决不同系统之间的配野通信,eg:Linux下的QQ和Windows下的QQ可以通信;
应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
一、HTTP 协议:是超文本传输协议,对应于应用层,用于如何封装数据,http 为短连接:客户端发送请求都需要服大卖芦务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态,HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。
二、FTP 协议 :是文件传输协议,是File Transfer Protocol的简称,它的作用是用于控制互联网上文件的双向传输,因此一定不会是即时聊天使用的;UDP是面向无连接的传输层协议,数据传输是不可靠的,它只管发,不管收不收得到;TCP是面向连接的,可靠的传输层协议;HTTP是超文本传输协议,对应于应用层,而HTTP是基于TCP的。
超文本传输协议,访问的是远程的网络资源,格式是http://
不管是移动客户端还是PC端,访问远程的网络资源经常使用HTTP协议,访问网络主页:http://www..com,获得新浪的微博数据,获得大众点评的团购数据.
HTTP的全称是Hypertext Transfer Protocol,超文本传输协议
(1)规定客户端和服务器之间的数据传输格式
(2)让客户端和服务器能有效地进行数据沟通
要想使用HTTP协议向服务器索取数据,得先了解HTTP通信的完整过程
完整的http通信可以分为2大步骤
(1)请求:客户端向服务器索要数据
(2)响应:服务器返回客户端相应的数据
HTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容
请求行 :包含了请求方法、请求资源路径、HTTP协议版本
GET /MJServer/resources/images/1.jpg HTTP/1.1
请求头: 包含了对客户端的环境描述、客户端请求的主机地址等信息
Host: 192.168.1.105:8080// 客户端想访问的服务器主机地址
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0// 客户端的类型,客户端的软件环境
Accept: text/html, */*// 客户端所能接收的数据类型
Accept-Language: zh-cn// 客户端的语言环境
Accept-Encoding: gzip// 客户端支持的数据压缩格式
请求体 :客户端发给服务器的具体数据,比如文件数据
客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
HTTP协议规定:1个完整的HTTP响应中包含以下内容:
状态行: 包含了HTTP协议版本、状态码、状态英文名称
HTTP/1.1 200 OK
响应头: 包含了对服务器的描述、对返回数据的描述
Server: Apache-Coyote/1.1// 服务器的类型
Content-Type: image/jpeg// 返回数据的类型
Content-Length: 56811// 返回数据的长度
Date: Mon, 23 Jun 2014 12:54:52 GMT// 响应的时间
实体内容: 服务器返回给客户端的具体数据,比如文件数据
在HTTP/1.1协议中,定义了8种发送http请求的方法
GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
根据HTTP协议的设计初衷,不同的方法对资源有不同的操作方式
PUT :增
DELETE :删
POST:改
GET:查
提示:最常用的是GET和POST(实际上GET和POST都能办到增删改查)
要想使用GET和POST请求跟服务器进行交互,得先了解一个概念:参数就是传递给服务器的具体数据,比如登录时的帐号、密码
GET和POST对比:GET和POST的主要区别表现在数据传递上
GET
在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如 http://ww.test.com/login?username=123&pwd=234&type=JSON
注意:由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST
发给服务器的参数全部放在请求体中
理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
选择GET和POST的建议
(1)如果要传递大量数据,比如文件上传,只能用POST请求
(2)GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
(3)如果仅仅是索取数据(数据查询),建议使用GET
(4)如果是增加、修改、删除数据,建议使用POST.
要想明白 Socket,必须要理解 TCP 连接。
TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。
Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。
创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。
Socket 原理
Socket 连接,至少需要一对套接字,分为 clientSocket,serverSocket 连接分为3个步骤:
(1) 服务器监听:服务器并不定位具体客户端的套接字,而是时刻处于监听状态;
(2) 客户端请求:客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求;
(3) 连接确认:当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.
Socket为长连接: 通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。
很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步。
若双方是 Socket 连接,可以由服务器直接向客户端发送数据。
若双方是 HTTP 连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。
因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端。
❷ 网络数据是什么
网络数据是指电脑与互联网接通后,电脑接收和发送的数据时。当接收和发送的数据相对接近说明网络正常,反之则电脑不能与互联网连接;数据大网络就好。详见链接属性。
❸ OSI模型中各层的名称分别是什么他们对应的数据单元是什么
OSI模型中各层的名称和其对于的数据单元分别是:
❹ 网络层,数据链路层和物理层传输的数据单位分别是
网络层数据传输单位为拦团分悄烂组,或者称作IP数据包,英文为packet;数据链路层数据传输单位为帧,英文为frame;物启衡漏理层数据传输单位为比特,英文为bit。
❺ 在网络各个层中的数据包的名称分别是什么
数据帧、数据包、数据报以及数据段
OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。
信息交换发生在对等OSI层之间,在源端机中每一层把控制信息附加到数据中,而目的机器的每一层则对接收到的信息进行分析,并从数据中移去控制信息,下面是各信息单元的说明:
数据帧(Frame):是一种信息单位,它的起始点和目的点都是数据链路层。
数据包(Packet):也是一种信息单位,它的起始和目的地是网络层。
数据报(Datagram):通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
段(Segment):通常是指起始点和目的地都是传输层的信息单元。
消息(message):是指起始点和目的地都在网络层以上(经常在应用层)的信息单元。
元素(cell)是一种固定长度的信息,它的起始点和目的地都是数据链路层。
元素通常用于异步传输模式(ATM)和交换多兆位数据服务(SMDS)网络等交换环境。
数据单元(data
unit)指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。
SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。
Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。
数据链路层的PDU叫做Frame(帧);
网络层的PDU叫做Packet(数据包);
TCP的叫做Segment(数据段);
UDP的叫做Datagram。(数据报)——在网络层中的传输单元(例如IP)。一个Datagram可能被封装成一个或几个Packets,在数据链路层中传输
帧和数据包都是数据的传输形式。帧,工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;数据包,工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。
❻ 数据链路层和网络层的协议数据单元(PDU)分别是什么它们之间的封装关系是什么
OSI参考模型中,网络层、数据链路层传输的协议数据单元(PDU)分别是:分组、帧
协议数据单元,物理层的 PDU是数据位,数据链路层的 PDU是数据帧,网络层的PDU是数据包,传输层的 PDU是数据段,其他更高层次的PDU是报文。
协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。协议数据单元(ProtocolData Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame)。
网络层的PDU是数据包(packet),传输层的PDU是数据段(segment),其他更高层次的PDU是数据(data)。
(6)网络层数据是什么扩展阅读
数据链路层属于计算机网络的低层。数据链路层使用的通道主要由两种类型:
点对点信道:这种信道使用一对一的点对点通信方式。
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
从整个互联网范围来看的话,互联网仍然属于数据链路层的范围。
1.数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP,以及CSMA、CD协议)特点。
2.数据链路层的三个基本作用:封装成帧、透明传输和差错检测。
3.以太网MAC层的硬件地址。
4.适配器、转发器、集线器、网桥、以太网交换机的作用场合。
❼ OSI参考模型各层的功能作简单介绍
下面对OSI参考模型各层的功能作简单介绍。
物理层:位于OSI参考模型的最底层,提供一个物理连接,所传数据的单位是比特。其功能是对上层屏蔽传输媒体的区别,提供比特流传输服务。也就是说,有了物理层后,数据链路层及以上各层都不需要考虑使用的是什么传输媒体,无论是用双绞线、光纤,还是用微波,都被看成是一个比特流管道。
数据链路层:负责在各相邻节点间的线路上无差错地传送以帧( Frame)为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。其功能是对物理层传输的比特流进行校验,并采用检错重发等技术,使本来可能出错的数据链路变成不出错的数据链路,从而对上层提供无差错的数据传输。换句话说,就是网络层及以上层不再需要考虑传输中出错的问题,就可以认定下面是一条不出错的数据传输信道,把数据交给数据链路层,它就能完整无误地把数据传给相邻节点的数据链路层。
网络层:计算机网络中进行通信的两台计算机之间可能要经过多个节点和链路,也可能要经过多个通信子网。网络层数据的传送单位是分组或包(Packet),它的任务就是选择合适的路由,使发送端的传输层传下来的分组能够正确无误地按照目的地址发送到接收端,使传输层及以上各层在设计时不再需要考虑传输路由。
传输层:在发送端和接收端明孙之间建立一条不会出错的路由,对上层提供可靠的报文传输服务。与数据链路层提供的相邻节点间比特流的无差错传输不同,传输层保证的是发送端和接收端之间的无差错传输,主要控制的是包的丢失、错序、重复等问题。
会话层:会话层虽然不参与具体的数据传输,但它要对数据传输进行管理。会话层建立在两个互相通信的应用进程之间,组织并协调其交互。例如,在半双工通信中,确定在某段时间谁有权发送,谁有权接收;或当发生意外时(如已建立的连接突然断了),确定在重新恢复会话时应从何处开始,而不必重传全部数据。
表示层:表示层主要为上层用户解决用户信息的语法表示问题,其主要功能是完成数据转换、数据压缩和数据加密。表示层将欲交换的资料从适合于某一用户的抽象语法变换为适合于OSI系统内部使用的传送语法。有了这样的表示层,用户就可以把精力集中在他们所要交谈的问题本身,而不必更多地考虑对方的某些特性。
应用层:应用层是OSI参考模型中的最高层,它确定进程之间的通信性质以满足用户的需要,负责用户信息的语义表示,并在两个通信者之间进行语义匹配。这就是说,应用层不仅要提供应用进程所需要的信息交换等操作,还要作为相互作用的进程的用户代理,来完成一些为进行语义上有意义的信息交换所必需的功能。
以上所述的各层的最主要功能可以归纳如下:
应用层:与用户应用进程的接口,即相当于“做什么?”
表示层:数据格式的转换,即相当于“对方看起来像什么?”
会话层:会话的管理与数据传输的同步,即相当于“轮到谁讲话和从何处讲?”
传输层:从端到端经网络透明地传送报文,即相当于“对方在何处?”
网络层:分组交换和路由选择,即相当于“走哪条激漏链路可到达该处?”
数据链路层:在链路上无差错地传送帧,即相当于“每一步该怎么走?”
物理层:将比特流送到物理媒体搜御上传送,即相当于“对上一层的每一步应该怎样利用物理媒体?”
由上可见,OSI参考模型的网络功能可分为三组,下两层解决网络信道问题,第三、四层解决传输服务问题,上三层处理应用进程的访问,解决应用进程的通信问题。
❽ 什么是网络层
网络层的产生也是网络发展的结果.在联机系统和线路交换的环境中,网络层的功能没有太大意义.当数据终端增多时.它们之间有中继设备相连.此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径.另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉.人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术.
⑴网络层主要功能
网络层为建立网络连接和为上层提供服务,应具备以下主要功能.
1. 路由选择和中继.
2. 激活,终止网络连接.
3. 在一条数据链路上复用多条网络连接,多采取分时复用技术.
4. 差错检测
5. 排序,流量控制.
6. 服务选择.
7. 网络层管理.
8.分段和合段
9.流量控制
10.加速数据传送
11.复位
⑵网络层标准简介
网络层的一些主要标准如下.
ISO.DIS8208:称为"DTE用的X.25分组级协议".
ISO.DIS8348:称为"CO 网络服务定义"(面向连接).
ISO.DIS8349:称为"CL 网络服务定义"(面向无连接).
ISO.DIS8473:称为"CL 网络协议".
ISO.DIS8348:称为"网络层寻址".
除上述标准外,还有许多标准。这些标准都只是解决网络层的部分功能,所以往往需要在网络
层中同时使用几个标准才能完成整个网络层的功能.由于面对的网络不同,网络层将会采用不同的
标准组合.
在具有开放特性的网络中的数据终端设备,都要配置网络层的功能.现在市场上销售的网络硬
设备主要有网关和路由器.
1. 网络层功能概述
网络层是OSI参考模型中的第三层,是通信子网的最高层。网络层关系到通信子网的运行控制,体现了网络应用环境中资源子网访问通信子网的方式。
网络层的主要任务是设法将源结点出的数据包传送到目的结点,从而向运输层提供最基本的端到端的数据传送服务。概括地说,网络层应该具有正世以下功能:
(1) 为传输层提供服务
网络层提供的服务有两类:面向连接的网络服务和无连接的网络服务。
虚电路服务是网络层向运输层提供的一种使所有数据包按顺序到达目的结点的可靠的数据传送方式,进行数据交换的两个结点之间存在着一条为它们服务的虚电路;而数据报服务是不可靠的数据传送方式,源结点发送的每个数据包都要附加地址、序号等信息,目的结点收到的数据包不一定按序到达,还可能出现数据包的丢失现培清拿象。
典型的网络层协议是X.25,它是由ITU-T(国际电信联盟电信标准部)提出的一种面向连接的分组交换协议。
(2) 组包和拆包
在网络层,数据传输的基本单位是数据包(也称为分组)。在发送方,传输层的报文到达网络层时被分为多个数据块,在这些数据块的头部和尾部加上一些相关控制信息后,即组成了数据包(组包)。数据包的头部包含源结点和目标结点的网络地址(逻辑地址)。在接收方,数据从低层到达网络层时,要将各数据包原来加上的包头和包尾等控制信息去掉(拆包),然后组合成报文,送给传输层。
(3) 路由选择
路由选择也叫做路径选择,是根据一定的原则和路由选择算法在多结点的通信子网中选择一条最佳路径。确定路由选择的策略称为路由算法。
在数据报方式中,网络结点要为每个数据包做出路由选择;而在虚电路方式中,只需在建立连接时确定路由。
(4) 流量控制
流量控制的作用是控制阻塞,避免死锁。
网络的吞吐量(数据包数量/秒)与通信子网负荷(即通信子网中正在传输的数据包数量)有着密切的关系。
对防止出现阻赛和死锁,需进行流量控制,通常可采用滑动窗口、预约缓冲区、许可证和分组丢弃四种方法。
2. 路由选择算法简介
路由算法很多,大致可分为静态路由算法和动态路由算法两类。
(1) 静态路由算法
静态路由算法又称为非自适应算法,是按某种固定规则进行的路由选择。其特点是算法简单、容易实现,但效率和性能较差。属于静态路由算法的有以下几种:
☆ 最短路由选择:
☆ 扩散式路由选择:
☆ 随配搭机路由选择:
☆ 集中路由选择:
(2) 动态路由算法
动态路由算法又称为自适应算法,是一种依靠网络的当前状态信息来决定路由的策略。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能;但算法复杂,实现开销大。属于动态路由算法的有以下几种:
☆ 分布式路由选择策略:
☆ 集中路由选择策略:
3. 网络层的网络连接设备
(1) 路由器(Router)
在互联网中,两台主机之间传送数据的通路会有很多条,数据包从一台主机出发,中途要经过多个站点才能到达另一台主机。这些中间站点通常由称为路由器的设备担当,其作用就是为数据包选择一条合适的传送路径。
路由器工作在OSI模型的网络层,是根据数据包中的逻辑地址(网络地址)而不是MAC地址来转发数据包的。
路由器的主要工作是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点。
路由器不仅有网桥的全部功能,还具有路径的选择功能,可根据网络的拥塞程度,自动选择适当的路径传送数据。
路由器与网桥不同之处在于,它并不是使用路由表来找到其他网络中指定设备的地址,而是依靠其它的路由器来完成任务。也就是说,网桥是根据路由表来转发或过滤数据包,而路由器是使用它的信息来为每一个数据包选择最佳路径。
路由器有静态和动态之分。静态路由器需要管理员来修改所有的网络路由表,一般只用于小型的网间互连;而动态路由器能根据指定的路由协议来完成修改路由器信息。
(2) 第三层交换机
随着技术的发展,有些交换机也具备了路由的功能。这些具有路由功能的交换机要在网络层对数据包进行操作,因此被称为第三层交换机。
说恏緈鍢呢 回答采纳率:34.8% 2008-11-18 09:40
OSI的网络层。譬如IP地址就是工作在网络层
Tracy 回答采纳率:21.6% 2008-11-18 09:41
网络层是OSI参考模型中的第三层, 它建立在数据链路层所提供的两个相邻端点之间的数据帧的传送功能之上,将数据从源端经过若干中间 节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。 网络层是处理端到端数据传输 的最低层,体现了网络应用环境中资源子网访问通信子网的方式。 概括起来分为以下四种方式:
路由选择 将分组从源端机器经选定的路由送到目的端机器。
拥塞控制 当到达通信子网中某一部分的分组数高于一定的水平,使得该部分网络来不及处理这些分组时,就会使这部分以至整个网络的性能下降。
流量控制 用来保证发送端不会以高于接收者能承受的速率传输数据,一般涉及到接收者向发送者发送反馈。
差错控制 要求每帧传送后接收方向发送方提供是否已正确接收的反馈信息,从而发送方可以据此决定是否要重发。