赞
踩
https://blog.csdn.net/zx48822821/category_9277132.html(计算机网络知识----书本详解※)
网络协议:https://blog.csdn.net/liuchengzimozigreat/article/details/100169829?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/m0_37907797/article/details/81232323
CPRI:http://www.elecfans.com/emb/jiekou/20180325651979.html
https://blog.csdn.net/xiao_mrs_li/article/details/60140449
1.报文(message)
我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的首部,那些就是报文头。
2.报文段/数据段(segment)
通常是指起始点和目的地都是传输层的信息单元。
3.数据报(datagram)
面向无连接的数据传输,其工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。如传输层TCP的分组叫做数据段,UDP的叫做数据报。
4.分组/包(packet)
分组是在网络中传输的二进制格式的单元,为了提供通信性能和可靠性,每个用户发送的数据会被分成多个更小的部分。在每个部分的前面加上一些必要的控制信息组成的首部,有时也会加上尾部,就构成了一个分组。它的起始和目的地是网络层。也称为IP包,包中带有足够寻址信息(IP地址),可独立地从源主机传输到目的主机
5.帧(frame)
帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧。它的起始点和目的点都是数据链路层。帧根据MAC地址寻址。
6.数据单元(data unit)
指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。
物理层的介质上直接实现无结构bit流传送的。
SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。
应用层——消息
传输层——数据段/报文段(segment) (注:TCP叫TCP报文段,UDP叫UDP数据报,也有人叫UDP段)
网络层——分组、数据包(packet)
链路层——帧(frame)
物理层——P-PDU(bit)
应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)
1.工作设备
2.协议(标题提到得cpri协议封装了物理层layer1和数据链路层layer2)
五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。
封装即每一层接收上层数据时,都会添加自己特定的头部数据(有时也会有尾部数据)。这些头部数据实际上就是实现协议的规定,即加上相应的“暗号”、“黑话”。一个很好的例子:人是数据,“暗号”就是人的头部数据。当喊出“天王盖地虎”,回答“宝塔镇河妖”,那我们就是自己人,可以开始联系了。假如你的暗号是“三个臭皮匠”,“顶个诸葛亮”,那你就忽略掉前面的“天王盖地虎”。
如下图,应用层到传输层时,应用数据的基础上添加了TCP的header,就变成了TCP segment 。
传输层到网络层时,就在TCP segment的基础上添加了IP的header,整个数据变成了IP datagram。
网络层到链路层时,就在IP datagram的基础上添加了Ethnet header和Ethnet triler数据,变成了Ethernet frame。
在传输层以下的各层中,数据的传递流程如下图:
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
设备:电缆、双绞线、无线网(电磁微波),光纤。
功能:实现0、1信号的传输。这些0、1信号就是计算机能够识别的数据。
数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
经物理层传输后,接收到信号如下:
问题:看得懂吗?谁送的信号?送给谁?因此,我们需要有一个规定(协议)来说明怎么我们该怎么编制有用的信号,然后大家就照这个来。
3.1 以太网协议
以太网这段参考:数据链路层之以太网协议
以太网协议就是来解决上面问题的。他规定一个数据包(帧)应该包含以下内容:
桢的长度是64~1518个字节,也就是说桢的长度不是固定的,那你觉得标头部分的字节长度是固定的吗?它当然是固定的啊,假如不是固定的,每个桢都是单独发的,那计算机怎么知道标头是几个字节,数据是几个字节。所以标头部分的字节是固定的,并且固定为18个字节。
一个电信号就是一个比特位。
MAC地址:以太网帧中,目的地址与源地址这里都指的是 MAC 地址(Media Access Control Address)。每一个主机都有网卡接口,网卡会产生一个 MAC 地址,该地址由供应商代码和序列号组成(参考),长度是 48 位,所以这里的目的地址与源地址都是 6 个字节,也就是 48 个比特位。
数据质量:在以太网帧的最后,是一个 CRC 校验码,来校验数据是否异常。
向上交付时的协议:在中间,有一个两个字节的类型标识。这个类型字段有三种值,分别是 : IP、ARP、RARP,对应的是向上层交付时采用的协议(上一层怎么读懂我)。
问题:虽然有地址,但发出时是以广播的形式发出,即所有连着的计算机都可能收到信号,怎么办?另:如果A计算机要给B发消息,那A怎么知道B的地址呢?
3.2 广播与ARP协议
在同一个子网中,计算机A要向计算机B发送一个数据包,这个数据包包含接收者的MAC地址。这个时候同一个子网中的计算机C,D也会收到这个数据包的,然后收到这个数据包的计算机,会把数据包的MAC地址取出来,与自身的MAC地址对比,如果两者相同,则接受这个数据包,否则就丢弃这个数据包。这种发送方式我们称之为广播
广播:计算机以广播的形式发出信号,所有连着的计算机都可能受到信号,这是接受到信号的计算机判断目的地址是不是自己。是,则接受;否,则丢弃。就像在广场上,有人大呼某个人的名字,你听到了,则判断如果是你,则回应,否则,就当没听见。
ARP协议:计算机 A 是如何知道计算机 B 的 MAC 地址的呢?这个时候就得由 ARP 协议这个家伙来解决了,不过 ARP 协议会涉及到IP地址,我们下面才会扯到IP地址。因此我们先放着,就当作是有这么一个 ARP 协议,通过它我们可以知道子网中其他计算机的 MAC 地址。
PS:数据链路层主要涉及以太网协议和ARP协议,最常用的实现这些协议的硬件和软件是网络适配器。
概念:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
网络,是由无数个子网络构成的。广播的时候,也只有同一个子网里面的计算机能够收到。
为什么要有子网? 这样划分很有好处,否则全世界无数的计算机都会收到数据包,光是判断这个数据包的工作量无法忍受。
如果不是同一个子网的,我们就会把数据发给网关,让网关进行转发。
为了解决这个问题我们引入了一套新的地址协议,这个地址协议能够帮助我们区分MAC地址是否处于同一个子网中。这也是网络层负责解决的问题。
4.1 ip协议
IP协议规定的是数据报,其信息如下:
数据报中包含IP协议版本、IP header的长度、服务类型(最小延时,最大传输,最大可靠性,最小消耗等)、整个数据报字节数、识别号……源IP地址、目标IP地址。
IP协议定义的地址称为IP地址。目前有两种版本,一种是IPv4,另一种是IPv6,IPv6版本可以提供更多的地址。目前主要是IPv4,因此下面主要讨论IPv4。
IPv4由32位二进制数组成,一般将其分为四段十进制来表示。地址范围为:0.0.0.0~255.255.255.255 。
IP地址怎么帮我们找到一个设备(计算机)呢?实际上IP地址给出了计算机的两部分信息:1、网络部分,给出计算机所处的子网;2、主机部分计算机的主机地址。
那进一步这两个部分分别对应哪些二进制位数呢?实际上这两个部分所占的二进制位数并是不固定的。因为我们可以根据子网的规模合理分配IP地址。比如一个少于255台主机的子网主机部分只需占8位就够了,如果占了16位,则很多地址都不会被用到,这是极大的浪费。
那我怎么知道网络部分和主机部分分别占几位呢?解决方案是引入子网掩码,他也是32位二进制数,并规定网络部分全为1,主机部分全为0。比如,主机部分为8位时,则对应的子网掩码是:
11111111.11111111.11111111.00000000,即255.255.255.0。
有了子网掩码,就知道了哪些是网络部分,进而只需要把两个IP地址网络部分的网络部分对比,就知道是否在同一个子网中。
子网:
划分子网是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。
子网掩码:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
划分子网数 | 子网位数 | 子网掩码 | 子网掩码(十进制) | 没给子网主机数 |
1~2 | 1 | 11111111.11111111.11111111.10000000 | 255.255.255.128 | 126 |
3~4 | 2 | 11111111.11111111.11111111.11000000 | 255.255.255.192 | 62 |
。。。 | 。。。 | 。。。 | 。。。 | 。。。 |
33~64 | 6 | 11111111.11111111.11111111.11111100 | 255.255.255.252 | 2 |
如上表所示的C类网络中,若子网占用7位主机位时,主机位只剩一位,无论设为0还是1,都意味着主机位是全0或全1。由于主机位全0表示本网络,全1留作广播地址,这时子网实际没有可用主机地址,所以主机位至少应保留2位。
算法例:
如上图所示,IP地址,与掩码进行与运算,得到子网主机地址,但是需要注意的是,上图只是该IP下的一个子网之一,172.16.0.0(10101100 00010000 0000 0000) 是一个B类地址,采用上图的掩码,255.255.240.0(11111111 11111111 11110000 00000000),进行与运算,那么该IP的子网占用主机位四位,也就是说,该网络下,地址以11111111 11111111 0000 到 11111111 11111111 1111 开头的,分属于不同的子网,每个子网可以有0000 00000001 到 1111 11111111 (1 ~ 4094)台不等数量的主机。
4.2 ARP协议
现在知道了IP协议,回头说ARP协议。之前说了他是用来得到同一个子网中目标计算机的MAC 地址,怎么实现呢?
ARP协议也是通过广播形式发送数据包给子网中所有计算机,数据包中含有目标计算机B的IP地址(不是MAC地址)。所有收到数据包的计算机会比较改地址和自己是否一致。如果一致,就回复给源计算机A自己的MAC地址(该地址唯一标志了主机的网卡接口)。否则丢弃该数据包。
有一个问题:其他计算机怎么知道你想要传数据还是想询问MAC地址?e解决方法:ARP协议中的数据包中在对方的MAC地址这一栏中,填的是一个特殊的MAC地址,其他计算机看到这个特殊的MAC地址就知道是想干嘛了。
那如果不是同一个子网,怎么发数据包给对方呢? 假如两台计算机的IP不是处于同一个子网之中,这个时候,我们就会把数据包发送给网关,然后让网关让我们进行转发传送。
4.3 DNS服务器
我们一般不直接输入对方的IP地址,而是输入对方的域名(更好记的地址),DNS服务器通过解析域名来帮我们找到对应的IP地址。
那么问题是:我们是如何知道对方计算机的IP地址的呢? 这个问题可能有人会觉得很白痴,心想,当然是计算机的操作者来进行输入了。这没错,当我们想要访问某个网站的时候,我们可以输入IP来进行访问,但是我相信绝大多数人是输入一个网址域名的,例如访问百度是输入 http://www.baidu.com 这个域名。其实当我们输入这个域名时,会有一个叫做DNS服务器的家伙来帮我们解析这个域名,然后返回这个域名对应的IP给我们的。
运输层,解决的是计算机程序到计算机程序之间的通信问题,即所谓的“端”到“端”的通信。引入运输层的原因: 增加复用和分用的功能、 消除网络层的不可靠性、 提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。运输层是ISO/OSI的第四层,处于通信子网和资源子网之间,是整个协议层次中最核心的一层。
https://blog.csdn.net/zx48822821/article/details/83722499
概述
运输层是整个网络体系结构中的关键层次之一。一定要弄清以下一些重要概念:
1.运输层为相互通信的应用进程提供逻辑通信。
2.端口和套接字的意义。
3.无连接的UDP的特点。
4.面向连接的TCP的特点。
5.在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议。
6.TCP的滑动窗口、流量控制、拥塞控制和连接管理。
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
进程之间的通信
为什么需要运输层?
这是因为,真正进行通信的实体是在主机中的进程,是这台主机中的一个进程和另一台主机中的一个进程在交换数据(即通信)。因此严格地讲,两台主机进行通信就是两台主机中的应用进程互相通信。IP协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信。
在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。这个很容易明白,因为你现在所使用的设备肯定能多开有联网功能的程序。这表明运输层有一个很重要的功能—复用(multiplexing)和分用(demultiplexing)。这里的“复用”是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据(当然需要加上适当的首部),而“分用”是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
图中两个运输层之间有一个双向粗箭头,写明“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:从应用层来看,只要把应用层报文交给下面的运输层,运输层就可以把这报文传送到对方的运输层(哪怕双方相距很远,例如几千公里),好像这种通信就是沿水平方向直接传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。数据的传送是沿着图中的虚线方向(经过多个层次)传送的。“逻辑通信”的意思是“好像是这样通信,但事实上并非真的这样通信”。
这和之前提到的透明十分类似。
根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP,这两种协议就是本文要讨论的主要内容。当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。
概念:定义了一些传输数据的协议和端口号(WWW端口80等),如:
TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)
UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
这部分参考:网络协议端口号详解和TCP 和 UDP 的区别
经过前面几层,我们已经知道如何把数据从计算机A发给计算机B。而一台计算机中的应用程序众多,我们怎么知道数据给哪一个应用呢?
这个时候就需要用到传输层最常见的两大协议是:TCP 协议和 UDP 协议,两者最大的不同就是 TCP 提供可靠的传输,而 UDP 提供的是不可靠传输。
下面TCP和UDP的解释来自TCP 和 UDP 的区别、网络协议端口号详解以及简述TCP的三次握手过程
区别:
1) tcp是基于连接的,即发送数据之前需要先建立连接;udp不需要
2)tcp是可靠的,有重传\序号\确认机制\滑动窗口等保证顺序和正确;udp不能保证
3)tcp是一对一的;udp支持一对一,一对多,多对多
4)tcp比较耗费资源(头较大,确认机制等导致),udp则效率更高
5)tcp基于流模式,udp数据报模式 ;
关于流模式于数据报模式的理解:
TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的(劫持什么的不考虑),因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。流模式下,发送端的每次发送量和接收端每次接收量没有必然关系
而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。这时候,如果一次能读取超过一 个报文的数据,则会乱套。比如,主机A向发送了报文P1,主机B发送了报文P2,如果能够读取超过一个报文的数据,那么就会将P1和P2的数据合并在了一 起,这样的数据是没有意义的。所以发送端每发送是一个数据报,而接收端每读也是一个数据报,这样发送次数一定等于读次数(不考虑丢失等)
综上,在对数据的完整性和准确性要求较高的情况下则需要使用tcp,如文件传输,邮件等;而对实时性和效率要求较高时则使用udp,如qq,视屏语音通话等
应用场景:
当对网络通信质量有要求时,比如:整个数据要准确无误的传递给对方,这往往对于一些要求可靠的应用,比如HTTP,HTTPS,FTP等传输文件的协议,POP,SMTP等邮件的传输协议。常见使用TCP协议的应用:
1.浏览器使用的:HHTP
2.FlashFXP:FTP
3.Outlook:POP,SMTP
4.QQ文件传输
UDP 文件传输协议
对当前网络通讯质量要求不高的时候,要求网络通讯速度尽量的快,这时就使用UDP
日常生活中常见使用UDP协议:
1.QQ语音
2.QQ视频
3.TFTP
6.应用层(报文)
概念:应用层的作用是将通信服务是提供给应用进程。但不同的网络应用的应用进程之间,还需要有不同的通信规则。因此在运输层协议之上,还需要有应用层协议(application layer protocol)。每个应用层协议都是为了解决某一类应用问题(例如域名、文件传输、邮箱等等),这必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成。应用层的具体内容就是精确定义这些通信规则。
为了处理射频模块拉远技术中基带单元和射频单元的光纤链接,国际上成立两个标准化组织:一个是CPRI (Common Public Radio Interface)
二者都定义了使基带和射频分离的标准化接口,也就是将宏基站分为基带单元BBU和远端射频单元RRU两部分,BBU和RRU之间传送I/Q数据和控制管理数据,其信号格式就是CPRI或者OBSAI所定义的标准接口
CPRI接口在传输用户界面定义了物理层layer1和数据链路层layer2两层协议。在物理层中,将上层接入点的数据进行串并/并串转换,以及物理层的编解码(CPRI接口推荐采用8B/10B,遵循IEEE 802.3 2005 Clause36建议);在数据链路层,对上层接入点的I/Q数据、物理层协议数据、网络协议数据(包括以太网数据、高层数据链路协议数据)和厂家自定义的控制信息等进行相应的处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。