TCP 和 UDP

目录

1、UDP 主要特点

2、TCP 主要特点

3、流量控制和拥塞控制

4、三次握手和四次挥手

(1) 三次握手

(2) 四次挥手


1、UDP 主要特点

  • 无连接

  • 尽最大努力交付,不可靠交付

  • 面向报文

  • 没有拥塞控制

  • 支持一对一、一对多、多对一、多对多的交互通信

  • 首部开销小。首部只有8个字节,源端口号、目的端口号、长度、检验和各占两个字节。

2、TCP 主要特点

  • 面向连接

  • 只能一对一

  • 可靠交付

  • 全双工通信

  • 面向字节流

  • 首部前20个字节固定,后面有4N个字节按需增加。源端口、目的端口各占两个字节;序号,4个字节;确认号,4个字节;数据偏移,4位;保留,6位;紧急URG,1位;确认ACK,1位;推送PSH,1位;复位RST,1位;同步SYN,1位;终止FIN,1位;窗口,2个字节;检验和,2个字节;紧急指针,2个字节;选项,可变长度,最多40字节

3、流量控制和拥塞控制

  • 流量控制:让发送方的发送速率不要太快,要让接收方来得及接收,属于局部考虑。利用滑动窗口实现流量控制。

  • 拥塞控制:防止过多的数据注入到网络中,使网络中的路由器或链路不致过载,属于全局考虑。使用慢开始、拥塞避免、快重传、快恢复算法实现拥塞控制。

4、三次握手和四次挥手

(1) 三次握手

  • Client发给Server,连接请求报文段SYN=1

  • Server发给Client,确认报文段SYN=1、ACK=1

  • Client发给Server,确认报文段ACK=1

        第三次握手的作用:

        主要是为了防止已失效的连接请求报文段又突然传送给B,从而产生了错误。

        所谓“已失效的连接请求报文”是这样产生的,正常情况下,A发出连接请求,但是因为连接报文请求丢失而未收到确认,于是A再重传一次连接请求,后来收到了请求,并收到了确认,建立了连接,数据传输完毕后,就释放链接,A共发送了两次连接请求报文段,其中第一个丢失,第二个到达了B,没有“已失效的连接请求报文段”。

        但是还有异常情况下,A发送的请求报文连接段并没有丢失,而是在某个网络节点滞留较长时间,以致延误到请求释放后的某个时间到达B,本来是一个早已失效的报文段,但是B收到了此失效连接请求报文段后,就误以为A又重新发送的连接请求报文段,并发送确认报文段给A,同意建立连接,如果没有三次握手,那么B发送确认后,连接就建立了,而此时A没有发送建立连接的请求报文段,于是不理会B的确认,也不会给B发送数据,而B却一直等待A发送数据,因此B的许多资源就浪费了,采用三次握手的方式就可以防止这种事情发生,例如刚刚,A不理会B,就不会给B发送确认,B收不到A的确认,就知道A不要求建立连接,就不会白白浪费资源。

        第三次握手失败时:

        Server会重传确认报文段SYN=1,ACK=1,直到接收到Client发送的确认报文段或者达到重传次数限制,这时Server会自动关闭这个连接;Client认为连接已建立并开始发送数据时,Server会给Client返回RST报文段,告诉Client重新请求连接。

        有的Sever并不会重传,而是直接发送RST报文段,防止SYN洪泛攻击。

        第三次握手的缺陷:

        会导致SYN洪泛攻击,也即DOS攻击;DOS攻击通过伪造大量源端口地址,使Server端返回的连接确认报文段(第二次握手),一致处于重传状态,造成网络严重阻塞。

(2) 四次挥手

  • Client发给Server,连接释放报文段FIN=1

  • Server发给Client,确认报文段ACK=1

  • Server发给Client,连接释放报文段FIN=1,ACK=1

  • Client发给Server,确认报文段ACK=1

        挥手时第二步只发送确认报文段而不发送连接释放报文段,是为了等待Server给Client发送完数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值