资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2019/1/23,#,OSI,参考模型的结构,网络通信原理,OSI参考模型的结构网络通信原理,1,OSI,参考模型的结构,OSI参考模型的结构,2,3.2.3 OSI,参考模型各层的功能,物理层的主要功能,:,利用传输介质为通信的网络结点之间建立、管理和释放物理连接;,实现比特流的透明传输,为数据链路层提供数据传输服务;,物理层的数据传输单元是比特。,3.2.3 OSI参考模型各层的功能 物理层的主要功能:,3,数据链路层的主要功能,:,在物理层提供的服务基础上,数据链路层在通信的实体间建立数据链路连接;,传输以,“,帧,”,为单位的数据包;,采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。,网络层的主要功能,:,通过路由选择算法为分组通过通信子网选择最适当的路径;,为数据在结点之间传输创建逻辑链路;,实现拥塞控制、网络互连等功能。,数据链路层的主要功能:,4,传输层的主要功能,:,向用户提供可靠端到端,(,end-to-end,),服务;,处理数据包错误、数据包次序,以及其他一些关键传输问题;,传输层向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。,会话层的主要功能,:,负责维护两个结点之间的传输链接,以便确保点,-,点传输不中断;,管理数据交换。,传输层的主要功能:,5,表示层的主要功能,:,用于处理在两个通信系统中交换信息的表示方式;,数据格式变换;,数据加密与解密;,数据压缩与恢复。,应用层的主要功能,:,为应用程序提供了网络服务,;,应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步,;,建立传输错误纠正与保证数据完整性的控制机制。,表示层的主要功能:,6,3.2.4 OSI,环境中的数据传输过程,OSI,环境(,OSI environment,),3.2.4 OSI环境中的数据传输过程 OSI环境,7,OSI,环境中的数据流,OSI环境中的数据流,8,TCP/IP,参考模型各层的功能,应用层(,application layer,),传输层(,transport layer,),互连层(,internet layer,),主机,-,网络层(,host-to-network layer,),TCP/IP参考模型各层的功能 应用层(applicatio,9,TCP/IP,参考模型与,OSI,参考模型的对应关系,TCP/IP 参考模型与 OSI 参考模型的对应关系,10,主机,-,网络层,TCP/IP,参考模型的最低层,负责通过网络发送和接收,IP,数据报,;,允许主机连入网络时使用多种现成的与流行的协议,例如局域网的,Ethernet,、令牌网、分组交换网的,X.25,、帧中继、,ATM,协议等,;,当一种物理网被用作传送,IP,数据包的通道时,就可以认为是这一层的内容,;,充分体现出,TCP/IP,协议的兼容性与适应性,它也为,TCP/IP,的成功奠定了基础。,主机-网络层TCP/IP参考模型的最低层,负责通过网络发送和,11,互连层,相当,OSI,参考模型网络层无连接网络服务;,处理互连的路由选择、流控与拥塞问题;,IP,协议是一种无连接的、提供“尽力而为”服务的网络层协议。,互连层相当OSI参考模型网络层无连接网络服务;,12,传输层,主要功能是在互连网中源主机与目的主机的对等实体间建立用于会话的端,-,端连接;,传输控制协议,TCP,是一种可靠的面向连接协议;,用户数据报协议,UDP,是一种不可靠的无连接协议,。,传输层主要功能是在互连网中源主机与目的主机的对等实体间建立用,13,应用层,网络终端协议,Telnet,文件传输协议,FTP,简单邮件传输协议,SMTP,域名系统,DNS,简单网络管理协议,SNMP,超文本传输协议,HTTP,应用层网络终端协议Telnet,14,TCP/IP,协议栈,TCP/IP协议栈,15,TCP/IP,协议工作方式(直接通讯),TCP/IP协议工作方式(直接通讯),16,TCP/IP,协议工作方式(通过路由器),TCP/IP协议工作方式(通过路由器),17,封装过程,封装过程,18,TCP,的首部,TCP的首部,19,UDP,的首部,UDP的首部,20,IP,的首部,IP的首部,21,TCP,与,UDP,的区别,TCP,是面向连接的服务、,UDP,是面向无连接服务,TCP,是具有差错控制的,而,UDP,没有,TCP,的传输是有序的,,UDP,是无序的,UDP,的实时性更好,TCP与UDP的区别TCP是面向连接的服务、UDP是面向无连,22,TCP,建立连接的过程,三次握手步骤:,客户发送第一个报文段。该报文段定义了这个客户打算建立一条连接的愿望,服务器发送第二个报文段。目的:一,确认收到了第一个报文段;二,对服务器的报文段进行初始化。,客户发送第三个报文段。确认收到了第二个报文段。,TCP建立连接的过程三次握手步骤:,23,TCP,关闭连接的过程,三次握手步骤:,客户发送第一个报文段。该报文段定义了这个客户打算建立一条连接的愿望,服务器发送第二个报文段。目的:一,确认收到了第一个报文段;二,对服务器的报文段进行初始化。,客户发送第三个报文段。确认收到了第二个报文段。,TCP关闭连接的过程三次握手步骤:,24,分用过程,分用过程,25,端口号,T C P,和,U D P,采用,16 bit,的端口号来识别应用程序。,服务器一般都是通过知名端口号来识别的。任何,T C P/I P,实现所提供的服务都用知名的,1,1 0 2 3,之间的端口号。,客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂),大多数,T C P/I P,实现给临时端口分配,1 0 2 4,5 0 0 0,之间的端口号。大于,5 0 0 0,的端口号是为其他服务器预留的(,I n t e r n e t,上并不常用的服务,),。,端口号T C P和U D P采用16 bit的端口号来识别应,26,套接字(,Socket,),简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程,应用层通过传输层进行数据通信时,,TCP,和,UDP,会遇到同时为多个应用程序进程提供并发服务的问题。多个,TCP,连接或多个应用程序进程可能需要通过同一个,TCP,协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与,TCP,IP,协议交互提供了称为套接字,(Socket),的接口。,区分不同应用程序进程间的网络通信和连接,主要有,3,个参数:通信的目的,IP,地址、使用的传输层协议,(TCP,或,UDP),和使用的端口号。,Socket,原意是“插座”。通过将这,3,个参数结合起来,与一个“插座”,Socket,绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。,套接字(Socket)简单的,27,C#,下的,Socket,编程技术,1)C#,中的,Socket,编程需要引入,System.Net.Sockets,命名空间。,2,)利用,Tcp,协议编程,3,)利用,Udp,协议编程,C#下的Socket编程技术1)C#中的Socket编程需,28,利用,Tcp,协议编程,1),服务器端:,a),建立,TCP,监听器,TcpListener,对象。,TcpListener tl=new TcpListener(,端口号,);,b),启动监听器,tl.Start();,c,)用监听器获取连接进来的套接字(,Socket,),Socket s=myList.AcceptSocket();,d),通过,Socket,的,Receive,方法获取客户端发送的数据,byte result=new byte1024;,int k=s.Receive(result);,e),通过,Socket,的,Send,方法向客户端发送数据,byte st=,System.Text.Encoding.Default.GetBytes(“text”);,s.Send(st);,f),在通讯结束后,需要释放资源结束监听,s.Close();,tl.Stop();,利用Tcp协议编程1)服务器端:,29,利用,Tcp,协议编程,2),客户端:,a),建立,TCP,客户端,TcpClient,对象。,TcpClient tcpclnt=new TcpClient();,b),连接服务器,tcpclnt.Connect(IP,地址字符串,端口号,);,c,)获得客户端网络传输 流,Stream stm=tcpclnt.GetStream();,d),通过,Stream,的,Write,方法向服务器端发送的数据,e),通过,Stream,的,Read,方法读取服务器段发来的数据,f),在通讯结束后,需要释放资源,结束和服务器的连接,tcpclnt.Close();,利用Tcp协议编程2)客户端:,30,利用,UDP,协议编程,a),建立,UDP,客户端,UdpClient,对象。,UdpClient uc=new UdpClient(,端口号,);,b),连接对方远程主机,uc.Connect(IP,地址,对方远程主机的端口号),;,c),通过,uc,的,Receive,方法获取远程主机发送来的数据,IPEndPoint ip=new IPEndPoint(IPAddress.Parse(IP,字符串,),端口号,);,byte b=uc.Receive(ref ip);,e),通过,uc,的,Send,方法向远程主机发送数据,byte st=,System.Text.Encoding.Default.GetBytes(“text”);,uc.Send(st);,f),在通讯结束后,需要释放资源,uc.Close();,利用UDP协议编程 a)建立UDP客户端UdpClient对,31,
展开阅读全文