如何理解协议-网络编程
2015-11-15 12:54
597 查看
网络里面有各种协议,比如TCP,UDP,IP,HTTP,FTP,Telnet,SMTP,POP3,TCP,UDP是传输层协议,是OSI中中间层,它服务于上有三层(会话层,表示层,应用层),依赖下有三层(网络层、链路层、物理层)提供的服务;
ip就是网络层协议,http,ftp,telnet,smtp,pop3就是应用层协议。
tcp的三次握手建立连接,想必大家都再清楚不过了。
各种软件也有一些协议,比如mysql自带复制协议,这个可以算作应用层协议,它传输层的依赖的协议还是TCP。
在开发java程序的时候,我们也会定义协议,这里的协议有的就是比较狭义,比如我们定义一种数据格式,通过http协议传输,我们就把这个叫做我们定义的协议;
协议无处不在,不仅仅局限于网络通信,只是,我们把网络协议的简称为协议,以至于把协议这个概念仅仅局限于网络协议了,所以才会造成对协议的一些理解的片面和困惑。
我们也可以开发一些应用层的协议,当然了,是基于传输层的TCP或者UDP的协议的。比如,mysql的复制协议,比如,redis的主从同步协议;
可以这样理解:监听一个端口的服务器端程序都是有协议的,他们的传输层使用的要么是TCP,要么是UDP,TCP可以重传,可以检测丢失的数据,而UDP是会丢失数据的。
ip就是网络层协议,http,ftp,telnet,smtp,pop3就是应用层协议。
tcp的三次握手建立连接,想必大家都再清楚不过了。
各种软件也有一些协议,比如mysql自带复制协议,这个可以算作应用层协议,它传输层的依赖的协议还是TCP。
在开发java程序的时候,我们也会定义协议,这里的协议有的就是比较狭义,比如我们定义一种数据格式,通过http协议传输,我们就把这个叫做我们定义的协议;
协议无处不在,不仅仅局限于网络通信,只是,我们把网络协议的简称为协议,以至于把协议这个概念仅仅局限于网络协议了,所以才会造成对协议的一些理解的片面和困惑。
我们也可以开发一些应用层的协议,当然了,是基于传输层的TCP或者UDP的协议的。比如,mysql的复制协议,比如,redis的主从同步协议;
可以这样理解:监听一个端口的服务器端程序都是有协议的,他们的传输层使用的要么是TCP,要么是UDP,TCP可以重传,可以检测丢失的数据,而UDP是会丢失数据的。
相关文章推荐
- Socket-java网络编程1
- Android网络通信中数据传输的JSON格式使用
- 再次理解HTTP请求过程[概念原理篇]
- 服务器server与http常用知识
- HttpClient-POST-GSON
- 内核调试方法之串口输出
- App的网络性能优化实践
- HttpClient 登录爬取信息
- Android网络通信必备神器Volley详解——实现一个自定义的Request(以Gson为例)
- linux网络编程
- BP神经网络模型与学习算法
- 网络连接工具类
- Java网络编程
- Http请求处理流程
- Android网络优化5-实现高效网络访问来优化下载
- 个人博客
- 黑马程序员——网络通信
- 接口测试类型及接口测试工具
- AFNetworking 和 ASIHTTPRequest
- Apache Http Server与Tomcat实现负载均衡和集群