ssh协议是udp还是tcp
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除ssh协议是udp还是tcp
篇一:tcp、udp及socket的关系
1.4tcp、udp及socket的关系
《更安全的linux网络》第1章防火墙的基本概念,在本书的开始将详尽讲解与防火墙相关的tcp/ip技术。此外,对于防火墙的原理、种类、架构及其优、缺点,在本章中也都有详尽的介绍。本节为大家介绍tcp、udp及socket的关系。
1.4tcp、udp及socket的关系
在了解了信息在网络上是如何传递之后,接下来,我们要认识传输层中另一个重要的标记——port。port在传输层中是一个很重要的概念,我们之所以能够在一台主机上同时执行多个服务,都得归功于port的概念。在开始谈port之前,我们先来了解什么是socket。
socket是指一个上面有很多“洞”的东西,比如说,计算机主机板上cpu的插座,我们称其为socket478或
socket939等,而socket上面这些洞在传输层中则称为port,在os的网络系统中会有两个socket,分别为tcpsocket及udpsocket,socket上各有65536个洞,我们把它称为port0、port1、port2port65535。
我们以图1-11为例来说明port的用途,图的左边为client端、图的右边则为server端,在server端主机上,我们假设执行了web、ssh及dns这3项服务,在tcp/ip的网络规范中,每一个网络应用程序执行时都会占用一个port,如server端的webservice启动时,就会占用在tcpsocket
中的port80,简称为tcpport80,而sshservice是tcpport22、dnsservice则为udpport53,因此我们可以说,tcpport80
代表webservice程序,tcpport22代表sshservice程序,
而udpport53即代表dnsservice程序。
另外,在client部分,我们假设client端启动了browser、sshclient及dnsclient这3个网络应用程序,在tcp/ip的规范中,客户端的网络应用程序启动时,一样也会占用一个port。如图1-11所示,我们假设browser使用tcpport2099、sshclient使用tcpport2088,以及dnsclient 使用udpport5555,因此,我们也可以说,tcpport2099代
表browser程序、tcpport2088代表sshclient程序、而udpport5555则代表dnsclient程序。接下来看port的用途。假设client端主机上的browser欲与server端的
webservice来传递数据,因此,client端主机随即产生一
个数据封包送至server端。我们假设client端的ip为
10.0.1.219、server端的ip为202.43.195.52,这个封包
的内容就如图1-12所示。首先,封包内必然会记录封包的
来源及目的,在图1-12中所标记的部分即为封包的来源及
目的地址,但光是这两项信息只能代表client端及server
端在传送数据,并无法说明client端主机上哪一个应用程
序在访问,所标记的部分就说明了client端以port2099来连接server端的port80,但别忘了刚才说过的,port可以代表主机上目前正在执行的某一个应用程序。
从以上说明我们可以了解,系统在接到一个封包之后,它是如何来辨别这个数据封包是要送给哪一个应用程序的。
当webservice接到这个请求封包之后,webservice也
会回应client端主机一个封包,而这个封包的内容就如图
1-13所示,图中③所标记的位置为来源及接收端主机的ip,标记④的位置则表示来源端的webservice(port80)及响应给client端主机的浏览器(port2099)。由以上例子相信你已经了解了port的用途。
在了解port的用途之后,我们要了解65536个port是如何被分配使用的。其实,不管是tcpport或udpport的运用,在RFc1700文档中都有完整的规范,我们可以从iana
的网站(/assignments/port-numbers)
中取得port的使用列表,或是从linux系统中的
/etc/services文件中取得这些信息,笔者将其整理如下。
公认的port:0~1023。
注册的port:1024~49151。
动态的port:49152~65535。
1.公认的port
会使用tcpport80,因为它是一个“规范”、是大家都知道的事,所以client端在webserver上访问webservice时,client端就会预设将封包送至webserver的tcpport80。也因为有规范的存在,所以我们要访问远程的某个服务时,就无须特别打电话去询问:“你们家的webservice是使用在哪个port中”,换句话说,每个service都会有一个固定的port,而这些port我们就称为公认的port,其范围为0~1023。
2.注册的port
由于在同一时间内,相同的port只能给一个程序使用,因此,程序设计师在编写网络应用程序时,就得特别注意自己开发的应用程序是使用哪一个port,而这个port是否已
经被其他的应用程序占用了,但问题是程序设计师如何得知该port已被其他应用程序占用了呢?所幸的是iana组织定了一个规范,为了避免不必要的port冲突,在指定port之前,凡是需要用到固定port的网络应用程序可先在iana的网站上选用一个没有其他应用程序在使用的port,并且可以