`
2540611109
  • 浏览: 10019 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论
  • ayaome: 可以总结下他们各自的优点、缺点,各自适合在什么样的场合使用
    Java

通信协议

阅读更多
                      通信协议



1.网络通信的本质和层次
   通信的本质是信息的传递,通信的真正端点并不是主机而是主机中的进程。对于层次,也可以有不同的分法,不过,出名的有标准而不实用的OSI七层体系结构,不标准但实用的tcp/ip四层协议模型 ,见附件。
   
   
   
   
   
   
2定义(什么是通信协议)?
   协议,其实就是一套规则。一般说的协议,是用来限定或指明签订协议双方义务或责任的一些条款,就像历史上签订的那些历史条约一样,条约的内容就是指明双方该做的和不该做的事情。那么在通信中也是如此,通信双方就是要签订协议的双方,两方在通信过程中要共同遵守一些规则;例如在通信过程中,最主要的就是要能读能写,但是在读和写的过程中,不能随便写或读的,要不然读出来的会是乱码,我要怎么去写,另一方又要怎么去读就是一个需要解决的问题,于是通信双方“商量”好,我怎么写你就怎么读,我按什么顺序写,你就按什么顺序读,我写了什么你就读什么。例如,读取对方消息时,要一个字节一个字节的去读,把读的字节都先保存在一个数组中,还要确定一个语句结束符,待遇到语句结束符后,把已保存的那些字节在一某种编码方式给输出来;再者,像传输文件时,写入的文件内容是包含了文件长度,文件类型,文件名和文件内容的,那么读的时候就得按顺序把文件长度,文件类型,文件名读出来了之后才开始读取文件内容。
   
    3.通信协议的特点:
         通信流程和通信消息格式,即消息发送有一定的顺序和格式。
    4.那都有哪些常见的通信协议呢?以及各种协议的通信过程是什么呢?
         以TCP/IP四层模型为例
    HTTP(超文本传输协议):运行在应用层,定义了浏览器怎样想服务器请求文档以及服务器怎样把文档传输给浏览器,当客户端要像服务器请求一份文档时,首先需要经过HTTP协议使用TCP建立连接,然后,客户端请求HTTP报文,服务器收到请求后,把客户端需要的文档发送给客户端,完了之后再释放TCP连接,HTTP在传输过程的也类似于TCP/IP连接。


    TCP和UDP:都运行在传输层。TCP是面向连接的,什么意思呢,就好像两台通信的主机是两个池子,池子中的水从一个池子流向另一个池子,中间用一个水管连起来,TCP就起到了这根水管的作用,而里面流的水则是ip数据包,当消息从一台主机上传出去后,是被包装成数据包后往通道上传的,比如QQ,当我要给我的一个朋友发送一条消息的时候,QQ如果消息采用的是TCP/IP协议,那么我的主机要先经过腾讯的服务器与朋友的主机之间建立连接,之后我的消息再从建立的这条通道(TCP)上传输过去,但在建立连接前必须等待接收方响应,在传输信息的过程中还要随时确认信息是否传到,断开连接时有需要发出断开的响应信号。而UDP则是面向无连接的,就是说我在给朋友发信息时,不需要建立连接,由我单方面不理对方是否处于何种状态,‘野蛮’地像对方发送数据,然后就让发出去的数据自己传过去,我这边不会再管你是否传错了,后者你到哪儿了,因为这一切我都不知道,我无法‘帮’你啊!就算对方收到了也不会给我说一声的。TCP的功能也决定了它所附带的信息的复杂,相比UDP会多的多,但也因为UD更小的负载和更有效的使用宽带,成为了许多聊天工具采用的协议。



    TCP/IP协议:运行在网络层,是网络通信的核心协议,IP相当于数据包,IP协议呢,就是研究如何对传入的数据数据进行打包,打包成数据包,这个过程要怎么做,就由IP来决定了,模型在附件中。
自定义协议:既然制定出来的标准都没能得以实现,说明这么多的网络通信公司的存在,注定各种协议百花齐放,只要是能满足自己的需要就可以用,这些每个人都可以根据他的需要自定义出一套协议。

    好吧,我对协议的理解就这些了,当然更深层次的还很多,也正在学习中,待我回来,定会把协议说的更清楚更透彻一些!


 
  • 大小: 15 KB
  • 大小: 10.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics