网络协议与套接字.ppt
《网络协议与套接字.ppt》由会员分享,可在线阅读,更多相关《网络协议与套接字.ppt(46页珍藏版)》请在三一办公上搜索。
1、第2章 网络协议与套接字,2.1 网络协议简介2.2 IP地址转换与域名解析2.3 套接字2.4 网卡信息检测与网络流量检测2.5 字符编码与解码,2.1 网络协议简介,协议协议能确保网络上的计算机能相互识别对方的信息。计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送的信息格式和含义,在什么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。TCP/IP是一组协议的总称(Transmission Control Protocol/Internet Protocol)网际协议(IP)对底层硬件设备进行封装,使之能适应各种网络硬件,确保任何一个网络只要
2、可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入 Internet。,2.1 网络协议简介(续),传输控制协议(TCP)IP只是保证计算机之间可以发送和接收资料,但IP协议不能解决资料分组在传输过程中可能出现的问题。因此,计算机还需要安装TCP协议来提供可靠的并且无差错的通信服务。TCP被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP会让它们建立一个连接、发送和接收资料以及终止连接。TCP能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。TCP协议具有自动调
3、整超时值的功能,能很好地适应 Internet 上各种变化,确保传输数值的正确。,2.1 网络协议简介(续),TCP/IP模型该模型将Internet分为五个层次,从高到低依次为:应用层、传输层、互联网层、网络接口层、物理层,2.1 网络协议简介(续),(1)应用层(第5层)定义了应用程序使用互联网的规范。如简单邮件传输(SMTP)文件传输协议(FTP)网络远程访问协议(Telnet)等。(2)传输层(第4层)提供节点间的数据传送服务,为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。包括:传输控制协议(TCP)用户数据报协议(UDP),2.1 网络协议简介(续),(3)互连网层(第
4、3层)定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标的信息包转发机制。(4)网络接口层(第2层)定义如何使用网络来传送数据。(5)物理层(第1层)对应于网络的基本硬件,即我们可以看得见的硬设备,如PC机、互连网服务器、网络设备等。该层对硬设备的电气特性作一个规范,使各设备能互相连接并兼容使用。,2.1 网络协议简介(续),IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符。一个IP地址主要由两部分组成:网络地址和主机地址。网络地址由因特网权力机构分配,主机地址由各个网络的管理员统一分配。IP地址编制方案有两种:IPV4和IPV
5、6IPV4:二进制表示共32位(4个字节)IPV6:二进制表示共128位(16个字节)在IPV4编制方案中,一般使用点分十进制表示法表示IP地址。例如:,2.1 网络协议简介(续),端口:IP地址仅仅能够具体标识到某台主机,而端口则表示与计算机上的哪个进程通信。根据IP地址找到是与哪台机器通信,根据端口号找到是与该机器的哪个进程通信。(一个进程可能会使用多个端口)端口地址的范围是十进制的065535,2.2 IP地址转换与域名解析,2.2.1 IPAddress类 提供了对IP地址的转换、处理 2.2.2 IPEndPoint类 IP地址和端口的组合 2.2.3 IPHostEntry类 将域
6、名系统与一组匹配的IP地址关联在一起。2.2.4 Dns类 提供域名解析及其与IP地址之间的相互转换功能,2.2.1 IPAddress类,IPAddress类(System.Net命名空间下):一般使用IPAddress的Parse方法将IP地址字符串转换为IPAddress的实例。例如:IPAddress ip=IPAddress.Parse(“192.168.1.1”);属性Any 提供一个IPv4地址,指示服务器应侦听所有网络接口上的客户端活动。(等效于)Broadcast 提供IPv4广播地址(等效于)Loopback 表示IPv4回送地址(等效于)None 表示Socket不应侦听
7、客户端活动(不使用任何网络接口)。IPv6Any 提供可用的IPv6地址IPv6Loopback 表示IPv6回送地址IPv6None 提供不使用任何网络接口。,2.2.2 IPEndPoint类,IPEndPoint类包含了连接到主机上的服务所需的IP地址和端口信息。IPEndPoint类常用的构造函数为:public IPEndPoint(IPAddress,int);其中第一个参数指定IP地址,第二个参数指定端口号。,2.2.3 IPHostEntry类,IPHostEntry类的实例对象中包含了与主机相关的信息。常用属性有:(1)AddressList属性:获取或设置与主机关联的IP地
8、址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;(2)HostName属性:包含了服务器的主机名。在Dns类中,有一个专门获取IPHostEntry对象的方法。例如:IPAddress ips=Dns.GetHostEntry(“http:/).AddressList;,2.2.4 Dns类,DNS(Domain Name System,域名系统)提供了一系列静态的方法,用于获取提供本地或远程域名等功能,常用方法有:(1)GetHostAddresses方法 获取指定主机的IP地址,返回一个IPAddress类型的数组。格式为:public static IPAddr
9、ess GetHostAddresses(string hostNameOrAddress);例如:IPAddress ips=);注意:如果hostNameOrAddress是IP地址,则不查询DNS服务器,直接返回此地址。,2.2.4 Dns类(续),(2)GetHostEntry方法 在DNS服务器中查询与某个主机名或IP地址关联的IP地址。当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。例如:IPHostEntry host=Dns.GetHostEntry();listBox1.Items.AddRange(host.AddressList);/本机所有IPv4地址li
10、stBox1.Items.Add(host.HostName);/本机主机名(3)GetHostName方法获取本机主机名。例如:string hostname=Dns.GetHostName();,2.2.4 Dns类(续),【例 2-1】IPAddress类、Dns类、IPHostEntry类和IPEndPoint类的使用方法。,2.3 套接字,套接字是支持TCP/IP协议的网络通信的基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字通常和同一个域中的套接字交换数据,各种进程使用这个相同的域互相之间用Internet协议进行通
11、信。用C#编写符合标准的网络应用程序时,应该尽可能使用TcpListener类、TcpClient类、UDPClient类或其它对应类。而不是直接用Socket类。用C#编写非标准的网络应用程序时,只能使用Socket类。,2.3.1 同步套接字与异步套接字,套接字的类型有:流式套接字:提供了面向连接的、可靠的、数据无错并且无重复的数据发送服务,而且接收数据的顺序和发送数据的顺序是相同的。数据报套接字:提供了面向无连接的服务,它以独立的数据包形式发送数据(数据包长度不能大于32KB),不提供正确性检查,也不保证各数据包的发送顺序和接收顺序相同,因此,可能出现数据的重发、丢失等现象。原始套接字:
12、用于直接访问协议的较低层。常用于检验新的协议实现或访问现有服务中配置的新设备,一般不提倡直接使用原始套接字。,2.3.1 同步套接字与异步套接字(续),使用套接字处理数据有两种基本模式:同步套接字:在通过Socket进行连接、接收、发送操作时,客户机或服务器在接受对方响应前会处于阻塞状态,即一直等到接受对方请求后才继续执行下面的语句。同步套接字适用于对数据处理用时不多的场合。异步套接字:通过Socket进行连接、接收或发送操作时,客户端或服务器不会处于阻塞方式,而是利用callback机制进行连接、接收以及发送处理,这样就可以在调用发送或接收的方法后直接返回,并继续执行下面的语句。异步套接字适
13、用于进行大量数据处理或者用时较多的场合。,2.3.2 Socket类,Socket类包含在命名空间中。一个Socket实例包含了一个本地或者一个远程端点的套接字信息。使用Socket类编程,由于很多细节都需要自己考虑,相对来说复杂一些,易出错。一般对套接字编程比较熟悉的人,或者使用非标准协议(自定义的新协议)进行编程的时候,才使用Socket类。Socket类的构造函数为:public Socket(AddressFamily addressFamily,/网络类型 SocketType socketType,/套接字类型 ProtocolType protocolType);/使用的协议,2
14、.3.2 Socket类(续),Socket构造函数的三个参数中,对于网络上的IP通信来说,AddressFamily总是使用AddressFamily.InterNetwork枚举值。而SocketType参数则与ProtocolType参数配合使用,不允许其他的匹配形式,也不允许混淆匹配。下表列出了可用于IP通信的组合。,2.3.3 面向连接的套接字编程,2.3.3 面向连接的套接字编程(续),服务器端部分代码举例:IPHostEntry local=Dns.GetHostByName(Dns.GetHostName();IPEndPoint iep=new IPEndPoint(loca
15、l.AddressList0,1180);Socket localSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);localSocket.Bind(iep);locatSocket.Listen(10);Socket clientSocket=localSocket.Accept();,2.3.3 面向连接的套接字编程(续),客户端部分代码举例:IPAddress remoteHost=IPAddress.Parse(192.168.0.1);PEndPoint iep=new I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 协议 套接

链接地址:https://www.31ppt.com/p-6374065.html