深入理解通讯协议
Posted zenoliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解通讯协议相关的知识,希望对你有一定的参考价值。
网络模型
OSI模型(开放式系统互联),它是由国际标准化组织(ISO)提出的。
TCP/IP系列协议
TCP/IP(Transmission Control Protocol/Internet Protocol)不只是TCP/IP两个协议,而是有很多个协议组成,并且是在不同的层,是互联网的基础通信架构。
一个http请求浏览:应用层HTTP -> 传输层TCP -> 网络层IP(数据包)、 ICMP(确保源地址和目的地址之间是网络通)、IGMP(本地路由器和英特网的路由器联通) ->链路层
直接使用网络层协议的应用:ping命令,ICMP协议。
TCP的3次握手协议
第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
TCP的4次挥手协议
TCP中是怎么四次。
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
TCP的通讯原理
“阻塞模式”:如果接收端,当然接收端缓冲区为空的时候,调用Socket的read方法的线程会阻塞,阻塞到有数据进入接收缓冲区;另外对于写数据到Socket中的线程来说,如果待发送的数据长度大于发送缓冲区空余长度,则会阻塞在write方法上,等待发送缓冲区的报文被发送到网络上,所以呢这个就是TCP的阻塞。
滑动窗口协议
发送方和接收方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接收方确认,目的是控制发送速度,以免接收方的缓存不够大导致溢出,同时控制流量也可以避免网络拥塞
HTTP协议
URI是请求的资源,URL是你请求的资源的地址也就是地址路径。
UDP协议
那为什么UDP不可靠,我们还使用它了,在这种在线视频中,丢失数据只会作为干扰出现,并且这种干扰是可以容忍的,就比如看视频的时候出现了画面与声音不同步的现象,大家还是会忍受的,同时UDP传输比较高效
实战
TCP的实战,因为TCP是要建立连接的,所以需要Socket和ServerSocket之间建立连接。
UDP呢,首先UDP是没有任何两台主机之间连接的概念,它只管发给谁就可以了,TCP可以使用流数据,而UDP不行,UDP在处理的时候以一个包的形式进行发送,要么就发送到了,要么就丢失。
ppt配图下载地址:文件名称:深入理解通讯协议.pptx
链接:https://pan.baidu.com/s/1098_HTL3ae0DTNbN0SkW8A
提取码:niua
复制这段内容后打开百度网盘手机App,操作更方便哦
链接失效了请联系作者
以上是关于深入理解通讯协议的主要内容,如果未能解决你的问题,请参考以下文章