计算机⽹络体系结构(TCPIP)
计算机⽹络体系结构(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地址。
tcpip协议pdf
通过ARP协议可以知道本⽹络内的所有机器的MAC地址,以太⽹通过⼴播的⽅式把数据发送到本⽹络内的所有机器上,让其根据MAC 地址⾃⼰判断是否接受数据。
⽹络层
⽹络层负责为分组交换⽹上的不同主机提供服务。在发送数据时,⽹络层把运输层产⽣的报⽂段或⽤户数据报封装成分组或包进⾏传送。由于⽹络层使⽤IP协议,因此分组也叫做IP数据包,或简称数据报。
⽹络层的另⼀个任务就是选择合适的路由,是源主机运输层所传下来的分组,能够通过⽹络钟的路哟其到⽬标主机。
因特⽹是⼀个很⼤的互联⽹,由⼤量的异构⽹络相互连接起来。因特⽹的主要⽹络层协议是⽆连接的⽹际层协议IP(Internat
Protocol)和许多路由选择协议,因此⽹络层也叫做⽹际层或IP层。
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数据的格式,这些应⽤程序协议就构成了”应⽤层”。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论