文章目录
- 传输层定义
- 传输层“端到端”解析
- 传输层端口:Port
- 端口号分类
- 端口实验(FTP为例)
- 扩展知识
传输层定义
传输层定义了主机应用程序之间端到端的连通性。
传输层中最为常见的两个协议分别是传输控制协议TCP (Transmission Control Protocol ) 和 用户数据包协议UDP (User Datagram Protocol)
传输层“端到端”解析
实际场景:电脑上的APP究竟是如何发送接收消息?
1、电脑上下载应用软件的时候,正常操作都会到软件的官网去下载。官网里提供的APP下载都是客户端,选择安装平台下载对应的客户端APP。这样电脑上就会装上很多类型的APP,如QQ、浏览器、邮箱、微信等等APP客户端。
2、下载完一堆的APP后,打开QQ客户端开始登入聊天。这整个登入聊天的过程QQ客户端是在和谁暗送秋波呢? QQ服务器。
这下就知道,电脑上装着一堆APP客户端,在使用的时候都会和对应服务器通信。
当电脑PC机上打开多个客户端APP,同时开始向各自的服务器发送数据,服务器回复回来的消息是混乱的,如下图所示
如何才知道哪些数据是给QQ的,哪些数据是给邮箱的呢?端口号
传输层端口:Port
传输层提供端到端的连接(端口号和端口号之间的连接)根据端口号可以区分不同的应用协议
(S 表示源端口号;D表示目标端口号)
主机发送数据时,在数据前添加数据的源端口号1027和目标端口号80,将封装好的数据发送给对应服务器上的80端口。
服务器将处理好的数据,根据之前接收的源端口号和目标端口号,封装现在的数据(源端口号80,目标端口号1027),将封装好的数据发送给主机上开着1027端口号的客户端进行处理。
网络层提供点到点的连接(节点之间)
在网络里每个设备都是一个节点。
图二来分析,主机A在网络层是一个节点,假如它的IP地址是192.168.1.7;服务器在网络层也是一个节点,假如它的IP地址是36.155.132.75。这种通信在网络层中就是点到点之间的传输。
小结
主机A(192.168.1.7)的1027端口发送数据到服务器(36.155.132.75)的80端口
服务器(36.155.132.75)的80端口发送数据到主机A(192.168.1.7)的1027端口
端口号分类
端口号总数有 2^16 = 65536 个,通过下面列表进行端口分类:
端口号范围 | 端口类型 |
---|---|
0到1023 | 公认端口 |
1024到49151 | 注册端口 |
49152到65535 | 私有和动态端口 |
常用的TCP公认端口
FTP(21) Telnet(23) AMTP(25) HTTP(80)
POP3(110) IRC(194) HTTPS(443)
常用的UDP公认端口
TFTP(69) RIP(520)
常用的TCP/UDP 公认端口
DNS(53) SNMP(161)
1024~49151属于注册端口/登记端口(应用注册使用的端口)
49152~65535属于私有端口/动态端口(主机/客户端使用的端口)
端口实验(FTP为例)
使用eNSP 拓扑图如下
1、连接成功环境
服务端Server1开启ftp服务,端口号为21
客户端Client1 -> 客户端信息 -> 服务器地址,端口号21


2、连接失败环境
服务端Server1开启ftp服务,端口号改为5700
客户端Client1 -> 客户端信息 -> 服务器地址,端口号用21连接


连接失败的原因是: 服务器开启ftp服务端口为5700,只有通过5700这个端口才能用ftp服务;这时客户端连接服务器时端口号为21,所以连接失败。
修改配置: 将客户端连接服务器端口号改为5700,则连接成功

服务端端口号:
- 端口是根据需求自行更改的
- 可以通过更改端口可以让非信任用户访问不到应用
- 如FTP的端口默认为21,修改端口为5700,让非信任用户访问不到FTP服务器
客户端端口号:
- 源端口随机分配,目标端口使用知名端口(Well-known port)
- 应用客户端使用的源端口号一般为系统中未使用的且大于1023
- 目的端口号为服务器开启的服务所侦听的端口,如HTTP缺省使用80
注:端口对应了一种应用协议,真正提供服务的是服务器
扩展知识
如何知道电脑PC中已经连接了多少端口号?
打开“任务管理器 -> 性能 -> 打开资源监视器 -> 网络 -> 侦听端口 ”
windows 使用ftp访问服务器(192.168.1.13)端口21
可以打开“文件资源管理器”中“快速访问”输入:ftp://192.168.1.13
若服务器端口号改为5700,则要输入ftp://192.168.1.13:5700
ftp://服务器地址 : 端口号 (不加端口号,默认ftp 公认端口号21)