声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
文章目录
3、既然udp协议有这么多的缺点,那么我们为什么还要去用它呢?
一、应用层协议
远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。
1、ftp协议
我们在网上下载一个软件的时候,那么就会使用ftp协议。
2、超文本传输协议HTTP
是我们使用比较多的一个协议,我们在上网的时候,通过一个浏览器去访问一个网页,那么就会使用超文本传输协议。
3、域名服务DNS
这也是我们使用比较多的一个协议,我们通过网络去访问一台主机的时候,我们很少直接去输入它的ip地址,我们通常会去输入这个主机它的域名。例如我们去访问新浪网站,我们会在浏览器上输入www.sina.com.cn,这就是域名,通过dns就可以将这个域名解析成它所对应的一个ip地址,然后通过ip地址就可以访问到,我们新浪网站的主机。
4、简单邮件传输协议SMTP
我们通过Foxmail去发送一封邮件的时候,那么就会使用smtp协议。
5、邮局协议POP3
我们利用Foxmail从263(国内较早企业邮箱)我们的信箱当中,收取邮件的时候,那么就会使用pop3协议
二、传输层协议
传输控制协议TCP、用户数据报协议UDP。
TCP:面向连接的可靠的传输协议。 UDP:是无连接的,不可靠的传输协议。
1、tcp协议
我们在用tcp协议进行通信的时候,首先要经过三步握手,建立起通信双方的连接,一旦连接建立以后,我们就可以进行通信。tcp提供了数据确认和数据重传的机制,保证了发送的数据,一定能够到达通信的对方。
这就像我们利用电话通信一样,我们首先要拨打电话号码,建立一个连接,一旦电话拨通,连接建立之后,我们所说的每一句话,都能传输到和你通信的那一方。
2、udp协议
采用udp协议在进行通信的时候,不需要建立连接,我们可以直接向一个ip地址发送数据,至于这个数据对方有没有收到就不敢保证了。我们知道在网络上传输的是电信号,那么既然是电信号在传输的时候就会有衰竭,所以我们的数据有可能在网络上,就消失了。也有可能指定的ip地址还没有分配,或者说具有这个ip地址的主机还没有运行,都有可能导致我们发送的数据接收不到。
这就好像我们寄信的过程,我们所寄的信件有可能在运送的过程中丢失,也有可能收信的人搬家了。那么都会导致信件的丢失,我们在寄信的时候,不需要和对方认识,也就是不需要去建立连接。比如说:我给特朗普写封信,想谈谈中美的关系,那么这封信能否到达,就不好说了。但是这封信我是可以发送出去的。
3、既然udp协议有这么多的缺点,那么我们为什么还要去用它呢?
主要是因为udp协议不需要去建立连接,而且没有数据确认与重传的机制,所以实时性较高。
在一些实时性要求较高的场合,例如:视频会议、视频点播,我们就可以采用udp来实现,因为对于这些应用来说,丢失少量的数据,不会影响我们观看视频。
而在对于一些数据完整性要求较高的场合,我就可以采用tcp协议。例如:你从网上下载一个安装程序,如果丢失一部分数据,那么你的安装程序就没法用了。
三、网络层协议
网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP
四、系列文章(java网络编程)
java网络编程:1、计算机网络?网络通信的组成?什么是ip、协议、端口号?
java网络编程:2、IP地址、协议、网络状况、网络异质性问题的解决
java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系
java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端
java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序
java网络编程:10、基于TCP的socket编程(三)缓冲流、flush方法、关闭流
java网络编程:11、基于UDP的socket编程(一)理论、基本步骤
java网络编程:12、基于UDP的socket编程(二)代码通信-简单实例
java网络编程:13、基于UDP的socket编程(三)实现相互发送接收消息