Java开发需知的网络知识

1.协议

概念:用于保证网络传输双方能正常通讯的一种约定

2.网络模型

2.1OSI

应用层将标准的数据转换成程序需要的格式
表示层将设备的数据格式转成标准格式
会话层用来管理通讯双方之间的会话
传输层用来确保双方的数据能够进行传递
网络层地址的管理和路由选择
数据链路层确保相邻结点间的数据传输
物理层数字信号转为光电信号

2.2TCP/IP

应用层将标准的数据转换成程序需要的格式
传输层用来确保双方的数据能够进行传递
网络层地址的管理和路由选择
数据链路层确保相邻结点间的数据传输
物理层数字信号转为光电信号

2.3TCP/IP网络分层模型中,各层常见协议及端口号:

应用层HTTP(80)、FTP(21)、SMTP、SNMP、DNS(53)、TELNET、POP3、SSH(23)
传输层TCP、UDP
网络层IP、ARP、ICMP、IGMP
数据链路层/物理层RIP、BGP、ARQ/PPP、HDLC

数据传输的五个要素:

  1. 源地址IP
  2. 源地址端口号
  3. 目的地IP
  4. 目的地端口号
  5. 协议类型

3.UDP

3.1特点

  1. 无连接
  2. 不可靠
  3. 面向数据报
  4. 没有发送缓冲区,只有接收缓冲区。

3.2协议头内容

源端口号、目的端口号、UDP长度(UDP信息的长度,最大存储量:64k)、UDP校验和、数据
在这里插入图片描述

3.3使用场景

DNS、NFS

4.TCP

4.1协议头内容

在这里插入图片描述

16位窗口大小:接收缓冲区的大小,用来进行拥塞控制。

4.2TCP十大特性

4.2.1确认应答

保证稳定性最关键的措施。

4.2.2超时重传

策略:

  1. 动态的重传频率,每次重发的时间间隔是上一次的一倍(*2)。
  2. 当重试一定次数之后,就会停止重传。

4.2.3链接管理

在这里插入图片描述

四次挥手变三次,依靠的是TCP特性中的捎带应答
面试题:服务器端大量出于close_waiting状态?
答:服务器端没有正常关闭。

4.2.4滑动窗口

提升TCP性能
快重传机制

4.2.5流量控制

以结果为导向,查看接收缓冲区的大小
当接受缓冲区为0时,停止消息发送,发送检测包,每定时询问客户端接收缓冲区剩余空间大小

4.2.6拥塞控制

以当前网络状态,来作为传输大小的依靠
在这里插入图片描述

当TCP开始启动的时候, 慢启动阈值等于窗口最大值;
在每次超时重发的时候, 慢启动阈值会变成原来的一半, 同时拥塞窗口置回1;

4.2.7延迟应答

提升性能
策略:

  1. 每隔一定次数延迟应答一次
  2. 每隔一定时间延迟应答一次
  • 注意:延迟应答的时间(200ms)不能超过超时重传的时间(500ms)

4.2.8捎带应答

在延迟应答的基础上,又一次的性能提升
能够实现三次挥手的重要机制

4.2.9面向数据流

粘包/半包问题
解决策略:

  1. 使用固定大小传输包(造成不必要的网络带宽压力)。
  2. 使用\n最为流的结束符。

4.2.10TCP异常处理机制

  1. 没有缓冲时间的异常:断网,断电【TCP健康监测机制】
  2. 有缓冲时间的异常:关机,重启【和正常关闭一样】

5.IP

在这里插入图片描述

4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本

6.MAC

在这里插入图片描述

MTU:最大网络传输大小(1500)
MSS(Max Segment Size); :TCP的单个数据报的最大消息长度
MTU:1500-8-20=1472(UDP)

7.面试题:当输入一个URL之后,会发生什么?

答:

  1. 效验URL正确性
  2. 检测本地的缓存
  3. 访问DNS服务器,实现域名解析
  4. 建立TCP连接
  5. 浏览器会将参数和请求信息,发送给服务器端
  6. 服务器得到请求的参数信息,然后再进行业务处理
  7. 服务器将信息返回给客户端
  8. 浏览器拿到响应的信息之后,通过浏览器的执行引擎,解析结果,并展示给用户
  9. TCP断开
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值