第3章 基于TCP-IP协议的网络编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第3章 基于TCP-IP协议的网络编程.ppt》由会员分享,可在线阅读,更多相关《第3章 基于TCP-IP协议的网络编程.ppt(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 基于TCP/IP协议的网络编程 建立建立Winsock规范的主要目的是提供规范的主要目的是提供一个与协议无关的传送接口。一个与协议无关的传送接口。本章介绍基于本章介绍基于TCP/IP协议的协议的Winsock网络编程技术,主要介绍网络编程技术,主要介绍TCP/IP协议的原协议的原理,理,Winsock基本概念与编程接口,基本概念与编程接口,Winsock API接口函数、数据结构及编程接口函数、数据结构及编程方法等。方法等。3.1 协议概述 TCP/IP是发展至今最成功的通信协是发展至今最成功的通信协议之一。它起源于议之一。它起源于20世纪世纪60年代末美国年代末美国政府资助的一个分组
2、交换网络研究项目政府资助的一个分组交换网络研究项目ARPRANET,其目的是允许分布在各地,其目的是允许分布在各地的装着完全不同的操作系统的计算机互的装着完全不同的操作系统的计算机互相通信。相通信。TCP/IP以其开放性的特点,成以其开放性的特点,成为了为了INTERNET的基础。的基础。3.1 协议概述 TCP/IP协议是一个四层协议:协议是一个四层协议:vv链路层:链路层:ARP协议和协议和RARP协议协议vv网络层:网络层:IP协议、协议、ICMP协议、协议、IGMP协协议议vv传输层:传输层:TCP协议、协议、UDP协议协议vv应用层:应用层:Telnet、HTTP、SMTP、FTP等
3、等3.1.1 IP协议 IP层作为通信子网的最高层,提供层作为通信子网的最高层,提供无连接的数据报传输机制。无连接的数据报传输机制。IPIP协议主要解决的问题:路由选择协议主要解决的问题:路由选择协议主要解决的问题:路由选择协议主要解决的问题:路由选择 IPIP层通过层通过层通过层通过IPIP数据报数据报数据报数据报和和和和IPIP地址地址地址地址屏蔽各种网络的屏蔽各种网络的屏蔽各种网络的屏蔽各种网络的低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上层协议提供统一的格式层协议提供统一的格式层
4、协议提供统一的格式层协议提供统一的格式l lIPIP数据报对物理帧的统一,数据报对物理帧的统一,数据报对物理帧的统一,数据报对物理帧的统一,IPIP数据报格式见数据报格式见数据报格式见数据报格式见6060页页页页l lIPIP地址对物理地址的统一地址对物理地址的统一地址对物理地址的统一地址对物理地址的统一3.1.2 传输层协议vvTCP/IP协议簇中在传输层有两个并列的协协议簇中在传输层有两个并列的协议:议:TCP和和UDP。TCPTCP提供面向连接的流传输;提供面向连接的流传输;提供面向连接的流传输;提供面向连接的流传输;UDPUDP提供无连接提供无连接提供无连接提供无连接数据报传输数据报传
5、输数据报传输数据报传输 TCPTCP提供高可靠性服务;提供高可靠性服务;提供高可靠性服务;提供高可靠性服务;UDPUDP提供高效率服务提供高效率服务提供高效率服务提供高效率服务 TCPTCP用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;UDPUDP用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可靠性由应用程序提供。具体选择取决于应用环靠性由应用程序提供。具体选择取决于应用环靠性由应用程序提供。具体选择取决于应用
6、环靠性由应用程序提供。具体选择取决于应用环境和需求。境和需求。境和需求。境和需求。(1)TCP协议 TCP协议是建立在协议是建立在IP协议之上的,协议之上的,IP不提供任何可靠性机制,所以不提供任何可靠性机制,所以TCP可靠性可靠性完全由自己实现。完全由自己实现。(1 1)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接(2 2)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收端确认,未确认的
7、报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,发送方需要进行重传。发送方需要进行重传。发送方需要进行重传。发送方需要进行重传。TCPTCP采用最基本的可采用最基本的可采用最基本的可采用最基本的可靠性技术是:确认和重传。靠性技术是:确认和重传。靠性技术是:确认和重传。靠性技术是:确认和重传。(2)UDP协议 UDPUDP协议几乎直接建立在协议几乎直接建立在协议几乎直接建立在协议几乎直接建立在IPIP协议之上,相协议之上,相协议之上,相协议之上,相对于对于对于对于IPIP协议,它唯一增加的能力是提供协议端协议
8、,它唯一增加的能力是提供协议端协议,它唯一增加的能力是提供协议端协议,它唯一增加的能力是提供协议端口(口(口(口(PortPort),以保证进程通信。),以保证进程通信。),以保证进程通信。),以保证进程通信。发送数据时,发送数据时,发送数据时,发送数据时,UDPUDP软件构造一个数据报,然后将它软件构造一个数据报,然后将它软件构造一个数据报,然后将它软件构造一个数据报,然后将它交给交给交给交给IPIP软件,便完成所有的工作软件,便完成所有的工作软件,便完成所有的工作软件,便完成所有的工作 接收数据时,接收数据时,接收数据时,接收数据时,UDPUDP软件先要判断所收到数据报的目软件先要判断所收
9、到数据报的目软件先要判断所收到数据报的目软件先要判断所收到数据报的目的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,并向发送方发送并向发送方发送并向发送方发送并向发送方发送“端口不可到达端口不可到达端口不可到达端口不可到达”ICMPICMP报文报文报文报文3.2 地址 使用使用使用使用TCP/I
10、PTCP/IP协议的互联网使用了协议的互联网使用了协议的互联网使用了协议的互联网使用了3 3个等级的个等级的个等级的个等级的地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:物理地址(物理地址(物理地址(物理地址(MACMAC地址)地址)地址)地址)网络接口层网络接口层网络接口层网络接口层 逻辑地址(逻辑地址(逻辑地址(逻辑地址(IPIP地址)地址)地址)地址)网络层网络层网络层网络层 端口地址(端口地址(端口地址(端口地址(PORTPORT地址)地址)地址)地址)传输层传输层传输层传输层 IPIP地址屏蔽不同网络的物理地址
11、差异,为上地址屏蔽不同网络的物理地址差异,为上地址屏蔽不同网络的物理地址差异,为上地址屏蔽不同网络的物理地址差异,为上层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。3.2.1 物理地址与IP地址vv物理地址物理地址物理地址物理地址:包含在数据链路层使用的帧中,是最:包含在数据链路层使用的帧中,是最:包含在数据链路层使用的帧中
12、,是最:包含在数据链路层使用的帧中,是最低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,取决于网络种类。取决于网络种类。取决于网络种类。取决于网络种类。vvIPIP地址地址地址地址:IPIP地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一个连接。个连接。个连接。个连接。3232位位位位IPIP地址被分割为两个部分:地址被分割为两个部分:地址被分割为两个部分:地址被分割为两个部分:前缀(网络标识):
13、确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络 后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机vv注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络时,该设备的物理地址保持不变,但要相应地改时,该设备的物理地址保持不变,但要相应地改时,该设备的物理地址保持
14、不变,但要相应地改时,该设备的物理地址保持不变,但要相应地改变它的变它的变它的变它的IPIP地址。地址。地址。地址。物理地址与IP地址的映射地址解析vv地址解析:就是将计算机的地址解析:就是将计算机的IP地址翻译地址翻译成物理地址,地址解析只能在本地网中成物理地址,地址解析只能在本地网中进行。进行。ARPARP协议:从协议:从协议:从协议:从IPIP地址到物理地址的映射地址到物理地址的映射地址到物理地址的映射地址到物理地址的映射 RAPRRAPR协议:从物理地址到协议:从物理地址到协议:从物理地址到协议:从物理地址到IPIP地址的映射地址的映射地址的映射地址的映射3.2.2 端口地址 若不同主
15、机上的两个进程若不同主机上的两个进程A和和B进行进行通信,我们假定进程通信,我们假定进程A想要向进程想要向进程B发送发送数据,那么进程数据,那么进程A必须知道必须知道B进程的地址,进程的地址,这个地址包括:这个地址包括:网络地址(网络地址(网络地址(网络地址(IPIP地址)地址)地址)地址)端口号(端口号(端口号(端口号(Port NumberPort Number)每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由TCPTCP或或或或UDPUDP送来的数据送来的数据送
16、来的数据送来的数据IPIP地址让地址让地址让地址让IPIP可将数据送至正确的主机可将数据送至正确的主机可将数据送至正确的主机可将数据送至正确的主机TCPTCP或或或或UDPUDP协议协议协议协议应用程序应用程序应用程序应用程序3 3应用程序应用程序应用程序应用程序2 2应用程序应用程序应用程序应用程序1 1应用程序应用程序应用程序应用程序n nPort 1Port nPort2Port3你的上网计算机Web网站POP3服务器(收信)SMTP服务器(发信)Windows计算机UnixLinux主机Port80Port110Port25Port139Port23TCP/IP协议(Protocol)
17、Internet世界TCP/IP协议(Protocol)Windows系统Port80Port110Port25Port139Port23Port?IEOutlook Express资源管理器Telnet各种网络软件连接远程的各种服务器、主机或一般个人电脑 从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出InternetInternet的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打开一个(或数个)门(端口)之后才能与开一个(或数个)门
18、(端口)之后才能与开一个(或数个)门(端口)之后才能与开一个(或数个)门(端口)之后才能与InternetInternet世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。定义:定义:端口用于标识通信主机中不同的端口用于标识通信主机中不同的通信进程,作为通信进程,作为UDPUDP和和TCPTCP数据报头的一数据报头的一部分传输。部分传输。各个通信进程通过系统调用与某些端口建各个通信进程通过系
19、统调用与某些端口建各个通信进程通过系统调用与某些端口建各个通信进程通过系统调用与某些端口建立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相应地被与其绑定的进程接收。应地被与其绑定的进程接收。应地被与其绑定的进程接收。应地被与其绑定的进程接收。vv端口号(端口号(Port Number):):每个端口都是每个端口都是用端口号来标识的。在用端口号来标识的。在TCP和和UDP协议协议中,端口号是一个中,端口号是一个16位的整数值,即可位的整数值,即可以提供以提供65536(216)个端口。)个端口
20、。注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例如如如如TCPTCP和和和和UDPUDP协议的端口号相互独立的,若协议的端口号相互独立的,若协议的端口号相互独立的,若协议的端口号相互独立的,若TCPTCP有一个有一个有一个有一个10011001号端口,同样号端口,同样号端口,同样号端口,同样UDPUDP也可以有一也可以有一也可以有一也可以有
21、一个个个个10011001号端口,它们并不冲突。号端口,它们并不冲突。号端口,它们并不冲突。号端口,它们并不冲突。vv端口号的分配问题:端口号的分配问题:TCP/IP将全部端口号将全部端口号分为保留端口号和自由端口号两部分。分为保留端口号和自由端口号两部分。保留端口号(保留端口号(保留端口号(保留端口号(1 110231023):以静态方式进行分:以静态方式进行分:以静态方式进行分:以静态方式进行分配,由配,由配,由配,由IANAIANA进行管理。进行管理。进行管理。进行管理。TCP TCP和和和和UDPUDP协议都规定,把协议都规定,把协议都规定,把协议都规定,把1 1255255之间之间之
22、间之间的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应用层协议(如下图);而用层协议(如下图);而用层协议(如下图);而用层协议(如下图);而25625610231023之间的端之间的端之间的端之间的端口通常由口通常由口通常由口通常由UNIXUNIX系统占用,提供一些特定的系统占用,提供一些特定的系统占用,提供一些特定的系统占用,提供一些特定的UNIXUNIX服务。服务。服务。服务。vv TCPTCP保留端口号举例保留端口号举例保留端口号举例保留端口号举例:端口端口2323端口端口说明说明端
23、口端口2121FTPFTP文件下载上传服务文件下载上传服务TelnetTelnet主机连接服务主机连接服务端口端口2525SMTPSMTP发信服务发信服务端口端口8080HTTPHTTP网页服务网页服务端口端口110110POP3POP3收信服务收信服务端口端口139139NetBIOSNetBIOS网上邻居、资源管理器连接服务网上邻居、资源管理器连接服务自由端口(自由端口(自由端口(自由端口(102410246553565535):):):):占全部端口的绝占全部端口的绝占全部端口的绝占全部端口的绝大部分,以动态方式进行分配(即应用程序大部分,以动态方式进行分配(即应用程序大部分,以动态方式
24、进行分配(即应用程序大部分,以动态方式进行分配(即应用程序根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进行管理)行管理)行管理)行管理)这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态分配的保留端口号或双方协商好的端口号与分配的保留端口号或双方协
25、商好的端口号与分配的保留端口号或双方协商好的端口号与分配的保留端口号或双方协商好的端口号与远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。3.3 客户机/服务器模式 在在TCP/IP网络应用中,通信的两个进网络应用中,通信的两个进程间相互作用的主要模式是客户机程间相互作用的主要模式是客户机/服务器服务器模式模式(Client/Server Model):服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程的请求以便为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 基于TCP-IP协议的网络编程 基于 TCP IP 协议 网络 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内