Java网络编程知识要点(一)

1,051 阅读3分钟

1、TCP/IP 模型,OSI七层模型

image.png

  • 应传网链
  • 应【表、会】 传 网 链 【理】
  • 我的速记,传音反向,网恋。谁和谁呢?表妹慧和你。
  • 也就是应用层、传输层、网络层、链路层
  • 应用层、表示层、会话层 传输层 网络层 链路层 物理层

2、网络传输消息中的数据

  • 包 帧 片 段 消息。反着来。
  • 应/传/网/链/物理
  • 包是全能术语
  • 帧在数据链路层
  • 片在网络层IP
  • 段传顺层TCP
  • 消息应用层 image.png

3、TCP/IP协议族

image.png

4、TCP概述

  • Transmission Control Protocal传输控制协议
  • 面向连接
  • 可靠性
  • RTT/RTO 往返时延 超时重传
  • 数据顺序
  • 流量控制
  • 全双工

5、TCP连接中的三次握手

image.png

  • 第一次握手:【客户端请求服务端】,验证自己能发出,服务器能否收到。服务器收到请求,表示服务接收能力ok,服务端同时也要告诉客户端的发送没有问题,也要验证自己的发送没有问题。
  • 第二次握手: 【服务器应答客户端,并请求建立连接】。客户端收到之后,客户端接收能力ok客户端发送能力也ok,客户端要告诉服务端,客户端的发送能力ok,
  • 第三次握手:【客户端针对服务器的的请求确认应答】。服务器收到请求,服务端接收能力ok
  • TCP是面对连接的,所以需要双方都确认连接的建立

6、TCP3次握手的漏洞-SYN洪泛攻击

  • 定义:发假请求,让服务端上的半开连接队列被占满。从而阻止其它用户进行访问。
  • 原理:假ip发第一次握手,而第二次握手永远发布到真实客户端,第三次握手永远不会有,服务端再等待这种半开的连接中 耗尽资源。
  • 解决方案:
    • 无效连接监控释放
    • 延缓TCB分配方法
    • 防火墙

7、TCP中的四次挥手

image.png

  • 定义:断开一个TCP连接时,需要客户端和服务端总共发4个包以确认连接的断开
  • 过程:
    • 1、客户端发送断开连接的请求
    • 2、服务端接受到断开请求,发送我知道了。
    • 3、服务端接受到断开请求,发送我也要和你断开。
    • 4、客户端接收到断开请求,发送,好呀,一起断。
  • 为什么时4次挥手?
    • 因为TCP是全双工,所以双方都确认关闭请求。特殊情况下可以把第二次和第三次合并,但是中间如果有未发完的数据就不能合并,先发送我知道了,把剩下的数据发送完之后,服务器再发送关闭请求。
  • 为什么需要TIME-WAIT状态?
    • 因为需要等待服务器接受发送的关闭请求,如果立马挂了,这个端口可能被其它应用占了,接收方成了其它应用。就有问题了

8、HTTP协议

  • 超文本传输协议
  • 一次完整http请求过程
    • 1、DNS
    • 2、tcp3次握手
    • 3、client发起http请求
    • 4、server响应http请求
    • 5、client解析html,请求html中资源
    • 6、client渲染
    • 7、tcp4次挥手

9、DNS劫持和http劫持

-DNS劫持,原本要访问的ip的改变。
-http劫持,是客户端和服务端直接传递信息的改变