java udp重传,【JavaWeb】UDP协议和TCP协议,TCP协议机制之ACK,超时重传机制等

传输层:UDP协议  TCP协议 (UDP简单但不可靠,TCP复杂但可靠)

端口号:发送数据时,要带上本身进程的端口号,那么发送回来时,通过端口号才知道是哪个进程   (端口号总是和进程相关)

有“源端口号”“目的端口号”

在TCP/IP协议中,用“源ip”和源端口号” ”目的ip“  "目的端口号" “协议号”这样一个五元组来标识一个通信

知名端口号:

ssh服务器,22端口   可以远程连接

ftp,21   做文件传输

一般操作远程主机时就使用ssh协议和ftp协议

http,80

https,442

(http明文,https密文,需要加密解密的过程)

一个进程是否可以绑定多个端口号:

答:可以

一个端口号是否可以被多个进程绑定?

答:不可以,一个端口号只能绑定一个进程

【UDP】协议

一个端口代表一个进程。UDP协议实现了端口,从而让某个数据包可以在送到指定IP地址的基础上,

进一步传送到某个端口。

【UDP 特点】

传输的过程类似于寄信:

1、(无连接):知道对端的IP和端口号就直接进行传输,不需要建立连接

2、(不可靠):没有确认机制,没有重传机制;如果因为因为网络故障无法发到对方,

UDP协议层也不会给应用层返回任何错误信息。UDP发送数据时,只要将数据发出去就可以了,至于

接收端有没有收到,UDP本身是没有保障的  (重点!!!!)

3、(面向数据报):不能够灵活的控制读写数据的次数和数量,应用层交给UDP多长的报文,UDP都会

原样发送,不会拆分,也不会合并

【缓存区】:

1、UDP没有真正意义上的发送缓冲区,实质上是由网络层进行传输动作

2、UDP有接收缓存区,但是不能发送UDP报的顺序和接收UDP报的顺序一致,如果缓冲区满了,再

到达的UDP数据就会被丢弃。

双全工: UDP的socket既能读,也能写

【注意】:一个UDP能传输的数据最大长度是64kb。如果超出64kb,就要再应用层手动分包,然后

进行多次发送,并且在接收端进行手动拼装

【基于UDP应用层协议】

1、NFS:网络文件系统

2、TFTP:简单文件传输协议

3、DHCP:动态主机配置协议

4、BOOTP:启动协议

5、DNS:域名解析协议

6、自己写的UDP程序中自定义的应用层协议

【TCP协议】:

全称是“传输控制协议”,即对一个数据的传输进行的详细的控制。属于传输层。

格式:

源/目的端口号:标识数据从哪个进程,到哪个进程去

TCP头部最大长度是15*4=60

16位校验和:接收端校验不通过,则认为数据有问题,校验不仅包含tcp首部,也包含tcp

数据部分

16位紧急指针:标识哪部分数据是紧急数据

【确认应答(ACK)机制】:

每一个ACK都有对应的确认序列号,意思告诉发送者,哪些数据收到了,下一次从哪里

开始发

【超时重传机制】:

1、如果主机A发送数据B之后,可能因为网络拥堵等原因,数据无法到达主机B

2、如果主机A在一个特点时间间隔内,没有收到主机B的确认应答,就会进行重发,如果重传累计达到

一定的次数,TCP会认为网络对端主机出现异常

但是,如果主机A没有收到确认应答,也可能是ACK丢失了,主机A就会又重发一遍,主机B就会

收到很多的重复数据,TCP这时就可以识别哪些包是重复包,并且去重,序列号就可以帮助去重

【连接管理机制】

TCP要经过三次握手建立连接,四次挥手断开连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值