计算机网络——传输层协议

TCP

TCP的基本认识

  1. 报文格式
    在这里插入图片描述
  2. TCP特点
    TCP是一个面向连接的可靠的基于字节流的传输层通信协议。
Q1:有一个 IP 的服务器监听了一个端口,它的 TCP 的最大连接数是多少?
最大TCP连接数 = 客户端IP数 * 客户端的端口数;
但限制于文件描述符和内存

三次握手

在这里插入图片描述
三次握手原因:
可以阻止历史重复连接的初始化(主要原因): 由于网络延迟等复杂的原因,使得旧的数据包比新的数据包先到达,这是三次握手情况下,服务端接收到旧的数据包后,会设置其报文的确认应答号为旧的数据包序列号+1,然后发送给客户端,客户端对比自身的上一个发送报文序列号+1的值是否与服务端发来的报文的确认序列一致,如果不一致,就发送一个RST报文给服务端,表示中止这一次连接。
同步双方初始化序列号:两次握手只能保证一方的序列号被另一方成功接收,而没办法保证双方序列号都能被确认接收。
避免资源浪费:两次握手会造成消息滞留情况下,服务器重复接受无用的连接请求SYN 报文,而造成重复分配资源。

Q2:既然 IP 层会分片,为什么 TCP 层还需要 MSS 呢?
MTU:一个网络包的最大长度
MSS:出去IP和TCP头部之后,一个网络所能容纳的TCP数据的最大长度。
IP分层存在隐患:当一个数据大于MTU时需要进行分片,但当其中一个IP分片丢失时,整个IP报文的所有分片都得重传。(因为IP层本身没有超时和重传)
而TCP负责超时和重传,在建立连接的时候通常会协商双发的MSS值,当数据大于MSS时就会进行分片,如果一个分片丢失,也能进行重发。

Q2:SYN攻击
A(攻击者)发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当这个服务器返回ACK以后,A不再进行确认,
那这个连接就处在了一个挂起的状态,也就是半连接的意思,那么服务器收不到再确认的一个消息,
还会重复发送ACK给A。这样一来就会更加浪费服务器的资源。A就对服务器发送非法大量的这种TCP连接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值