Java开发八股文笔记-计算机网络相关

1. 为什么要对网络协议分层

  • 简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。
  • 灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受 影响。
  • 易于实现和维护。
  • 促进标准化工作。分开后,每层功能可以相对简单地被描述。

2. 网络协议常见分层方式

  • TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。

  • 五层协议的体系结构主要包括:应用层、运输层、网络层,数据链路层和物理层。

  • OSI七层协议模型主要包括是:应用层(Application)、表示层 (Presentation)、会话层(Session)、运输层(Transport)、网络层 (Network)、数据链路层(Data Link)、物理层(Physical)。

    • 物链网输会示用(物联网叔会使用)

在这里插入图片描述

3. 应用层

定义应用进程间的协议

比如

  • 电子邮件
    • SMTP(简单邮件发送协议)
    • POP3(邮局协议)、IMAP(网际报文存取协议)
  • 万维网
    • HTTP(超文本传输协议)
      • 包含的具体请求有:
      • GET:对服务器资源的简单请求
      • POST:用于发送包含用户提交数据的请求
      • HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
      • PUT:传说中请求文档的一个版本
      • DELETE:发出一个删除指定文档的请求
      • TRACE:发送一个请求副本,以跟踪其处理进程
      • OPTIONS:返回所有可用的方法,检查服务器支持哪些方法
      • CONNECT:用于ssl隧道的基于代理的请求
  • FTP(文件传输协议)
  • DNS 域名服务

HTTP和HTTPS的区别

概述:HTTPS简单讲是HTTP的安全版。只是HTTPS加密信任这个环节,需要信任机构颁发可信证书。
1、关于端口区别:HTTP:80端口、HTTPS:443端口。
2、数据传输区别:HTTP数据明文传输、HTTPS数据加密传输。
3、真假网站识别:HTTP很容易被复制、HTTPS网站使用OV或EV证书必须要实名,而且要求很严格,尤其是EV证书,地址栏将直接展示名称,比如各大银行的网站。
4、应用传输:HTTP工作于应用层、HTTPS工作在传输层。
5、地址协议区别:
http://开头(浏览器情况下显示问号、不安全)
https://开头(浏览器展示安全,绿色小锁图标)
6、协议门槛:HTTP不需要证书、HTTPS需要Gworg机构颁发SSL证书。

解析URL的过程

  1. DNS解析
  2. TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

4. 传输层

传输层主要负责主机之间的数据传输服务

主要用以下两种协议

  1. 传输控制协议-TCP:提供面向连接的,可靠的数据传输服务。
  2. 用户数据协议-UDP:提供无连接的,尽大努力的数据传输服务(不 保证数据传输的可靠性)。
具体内容UDPTCP
是否连接无连接面向连接
是否可靠不可靠传输,不使用流量控制与拥塞控制可靠传输,使用流量与拥塞控制
连接对象个数支持一对一、一对多、多对一和多对多交互通信只能是一对一
传输方式面向报文面向字节流
首部开销首部开销小,仅8字节首部20~60字节
场景适用于实时应用(IP电话、直播视频等)适用于要求可靠传输的应用(如文件传输)

TCP

TCP报文格式
在这里插入图片描述
seq:第一字节编号
ack:期望收到下一段的第一个序号
有六个控制位需要重点介绍:

  • URG 紧急位
  • ACK 确认位 建立连接后始终为1
  • PSH 推送位 取1 时尽快交付,不需要缓存满
  • RST 复位 取1 时连接出错,要先释放,再建立
  • SYN 同步位 连接请求,接受报
  • FIN 终止位 取1时发送完数据释放连接

连接控制:三次握手、四次挥手

两张图参考了:https://blog.csdn.net/qzcsu/article/details/72861891 讲的也很好

  • 三次握手
    动图
    在这里插入图片描述
    静止
    在这里插入图片描述
  1. 第一次握手:
    • Client 什么都不能确认;
    • Server 确认了对方发送正常,自己接收正常
  2. 第二次握手:
    • Client 确认了:自己发送、接收正常,对方发送、接收正常;
    • Server 确认了: 对方发送正常,自己接收正常
  3. 第三次握手:
    • Client 确认了:自己发送、接收正常,对方发送、接收正常;
    • Server 确认了: 自己发送、接收正常,对方发送、接收正常
  • 四次挥手
    动图
    在这里插入图片描述
    静止:
    在这里插入图片描述
    任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。
    当另 一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

举个例子:A 和 B 打电话,通话即将结束后,
A 说“我没啥要说的了”,
B回答“我知道了”,但 是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,
于是 B 可能又巴拉巴拉说 了一通,最后 B 说“我说完了”,
A 回答“知道了”,这样通话才算结束。

流量控制—滑动窗口

采用滑动窗口的方式进行流量控制
流量控制是为了控制发送方发送速率,保证接收方来得及接收。
接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。

拥塞控制

TCP的拥塞控制采用了四种算法,即慢开始 、 拥塞避免 、快重传 和 快恢复。
在网络层也可以 使路由器采用适当的分组丢弃策略(如主动队列管理 AQM),以减少网络拥塞的发生。
慢开始:cwnd大小一轮一翻倍
拥塞避免:cwnd大小到达ssthresh时不翻倍,慢慢+1
在这里插入图片描述

快速重传和恢复(fast retransmit and recovery, FRR)
快重传:收到三个重复确认ack,则执行快重传
快恢复:在拥塞时的cwnd直接减半,不归1,然后逐渐+1
在这里插入图片描述

对应协议

  • FTP:定义了文件传输协议,使用21端口。
  • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。 端口号22
  • Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计 算机上,可提供基于DOS模式下的通信服务。
  • SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
  • POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
  • HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

UDP

对应协议

  • DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
  • SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很 多,无连接的服务就体现出其优势。
  • TFTP(Trival File TransferProtocal),简单文件传输协议,该协议在熟知端口69上使 用UDP服务。
  • BOOTP(Boot Protocol,启动协议),应用于无盘设备。端口67、68
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态 配置IP地址。 端口67、68

5. 网络层

IP地址分类

IP地址分为网络号和主机号,
A类地址的前8位是网络地址,
B类地址的前16位是网络地址,
C 类地址的前24位是网络地址。

A类地址: 1.0.0.0~126.0.0.0

B类地址:128.0.0.0 ~ 191.255.255.255

C类地址:192.0.0.0 ~ 223.255.255.255

D类地址:224.0.0.0 ~ 239.255.255.255 (作为多播使用)

E类地址:保留

A,B,C是基本类,D、E类作为多播和保留使用。主机号,全0的是网络号,主机号全1的是广播 地址。

私有(保留)地址
A类:10.0.0.0 – 10.255.255.255
B类:172.16.0.0 – 172.31.255.255
C类:192.168.0.0 – 192.168.255.255

ARP协议

ARP(Address Resoltion Protocol) 地址解析协议
每个主机会在自己的ARP缓冲区简历一个ARP列表,以表示IP地址和MAC地址之间的 对应关系。

DCHP协议

其实是用UDP的应用层协议

ICMP协议

因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息


版权声明:本文为weixin_48713918原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。