作者:手机用户2502912633 | 来源:互联网 | 2023-09-04 11:47
计算机网络体系结构(TCP/IP) 我们把计算机网络的各层及协议集合,成为网络的体系结构。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。
国际标准化组织ISO 于1981年正式推荐了一个网络系统结构—-七层参考模型,叫做开放系统互连模型(Open System Interconnection,OSI)。由于这个标准模型的建立,使得各种计算机网络向它靠拢,大大推动了网络通信的发展。
但由于OSI体系结构太复杂,在实际应用中TCP/IP的四层体系结构得到广泛应用,作为折中,在学习中一般学习五层协议体系机构。各体系结构如下图:
层与协议:每一层都是为了完成一种功能,为了完成这些功能,需要遵循一些规则,这些规则就是协议,每一层都定义了一些协议。
物理层 (physical layer)
在物理层上传输的数据单位是比特 ,物理层的任务就是透明的传输比特流。 也就是说,发送方发送1(或0)时,接收方应当接收1(或0)而不是0(或1)。因此物理层要考虑的是多大的电流代表“1”或“0”,以及接收方如何识别发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚要如何连接。当然,哪几个比特代表什么意思,则不是物理层所需要管的。注意,传递信息的物理媒体,如双绞线、同轴电缆、光缆无线信道等,并不在物理层协议之内。
总结:规定了网络中的电气特性,负责传送0和1电气信号。
数据链路层(data link layer)
两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,两个相邻节点(主机和路由器之间或两个路由器之间)传送数据是直接传送的(点对点)。这是就需要专门的链路层协议。连个相邻节点之间传送数据时,数据链路层将网络层传下来的IP数据报组转城帧(framing),在连个相邻节点透明的传送帧(frame) 中的数据。每帧中包含必要的控制信息 (如同步信息、地址信息、差错控制等)。
以太网协议:以太网规定一组电信号组成帧,帧由标头(Head) 和数据(Data) 组成。 标头 包含发送方和接收方的地址(MAC地址 )以及数据类型等等。 数据 则是数据的具体内容(IP数据包)。 MAC地址 每个连入网络的设备都有网卡接口,每个网卡接口在出厂时都有一个独一无二的MAC地址。
通过ARP协议可以知道本网络内的所有机器的MAC地址,以太网通过广播的方式把数据发送到本网络内的所有机器上,让其根据MAC地址自己判断是否接受数据。
网络层
网络层负责为分组交换网上的不同主机提供服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组 或包 进行传送。由于网络层使用IP协议,因此分组也叫做IP数据包 ,或简称数据报 。
网络层的另一个任务就是选择合适的路由,是源主机运输层所传下来的分组,能够通过网络钟的路哟其找到目标主机。
因特网是一个很大的互联网,由大量的异构网络相互连接起来。因特网的主要网络层协议是无连接的网际层协议IP(Internat Protocol) 和许多路由选择协议,因此网络层也叫做网际层 或IP层 。
依靠以太网的MAC地址发送数据,理论上可以跨地区寻址,但是以太网的广播方式发送数据,不仅效率低,而且局限在发送者所在的局域网。如果两台计算机不在一个子网内,广播是发不过去的。
因此有了网络层,它引入一种新的地址,使得能够区分两台计算机是否在同一个子网内,这套地址叫做网络地址 ,简称网址 。
规定网络地址的协议叫IP协议,所定义的地址叫IP地址 ,由32个二进制位组成,从0.0.0.0一直到255.255.255.255。IP地址分为两个部分,前面一部分代表网络,后一部分代表主机。处于同一个子网的IP地址,其网络部分必定是相同的。例如前24位代表网络,后8位代表主机,IP地址172.251.23.17和172.251.23.108处在同一个子网。如何判断网络部分是多少位,这就需要子网掩码 ,它和IP地址都是32个二进制位,代表网络的部分都由1表示,主机部分位0。那么24位的网络地址,子网掩码就是255.255.255.0。将两个IP地址分别和其对应的子网掩码进行AND运算,结果相同说明两个IP在同一个子网络。
因此如果是同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。IP协议作用主要是为分配IP地址和判断那些IP在同一个网络。
运输层(transport layer)
运输层的任务就是负责两个主机进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用进程可同时使用运输层的服务,分用是运输层把收到的信息分别交付给上面的应用层的相应进程。
运输层主要使用两种协议: TCP-面向连接的,UDP-无连接的。 计算机有许多需要网络的的程序,比如QQ、浏览器等,如何区分从网上来的数据是属于谁的,于是有了一个参数,这个参数叫做端口(PORT) ,它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
“端口”是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
“运输层”的功能,就是建立”端口到端口”的通信。相比之下,”网络层”的功能是建立”主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做”套接字”(socket)。有了它,就可以进行网络应用程序开发了。
应用层(Application layer)
应用层是体系机构的最高层,应用层直接为用户提供进程服务。这里的进程值得就是正在运行的程序。应用层的协议很多,如HTTP、FTP、SMTP等。
应用程序收到”传输层”的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。 “应用层”的作用,就是规定应用程序的数据格式。
举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
参考: 《计算机网络》 谢希仁 http://blog.csdn.net/dadadie/article/details/52190817