java网络编程:4、OSI各层所使用的协议

声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!

文章目录

一、应用层协议

1、ftp协议

2、超文本传输协议HTTP

3、域名服务DNS

4、简单邮件传输协议SMTP

5、邮局协议POP3

二、传输层协议

1、tcp协议

2、udp协议

3、既然udp协议有这么多的缺点,那么我们为什么还要去用它呢?

三、网络层协议

四、系列文章(java网络编程)


一、应用层协议

远程登录协议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网络编程:3、ISO/OSI七层参考模型

 java网络编程:4、OSI各层所使用的协议

 java网络编程:5、数据封装

 java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系

 java网络编程:7、端口、套接字(socket)的引入

 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编程(三)实现相互发送接收消息

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值