传输层就俩协议:TCP和UDP协议。接下来重点介绍这两种协议。
1 传输层两个协议的区别
TCP:需要将要传输的文件分段传输,建立会话,具有可靠传输、流量控制、拥塞控制等功能。
UDP:一个数据包就能够完成数据通信,不分段,不需要建立会话,不需要流量控制,是不可靠传输。DNS域名解析、QQ聊天、屏幕广播、多播、广播(因为没有建立会话)都是应用了UDP协议的例子。
2 传输层协议和应用层协议的关系
传输层协议+端口号=应用层协议,如下图:
常见的应用层协议使用的端口:
HTTP=TCP+80
HTTPS=TCP+443
远程桌面RDP=TCP+3389
FTP=TCP+21
共享文件夹=TCP+445
SMTP=TCP+25
POP3=TCP+110
TELNET=TCP+23
SQL=TCP+1433
DNS=UDP+53
在网络层,是通过IP地址来定位数据包发给哪个主机;而在传输层,是通过端口号来定位数据包发给主机里的哪个服务。选择了哪个端口,意味着选择哪个应用层服务。端口号和服务一一对应。比如,黑客在入侵之前都要先扫描一下目标主机开了哪些端口。根据开的端口,就可以确定目标主机提供哪些服务。比如,扫描到了3389端口,就意味着目标开了远程桌面服务,就可以对目标发起远程桌面请求来进行攻击。
3 服务和应用层协议之间关系
当然了,服务和协议也是一一对应的。每个服务都得需要一个相应的协议来保证通信。
服务端使用TCP或UDP的端口侦听客户端请求;客户端使用IP地址定位服务器,使用目标端口定位服务。
可以在服务器网卡上设置只开放必要的端口,实现服务器网络安全。也就是俗称的防火墙。防火墙的作用就是设置开放哪个端口、关闭哪个端口,可以对入侵进行一定的拦截。如图所示,关闭防火墙的1433端口,防止外界入侵数据库。
几个常用命令:
查看服务侦听的端口 netstat -an
查看建立的会话 netstat -n
查看某个特定状态的会话 netstat -n | find "ESTABLISHED"
查看建立会话的进程 netstat -nb
测试远程计算机192.168.80.100的3389端口是否打开 telnet 192.168.80.100 3389
4 传输层的功能、端口号
传输层为应用进程之间提供端到端的逻辑通信(网络层提供的是主机之间的逻辑