- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 传输层的通信与端口 4.1.2 端口的概念与功能 为了识别传输层之上不同的网络通信程序(进程),传输层引入了端口的概念。在一台主机上,要进行网络通信的进程,首先要向系统提出动态申请,由系统(操作系统内核)返回一个本地惟一的端口号,进程再通过系统调用把自己和这个特定的端口联系在一起,这个过程叫绑定(binding)。这样每个要通信的进程都与一个端口号对应,传输层就可以使用其报文头中的端口号,把收到的数据送到不同的应用程序。 在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有64K个。由于UDP也是传输层一个独立于TCP的协议,因此使用UDP协议时也有64K个不同的端口。 第*页 4.1 传输层的通信与端口 4.1.3 常用的端口 如果按上面所论述的,每个要通信的进程在通信之前,都要先通过系统调用动态的申请一个端口号。这样就有一个问题,相距遥远的两个进程,它们之间进行通信时,怎么知道对方的端口号呢?如果不知道对方进程的端口号,通信也就无法进行。 其实我们知道,两个进程在进行通信时,总有一方要首先提出通信的请求,而另一方一直处于等待状态,准备来响应其它主机对它提出的请求。提出请求的一方就是客户端,响应客户的请求的一方就是服务器,这是典型的客户-服务器模式。客户端在提出请求时一定先要知道对方的端口号,为此TCP/IP协议在进行设计时,把服务器上守候进程的端口号进行静态分配。特定的服务对应一个特定的端口号,这些端口号是事先已经分配好的,是众所周知的(well-known port)的端口号。顾名思义,客户要使用的由服务器进程提供的服务,客户已经知道它们的端口号。例如,FTP服务器的TCP端口号都是21,Telnet服务器的TCP端口号都是23,TFTP(简单文件传送协议)服务器的UDP端口号是69。众所周知的端口号介于1~255之间,这些端口号由Internet号分配机构IANA(Internet Assigned Numbers Authority)来管理。一些常用服务的TCP和UDP的众所周知端口号见表4-1和表4-2。 第*页 4.1 传输层的通信与端口 4.1.3 常用的端口 TCP端口号 关键词 描 述 20 FTP-DATA 文件传输协议(数据连接) 21 FTP 文件传输协议(控制连接) 23 Telnet 远程登录协议 25 SMTP 简单邮件传输协议 53 DOMAIN 域名服务器 80 HTTP 超文本传输协议 110 POP3 邮局协议3 119 NNTP 新闻传输协议 第*页 4.1 传输层的通信与端口 4.1.3 常用的端口 UDP端口号 关键词 描 述 53 DOMAIN 域名服务器 67 BOOTPS 引导协议服务器 68 BOOTPC 引导协议客户机 69 TFTP 简单文件传输协议 161 SNMP 简单网络管理协议 162 SNMP-TRAP 简单网络管理协议陷阱 第*页 4.1 传输层的通信与端口 4.1.3 常用的端口 256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务。现在IANA管理1~1023之间所有的端口号。任何TCP/IP实现所提供的服务都使用1~1023之间的端口号。 客户端口号又称作临时端口号(即存在时间很短暂)。这是因为客户端口号是在客户程序要进行通信之前,动态的从系统申请的一个端口号。然后以该端口号为源端口,使用某个众所周知的端口号为目标端口号(如在TCP协议上要进行文件传输时使用21)进行客户端到服务器端的通信,通信完成后,客户端的端口号就被释放掉,而服务器只要其服务在运行,其相应端口上的服务就存在。另外,大家可能已经想到了,当服务器要向客户端传输数据时,服务器怎么知道客户端临时分配的端口号呢?由于服务器可以从客户的请求报文中获得其端口号,因此也可以正常通信。大多数TCP/IP实现时,给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其它服务预留的(Internet上并不常用的服务)。 综上所述,我们知道两台要通信的主机,每一端要使用一个二元地址(IP地址,端口号),才可以完成它们之间的通信。端到端之间的一条通信就可能表示为(源主机IP地址,源端口号;目标主机IP地址,目标端口号),IP地址用来标识互联网中的两台通信的特定主机,端口号用来标识特定主机上通信的进程。在进行网络程序设计时这是最基本的知识。 第*页 4.2 用户数据报协议(UDP) 4.2.1 UDP数据报 UDP(User Data Protocol)是网络层之上常用的一个非常简单的协议,它主要是在IP层之上提供了协议端口功能,以标识源主机和
文档评论(0)