大纲
- [x] 一、Java基础(语言、集合框架、OOP、设计模式等)
- [x] 二、Java高级(JavaEE、框架、服务器、工具等)
- [x] 三、多线程和并发
- [x] 四、Java虚拟机
- [x] 五、数据库(Sql、MySQL、Redis等)
- [x] 六、算法与数据结构
- [x] 七、计算机网络
- [x] 八、操作系统(OS基础、Linux等)
- [x] 九、其他
七、计算机网络
1.停止等待协议
停止等待协议是最基本的数据链路层协议,它的工作原理是这样的。
在发送端,每发送完一帧就停止发送,等待接收端的确认,如果收到确认就发送下一帧。
在接收端,每收到一个无差错的帧,就把这个帧交付上层并向发送端发送确认。若该帧有差错,就丢弃,其他什么也不做。
其他细节:
停止等待协议为了可靠交付,需要对帧进行编号,由于每次只发送一帧,所以停止等待协议使用1个比特编号,编号0和1
停止等待协议会出现死锁现象(A等待B的确认),解决办法,启动超时计时器,超时计时器有一个重传时间。重传时间一般选择略大于“正常情况下从发完数据帧到收到确认帧所需的平均时间”。
2.滑动窗口协议
再说滑动窗口之前,先说下连续ARQ,连续ARQ又称Go-back-N ARQ,意思是当出现差错必须重传时,要向回走N个帧,然后再开始重传,也就意味着只要有一帧出现差错,即使已经正确的帧也需要重传,白白浪费时间,增大开销。为此,应该对发送出去但未被确认的帧的数目加以限制,这就是滑动窗口协议。滑动窗口指收发两端分别维护一个发送窗口和接收窗口,发送窗口有一个窗口值Wt,窗口值Wt代表在没有收到对方确认的情况下最多可以发送的帧的数目。当发送的帧的序号被接收窗口正确收下后,接收端向前滑动并向发送端发去确认,发送端收到确认后,发送窗口向前滑动。收发两端按规律向前推进。
连续ARQ是发送窗口大于1接收窗口为1的滑动窗口协议.选择重传ARQ是发送窗口大于1接收窗口大于1的滑动窗口协议。而停止等待协议相当于收发两端窗口等于1的滑动窗口协议。
滑动窗口指接收和发送两端的窗口按规律不断向前推进,是一种流量控制的策略。
3.Http1.0和Http1.1的区别
1.HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象。2.HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象。
4.Post和Get的区别
1.安全性上说:get的方式是把数据在地址栏中明文的形式发送,URL中可见,POST方式对用户是透明的,安全性更高。2.数据量说:Get传送的数据量较小,一般不能大于2KB,POST传送的数据量更大。3.适用范围说:查询用Get,数据添加、修改和删除建议Post
5.TCP/IP体系各层功能及协议
TCP/IP体系共有四个层次,分别为网络接口层Host-to-Network Layer, 网际层 Internet Layer, 传输层Transport Layer,应用层Application Layer。
5.1 网络接口层 -> 接收和发送数据报
主要负责将数据发送到网络传输介质上以及从网络上接收TCP/IP数据报,相当于OSI参考模型的物理层和数据链路层。在实际中,先后流行的以太网、令牌环网、ATM、帧中继等都可视为其底层协议。它将发送的信息组装成帧并通过物理层向选定网络发送,或者从网络上接收物理帧,将去除控制信息后的IP数据报交给网络层。
5.2 网际层 -> 数据报封装和路由寻址
网际层主要功能是寻址和对数据报的封装以及路由选择功能。这些功能大部分通过IP协议完成,并通过地址解析协议ARP、逆地址解析协议RARP、因特网控制报文协议ICMP、因特网组管理协议IGMP从旁协助。所以IP协议是网络层的核心。
网际协议IP:IP协议是一个无连接的协议,主要负责将数据报从源结点转发到目的结点。也就是说IP协议通过对数据报中源地址和目的地址进行分析,然后进行路由选择,最后再转发到目的地。需要注意的是:IP协议只负责对数据进行转发,并不对数据进行检查,也就是说,它不负责数据的可靠性,这样设计的主要目的是提高IP协议传送和转发数据的效率。
ARP:该协议负责将IP地址解析转换为计算机的物理地址。
虽然我们使用IP地址进行通信,但IP地址只是主机在抽象的网络层中的地址。最终要传到数据链路层封装成MAC帧才能发送到实际的网络。因此不管使用什么协议最终需要的还是硬件地址。
每个主机拥有一个ARP高速缓存(存放所在局域网内主机和路由器的IP地址到硬件地址的映射表)
举例:A发送B
(1)A在自己的