应用层与传输层关系
TCP/IP运输层端口
端口用一个 16 位端口号进行标志,允许有65,535个不同的端口号。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中,不同计算机的相同端口号是没有联系的。
两大类端口
服务器端使用的端口号
- 熟知端口,数值一般为 0 ~ 1023。
- 登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户端使用的端口号
- 又称为短暂端口号,数值为 49152 ~ 65535,留给客户进程选择暂时使用。
- 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
端口作用
服务器:端口用来定位服务器上的服务。(目标ip地址用于确定哪台服务器)
客户端:用来确定数据包返回后给哪个客户端实例
网络安全
1)在服务器上关闭TCP或UDP的某个端口,就关闭了客户端访问相应服务途径。
a. 防火墙未做限制时,黑客再破解mssql用户名密码后,可直接通过1433端口连接mssql操作数据库。
b. 限制外部可访问的端口
2)路由器上的防火墙进行控制,例如:网管限制公司内网访问外部邮件系统
常见的应用层协议和传输层协议
- HTTP默认使用TCP的80端口。
- FTP默认使用TCP的21端口。
- SMTP默认使用TCP的25端口。
- POP3默认使用TCP的110端口。
- HTTPS默认使用TCP的443端口。
- DNS使用UDP or TCP 的53端口。
- 远程桌面协议(RDP)默认使用TCP的3389端口。
- Telnet使用TCP的23端口。
- Windows访问共享资源使用TCP的445端口。
- 微软SQL数据库默认使用TCP的1433端口。
- MySQL数据库默认使用TCP的3306端口。
常用的端口操作
netstat -an 查看服务器侦听的端口
举例:计算器开启了远程桌面,可以查看到3389端口正在监听
netstat -n 查看建立的tcp连接
举例:浏览器访问https://www.baidu.com/后,本机cmd输入netstat -n查看,https默认的是443端口
telnet 172.16.64.213 3389 测试服务器某个端口是否打开(需要本地启用telnet客户端)