常用端口总结
计算机网络中,端口是TCP/IP协议的一部分,用于标识运行在同一台计算机上的不同服务。端口号是一个16位的数字,范围从0到65535。通常,0到1023的端口被称为“熟知端口”或“系统端口”,它们被保留给一些标准服务使用;1024到49151的端口被称为“注册端口”,可以由IANA(Internet Assigned Numbers Authority)分配给特定的应用程序或服务;而49152到65535的端口被称为“动态或私有端口”,供临时使用。
下面是一些常见的网络服务及其默认端口号:
常用熟知端口(0-1023)
- 20 - FTP 数据传输端口
- 21 - FTP 控制连接端口
- 22 - SSH (Secure Shell) 安全登录端口
- 23 - Telnet 远程登录端口
- 25 - SMTP (Simple Mail Transfer Protocol) 邮件发送端口
- 53 - DNS (Domain Name System) 域名解析端口
- 69 - TFTP (Trivial File Transfer Protocol) 简单文件传输端口
- 80 - HTTP (Hypertext Transfer Protocol) 超文本传输协议端口
- 110 - POP3 (Post Office Protocol version 3) 邮件接收端口
- 119 - NNTP (Network News Transfer Protocol) 网络新闻组传输协议端口
- 123 - NTP (Network Time Protocol) 网络时间同步协议端口
- 137-138 - NetBIOS 名称服务和会话端口
- 143 - IMAP (Internet Message Access Protocol) 邮件接收端口
- 161 - SNMP (Simple Network Management Protocol) 网络管理协议端口
- 194 - IRC (Internet Relay Chat) 互联网中继聊天端口
- 443 - HTTPS (HTTP Secure) 安全超文本传输协议端口
- 465 - SMTPS (SMTP over SSL) 安全邮件发送端口
- 587 - SMTP 提交端口,用于邮件服务器之间的邮件传输
- 993 - IMAPS (IMAP over SSL) 安全邮件接收端口
- 995 - POP3S (POP3 over SSL) 安全邮件接收端口
注册端口(1024-49151)
这部分端口由IANA分配给特定应用程序和服务。例如:
- 1080 - SOCKS 代理服务端口
- 2049 - NFS (Network File System) 网络文件系统端口
- 3306 - MySQL 数据库服务端口
- 3389 - RDP (Remote Desktop Protocol) 远程桌面协议端口
- 5004 - PostgreSQL 数据库服务端口
- 5432 - PostgreSQL 数据库服务端口
- 6379 - Redis 数据库服务端口
- 8080 - 常用于HTTP代理服务的端口
- 8443 - 常用于HTTPS代理服务的端口
以上仅列举了部分常见端口,实际上还有很多其他服务使用的端口。在配置网络服务时,了解并正确设置端口非常重要,以确保服务的正常运行和网络安全。
第五章
TCP协议是一种网络协议,其特点是( )。
A. 可靠的,面向连接的
网络中唯一标识一个进程需要用一个( B. 二元组(主机IP地址,服务器端口号))。
正确,网络中唯一标识一个进程通常使用一个二元组,即(主机IP地址,端口号)。这个二元组提供了两方面的信息:
-
主机IP地址:标识网络中的具体主机。IP地址是分配给网络上每台设备的唯一地址,使得数据可以在互联网上定位并发送到正确的设备。
-
端口号:标识运行在主机上的具体进程或服务。端口号是一个16位的数字,范围从0到65535。其中,0到1023是众所周知的端口,用于常见的网络服务;1024到49151是注册端口,用于特定的应用程序和服务;49152到65535是动态或私有端口,用于临时分配给客户端应用程序。
通过组合IP地址和端口号,网络可以精确地定位到一个特定的主机上的一个特定的进程,这对于网络通信至关重要。例如,当你访问一个网站时,你的浏览器会与网站服务器的HTTP服务(默认端口80)或HTTPS服务(默认端口443)建立连接,这里的“主机IP地址”就是网站服务器的IP地址,“端口号”就是80或443。
**在TCP (Transmission Control Protocol) 协议中,确实采用 端口号 来区分不同的应用进程。**当一个TCP数据包到达目标主机时,TCP层会根据数据包头部的目的端口号信息,将数据转发给相应的应用进程。每个应用进程监听特定的端口号,这样就可以实现多个应用进程同时在一个主机上接收和发送数据。
因此,选项A “端口号” 是正确答案。端口号是一种机制,它允许操作系统识别和分发网络数据到正确的应用程序或服务。
主机A和主机B之间建立了一个TCP连接,主机A向主机B发送了两个连续的TCP报文段,分别包含300B和500B的有效载荷,第一个报文段的序列号为200,主机B正确接收两个报文段后,发送给主机A的确认序列号是( )。
在TCP协议中,序列号用于跟踪从一个系统发送到另一个系统的字节流。每当发送方(这里是主机A)发送数据时,它会附带一个序列号,这个序列号通常与发送的第一个字节的序列号相对应。接收方(这里是主机B)接收到数据后,会返回一个确认(ACK),其中包含的确认序列号是指接收方期望接收的下一个字节的序列号。
在本例中,主机A发送的第一个报文段含有300B的有效载荷,并且序列号为200。这意味着第一个报文段中的最后一个字节的序列号是200 + 300 - 1 = 499(因为序列号是从0开始的)。接下来,主机A发送第二个报文段,含有500B的有效载荷。由于没有提到第二个报文段的序列号,我们假设它是紧接着前一个报文段结束的序列号之后的,即500。
所以,第二个报文段的第一个字节的序列号是500,而最后一个字节的序列号是500 + 500 - 1 = 999。
主机B正确接收了这两个报文段后,它会发送给主机A一个确认,其确认序列号将是它期望接收的下一个字节的序列号。既然主机B已经收到了序列号直到999的数据,它期望的下一个字节的序列号是1000。
因此,主机B发送给主机A的确认序列号是1000。
一个TCP连接总是以1KB的最大段长发送TCP段,发送方有足够多数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT时间内的TCP段的传输都是成功的,那么当第4个RTT时间内发送的所有TCP段都得到肯定确认时,拥塞窗口大小是( )。
在TCP的拥塞控制算法中,当发生超时时,拥塞窗口(cwnd)会被设置为慢启动阈值(ssthresh)的一半,然后重新进入慢启动阶段。在慢启动阶段,每收到一个ACK,cwnd就增加一个最大段长度(MSS),而在拥塞避免阶段,每经过一个往返时间(RTT),cwnd按线性增长。
根据题目描述,当拥塞窗口为16KB时发生了超时,超时后cwnd将被重置为MSS,也就是1KB,同时ssthresh将被设置为当前cwnd的一半,即8KB。
接下来的4个RTT内,如果所有TCP段的传输都是成功的,则拥塞窗口的变化将遵循以下规则:
- 第1个RTT结束后,cwnd翻倍,因为处于慢启动阶段。
- 当cwnd达到ssthresh时,它将进入拥塞避免阶段,在此阶段cwnd每次按线性增长,每次RTT增加1MSS。
让我们详细计算一下4个RTT后cwnd的大小。
第1个RTT:
- 初始cwnd = 1KB
- 结束后cwnd = 1 * 2 = 2KB (慢启动)
第2个RTT:
- 开始时cwnd = 2KB
- 结束后cwnd = 2 * 2 = 4KB (慢启动)
第3个RTT:
- 开始时cwnd = 4KB
- 结束后cwnd = 4 * 2 = 8KB (慢启动)
- 这里cwnd达到了ssthresh,将进入拥塞避免阶段
第4个RTT:
- 开始时cwnd = 8KB
- 结束后cwnd = 8KB + 1KB = 9KB (拥塞避免)
现在让我们通过计算来验证这些数值。计算结果显示:
- 在第1个RTT结束时,cwnd为2KB。
- 在第2个RTT结束时,cwnd为4KB。
- 在第3个RTT结束时,cwnd为8KB。
- 在第4个RTT结束时,cwnd为9KB。
因此,当第4个RTT时间内发送的所有TCP段都得到肯定确认时,拥塞窗口大小是9KB。
综合测试:
划分子网数量
你的理解和计算是正确的。
当我们使用子网掩码 255.255.255.224
对一个 192.168.9.0/24
的C类地址空间进行子网划分时,实际上我们是在原有的 /24
前缀的基础上增加了3位作为子网位。原本的 /24
意味着前24位是网络位,而剩下的8位是主机位。
子网掩码 255.255.255.224
可以转换成二进制表示为 11111111.11111111.11111111.11100000
,这表示我们从原本的主机位中借用了3位(111
)作为子网位。因此,我们现在有3位用于子网划分,和5位剩余的主机位。
- 子网数量是由借用的子网位决定的,公式为
2^n
,其中n
是子网位的数量。所以,借用3位子网位可以划分出2^3 = 8
个子网。 - 每个子网内的可分配地址数量由剩余的主机位决定,公式为
2^m - 2
,其中m
是主机位的数量,减去2是因为需要保留一个地址作为网络地址,另一个作为广播地址。所以,对于5位主机位,每个子网有2^5 - 2 = 32 - 2 = 30
个可分配地址。
因此,选项 B (8
个子网,每个子网 30
个可分配地址) 是正确的。你的选择和解析都是准确的。
:ICMP差错报告报文共有5种,分别如下:
1️⃣终点不可达:终点不可达分为:网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为0至5。当出现以上六种情况时就向源站发送终点不可达报文。
2️⃣端口不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。
3️⃣源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。
4️⃣时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。
5️⃣参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。
改变路由(重定向)路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
特殊IP地址
特殊IP地址用途解析如下:
网络号全0和主机号全0
-
含义:这种地址形式(例如
0.0.0.0
)通常用于表示“本网络”,在网络配置或初始化过程中,当设备尚未确定其网络位置时,可能会暂时使用此类地址。在某些情况下,如DHCP协议中,客户端可能使用0.0.0.0
来标识它不知道自己的网络位置。 -
作为源地址:可以使用。
-
作为目的地址:不可以使用,因为它不指向特定网络。
网络号非0且主机号全0
-
含义:这种地址形式(例如
192.168.1.0
)用来标识一个具体的网络,而不是网络中的某个具体主机。它通常用作网络的默认网关或作为网络的广播地址的基础。 -
作为源地址:不可以使用,因为这不是一个有效的主机地址。
-
作为目的地址:可以使用,但通常用于特定的网络管理或路由目的,比如向整个网络发送信息。
网络号全1和主机号全1
-
含义:这种地址形式(例如
255.255.255.255
)是一个特殊的广播地址,用于在本地网络上向所有主机发送信息。这个地址不会被任何路由器转发到其他网络。 -
作为源地址:不可以使用。
-
作为目的地址:可以使用,用于本地网络上的广播。
网络号非全1且主机号全1
-
含义:这种地址形式(例如
192.168.1.255
)用于向特定网络中的所有主机发送信息,即子网广播地址。 -
作为源地址:不可以使用。
-
作为目的地址:可以使用,用于向特定子网内的所有主机广播信息。
127...*
-
含义:这是一个特殊的保留地址段,用于本地环回测试。数据包发送至127...*地址时,将不会离开计算机本身,而是直接返回给发送者,用于测试网络接口是否正常工作。
-
作为源地址:可以使用。
-
作为目的地址:可以使用,用于本地环回测试。
这些特殊IP地址的使用有助于网络管理和调试,确保网络通信的正确性和效率。
IP路由器功能包括:
对收到的IP分组头进行差错校验,若发现错误则将其丢弃;
监测到拥塞时,根据丢弃策略合理丢弃IP分组;
运行路由协议,构建路由表。
你的解析完全正确,我们可以通过对比给定IP地址中相应部分的二进制表示来确定哪些地址属于同一个子网。对于IP地址86.32/12
,前12位是网络部分,而剩余的部分是主机部分。由于前8位由86
这个十进制数确定,我们只需要比较接下来的4位,即32
的二进制表示的前4位。
让我们再次确认一下你的计算:
86
的二进制表示为01010110
,这是所有选项共有的前8位。32
的二进制表示为00100000
,因此我们关注的是前4位0010
。
现在,我们来检查其他选项的第四个字节(即33
, 79
, 58
, 68
)的二进制表示的前4位是否与32
的前4位匹配:
33
的二进制表示为00100001
,前4位是0010
,与32
的前4位匹配。79
的二进制表示为01001111
,前4位是0100
,与32
的前4位不匹配。58
的二进制表示为00111010
,前4位是0011
,与32
的前4位不匹配。68
的二进制表示为01000100
,前4位是0100
,与32
的前4位不匹配。
因此,正如你所指出的,只有86.33.224.123
的前12位与86.32/12
的网络前缀相匹配,所以正确答案是A。
在IPv4分组首部的字段中,与分片和重组无关的是首部长度,首部长度并不影响分片与重组。
在因特网中(不考虑NAT),IP分组从源主机到目的主机可能要经过多个网络和路由器。假设在传输过程中IP分组没有误码,其首部中的( )A. 源IP地址和目的IP地址都不会发生变化
解析如下:
- 甲收到的TCP段的序号(seq)为2020,表示这是乙发送的数据流中的第2020个字节开始的数据。
- 确认号(ack)为1166,表示甲期望从乙接收的下一个字节的序号是1166,也就是说甲已经收到了直到序号1165的所有数据。
- 有效载荷为300字节,意味着这个TCP段包含了从序号2020到2319(包含2020和2319)的300字节数据。
当甲接收到这个TCP段后,它应该确认收到了这些数据。因此,甲发送回的TCP段的确认号(ack)应该是乙发送的这个段的最后一个字节的序号加1,即2320(因为从2020到2319有300字节,所以最后一个是2319,下一个就是2320)。
同时,甲发送的TCP段的序号(seq)应为它上一次发送给乙的TCP段的确认号,也就是1166,因为这表示甲将从1166字节开始发送新的数据(如果有的话)。
但是,题目中没有提到甲在收到这个段之前是否发送了数据给乙,因此我们默认甲没有发送新的数据,那么甲发送的TCP段的序号(seq)就保持不变,仍然是1166。
综上所述,甲立即发送给乙的TCP段的序号和确认号分别是1166和2320,所以正确答案是B。