大家常常听说TCP/IP四层网络结构,最外层就是应用层,而应用层有哪些数据传输协议呢?
想必大家一下子不一定能想的起来,是不是觉得很难记?那么今天我们就结合我们熟悉的应用服务来理解这些协议的使用场景
1. 传输层协议TCP/IP模型一共分为四层网络结构,最靠近用户的就是应用层。
而在这之上的是传输层,其实对于大多数开发来说应该更熟悉的是传输层。可能你一下子反应不出来传输层是什么?
但是传输层的两个协议你一定不陌生:TCP协议和UDP协议。
大家都知道TCP是个可靠安全的协议,因为其三次握手,四次分手机制的存在,保障了数据传输的稳定可靠,但是同时也带来可更高的性能消耗,所以传递性能不高
UDP正相反,他没有那么多弯弯绕绕,想发数据就发,没有过多的确认,不啰嗦,所以办事利落高效,但因为不爱确认,所以不怎么可靠。
当然今天的重点不是这两个传输层协议,而是基于这两个传输层协议实现的应用层协议,这一层离我们最近,他们无时无刻存在于我们的工作生活中。
2. 基于TCP协议的应用层协议 2.1 HTTP 超文本传输协议Hyper Text Transfer Protocol,HTTP协议是开发人员非常见到的传输协议了,我们常说HTTP接口,经常访问的网址都是http://
开头的。这一个协议想必大家再熟悉不过了
默认端口:80
File Transfer Protocol,这个协议在开发中不常见,因为很少有人会做文件共享的开发,但是我们在运维工作或者自己本地需要连接虚拟机、远程连接其他电脑进行文件共享时就会用到了。
比较常见的FileZilla、Xftp软件,都是基于FTP协议开发的文件共享软件。
默认端口:20、21
telnet协议专用于远程连接,比如window中用到的远程桌面功能就是这个协议,telnet是明文传输用户名、密码的,因此虽然传输可靠但是不安全。
我们也常在系统中使用telnet指令来测试端口是否能够联通。
默认端口:23
Secure Shell,无论是FTP还是telnet协议,实际上他们都是不安全的,在我们需要远程连接我们的服务器来操作服务器时,我们必定需要一个安全可靠的协议来保驾护航,谁也不希望自己服务器的密码泄露。
于是ssh协议诞生了。用于远程连接,但是是加密安全的。我们常用的远程连接软件都是基于SSH协议的,比如xshell,navicat。
默认端口:22
Post Office Protocol Version 3,支持使用客户端远程管理在服务器上的电子邮件,在使用各类邮件管理软件(如foxmail、outlook)连接自己邮箱时,大家都会看到这个协议的身影。用于邮件客户端从邮件服务器接收和下载邮件。
默认端口:110
Simple Mail Transfer Protocol, 除了POP3之外,我们常见的邮件传输协议还有SMTP,同样的,我们在客户端进行邮箱绑定时,可以看到这个协议的身影。用于客户端发送邮件,一般与POP3配合使用。
默认端口:25
Domain Name System,简单来讲DNS就是用来将域名转换为IP,或者将IP转换为域名。我们在生成部署时,常常会申请域名与外网IP进行绑定,虽然这个活可能不是你做的,但是运维人员一定非常清楚,当我们访问域名网址时,就已经使用到这个协议了。
默认端口:53
Dynamic Host Configuration Protocol,这个协议专用于我们的电脑连接上网络后,为我们的电脑自动分配IP。我们打开电脑的网络高级设置,里面是可以看到这个协议的身影的
默认端口:67
Simple Network Management Protocol,该协议用于管理网络,让网络管理员能够发现网络问题、了解网络情况。通过该协议我们可以远程管理我们的交换机、路由器等网络设备。比较常见的网络管理软件有SolarWinds、Pulseway
默认端口:161
Trivial File Transfer Protocol,与FTP协议对应,简单文件共享协议也用于客户端与服务器之间的文件传输,但是专用于不复杂、开销不大的文件传输。FTP具有安全登陆功能,而TFTP则是一种开放的不具有安全性的传输协议。
通过搭建tftp服务器,再使用tftp客户端,可以实现无密码的文件传输。苹果电脑自带tftp功能,同时我们也可以通过transfer
软件来让我们的mac变成一个tftp服务器
默认端口:69
至此,应用层的传输协议就介绍完了,不用死记硬背,了解、理解,然后在工作生活中关注它们的存在即可。