网络编程相关知识点

提示:目录自动生成


前言

网络编程相关知识点


正文

一、字节序

1.网络字节序

大端模式,低地址存高字节

2.本地字节序

小端模式,低地址存低字节

二、TCP协议

1.三次握手

  • 主动发起连接端,发送 SYN 标志位,请求建立连接。携带序号,数据字节大小 (0),滑动窗口大小
  • 被动接受端,发送 ACK 应答,SYN 标志。携带序号,数据字节大小 (0),确认序号,滑动窗口大小
  • 主动发起连接端,发送 ACK 应答,携带确认序号
    tcp第三次握手失败会出现什么:
    如果此时 ACK 在网络中丢失,过了超时计时器后,那么 Server 端会重新发送 SYN+ACK 包。重传次数根据 /proc/sys/net/ipv4/tcp_synack_retries 来指定,默认是 5 次。如果重传指定次数到了后,仍然未收到 ACK 应答,那么一段时间后,Server 自动关闭这个连接。但是 Client 认为这个连接已经建立,如果 Client 端向 Server 写数据,Server 端将以 RST 包响应,方能感知到 Server 的错误。当失败时服务器并不会重传 ack 报文,而是直接发送 RTS 报文段,进入 CLOSED 状态。
    这样做的目的是为了防止 SYN 洪泛攻击。

2.四次挥手

  • 主动关闭连接端,发送 FIN,
  • 被动关闭端,发送 ACK。 处于半关闭
  • 被动关闭端,发送 FIN
  • 主动关闭端,发送 ACK 应答。此时连接全部关闭

三、长连接与短连接

1.长连接

连接 -> 传输数据 -> 保持连接 -> 传输数据 -> …………-> 直到一方关闭连接,多是客户端关闭连接
长连接指建立 SOCKET 连接后不管是否使用都保持连接,但安全性较差。

  • 优点
    长连接可以省去较多的 tcp建立/关闭的操作,减少浪费,节省时间,对于频繁请求资源的客户,较适用于长连接;
  • 缺点
    随着客户的越来越多,server 早晚会有扛不住的一天,这时需要采取一些策略,如关闭一些长时间不读写操作的连接,这样可以避免一些恶意连接导致 server 端服务受损,如果条件再允许,就可以以客户端为颗粒度,限制每个客户端的最大连接数

2.短连接

连接 -> 传输数据 -> 关闭连接
比如 HTTP(1.1之后默认长连接) 是无状态的的短链接,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,但任务结束就中断连接。

  • 优点
    短连接对于服务器来说较为简单,存在的连接都是有用的连接,不需要额外的控制
  • 缺点
    客户端连接频繁,会在 tcp 的建立和关闭上浪费时间。

总结

总结:
未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值