第一章、计算机网络体系结构
协议:为进行网络中的数据交换而建立的规则,标准或约定
接口:同一结点内相领两层间交换信息的连接点,是一个系统内部的规定
服务:下尾为上层提供的功能调用
OSI模型:应表会传网数物
TCP/IP模型:应用层FTP DNS SMTP HTTP/传输层/网际层/网络接口层
第二章、物理层
比特率:单位时间内数字通信系统传输的比特数
波特率:单位时间内数字通信系统所传输的码元个数(脉冲个数),一个码元可以有多个比特
奈奎斯特定理无噪声信道中极限码元传输率为2WBaud,W是理想低通信道的带宽,单位是赫兹,若用V表示每个码元离散电平的数目
香农定理:极限数据传输速率=Wlog2(1+S/N)
第三章、数据链路层
零比特填充:五个连续的1后面就补0
流量控制与可靠传输:滑动窗口机制
随机访问介质访问控制
CSMA协议:1-坚持:信道忙则继续侦听至空闲,非坚持:信道忙则放弃侦听,等待随机时间后再侦听,p-坚持:信道忙则下一时隙再侦听,空闲以概率P发送数据,1-p推迟下一时隙
CSMA/CD协议:发送前先侦听,空闲则立即发送数据并进行冲突检测,如果信道忙则继续侦听信道,直到信道变为空闲,半双工,争用期是两倍单程传播时延。为了检测到可能存在的冲突,帧的传输时延至少要两倍于信号在总线中的传播时延
CSMA/CA协议:碰撞避免:预约信道,ACK帧,RTS/CTS帧
解决冲突皆采用二进制指数退避算法
第四章、网络层
NAT网络地址转换,将私有网络地址转换为公用地址,对外隐藏内部管理的IP
IPv4地址:A0起,八位网络号,B10起,16位网络号,C110起24位网络号,主机号全0是网络本身,全1是广播地址,127起是回环地址
ARP地址解析协议:IP地址到MAC地址的映射
ICMP网际控制报文协议:允许主机或路由器报告差错和异常情况
DHCP协议:给主机动态分配IP地址
路由协议RIP :优先跳距离短的路径,最多允许15跳,每30秒广播一次RIP路由更新信息
路由协议OSPF:链路变化时才用洪泛法向所有路由器发送信息
第五章、传输层
TCP:可靠有连接,三握四挥,流量控制与拥塞控制
udp:不可靠无连接,无连接,首部仅8字节
第六章、应用层
域名系统DNS:递归查询/递归与迭代相结合
文件传输协议FTP:采用C/S工作方式,使用两个并行的TCP连接
cookie与session:cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
滑动窗口协议
双方都有发送窗口和接收窗口,发送方每收到一个确认,就把发送窗口向前移动一个分组的位置,接收方一般采用累计确认方式(即累计重传协议),连续接收到的分组只发送最后一个分组的确认。另外还有1比特协议(送一帧等一帧)与后退n协议(可以发多个帧,但若前面某个帧
帧同步(RST即时战略)和状态同步(MMO大型多人游戏)
帧同步:服务器转化客户端操作,每个客户端在固定逻辑帧执行该帧所有客户端的操作命令,在严格一致的时间轴上执行同样的命令序列得到同样的结果
优点开发方便,打击反馈好,网络流量小
缺点断线要追帧,难反外挂,客户端计算压力大,一致性要求高,服务器等全部的第N帧到了再发下一帧操作,需要平滑插值过渡处理
状态同步:服务器承载所有计算,客户端只做表现
优点断线易重连,防外挂
缺点打击反馈不够精准,所有表现由服务器推送,各表现难契合,
三次握手:
客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认
服务器收到SYN包,需要发出ACK包确认,同时自己也发送一个SYN包,此时服务器从 LISTEN状态进入SYN_RECV状态
客户端收到服务器的SYN+ACK包,向服务器发送确认ACK,此包发送完毕,客户端和 服务器进入ESTABLISHED状态,完成三次握手
握手过程中传送的包不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据, 理想状态下,一旦TCP建立,在通讯双方中任何一方主动关闭连接之前,TCP连接都将被一 直保持下去
四次挥手:
主动关闭方发送一个FIN包,用来关闭主动方到被关闭方的数据传输,此时进入 FIN_WAIT1状态,也就是主动方告诉被动方:我已经不会再给你发送数据了(当然,在FIN 包之前发送出去的数据,如果主动方没收到对应的ACK确认报文,主动方依然会重发这些 数据),但是此时主动关闭方还可以接受数据
被动关闭方收到FIN包后,发送一个ACK给对方,进入CLOSE_WAIT状态,主动关闭方 收到ACK确认后进入FIN_WAIT2状态
被动关闭方发送一个FIN包,用来关闭被动关闭方到主动关闭方的数据传输,此时进入 LAST_ACK状态。也就是告诉主动关闭方,我的数据也传完了,不会再给你发送数据了
主动关闭方收到FIN后发送一个ACK确认给被动关闭方,进入TIME_WAIT状态,被动关 闭方接受到ACK后进入CLOSE状态,至此,完成四次挥手断开连接
主动关闭方进入TIME_WAIT之后,会等待2MSL(最长报文存活时间)时间,如果这个时 间过去以后没有收到对方任何响应,就关闭连接,销毁资源,进入CLOSE状态。之所以要 等待2MSL时间,是因为这样可以防止最后发送的这个ACK丢失。在TIME_WAIT状态下等待2MSL时间,是为了能够正确处理第一个ACK丢失的情况 下,能够收到对端重传的FIN,然后重传ACK。
用户数据+应用首部构成应用数据; 应用数据在传输层+TCP首部,形成TCP段; TCP段在网络层+IP首部,形成IP数据报; IP数据报在网络接口层+以太网帧头帧尾,形成以太网帧,然后发送到网络上;
传输过程:一开始按照四层模型完全封装 到达路由器时:解以太网帧头帧尾、解IP首部、再封装IP首部、封装以太网帧头帧尾,前往 下一个路由... 到达目的地址:按照封装顺序完全解封装
关于连续ARQ协议内容: ARQ即自动重传请求,当发送方发送数据后,超时计时器开始计时,当超时计时器到期时 没收到对端的确认报文,则发送方重新发送数据。
关于TCP/IP实现流量控制: 流量控制的意义:使得接收方来得及处理发送方发送的数据。 流量控制主要通过滑动窗口实现:滑动窗口
拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路避免过 载。 TCP/IP实现拥塞控制有四个算法:慢开始、拥塞避免、快重传、快恢复。
慢开始和拥塞避免算法: 慢开始算法的核心是从小到大逐渐增大拥塞窗口的数值。通常在刚开始发送报文时,先把拥 塞窗口设置为一个最大报文段MSS的数值,而在每收到对上一轮报文段的确认后,就把拥 塞窗口的数值加倍。 为了防止拥塞窗口增长过大引起网络阻塞,还需要维护一个慢开始门限的状态变量,当拥塞 窗口的值小于慢开始门限时,使用慢开始算法,一旦拥塞窗口的值大于慢开始的门限值,就 改用拥塞避免算法。 拥塞避免算法的思路时让拥塞窗口缓慢增大,收到每一轮的确认后,将拥塞窗口的值加1, 而不是加倍,这样拥塞窗口的值按照线性规律缓慢增长。 无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(没有按时接收到 确认),就把慢开始门限设置为出现拥塞时发送窗口的一半,但最小不能小于2个MSS值, 而后把拥塞窗口的值重新设置为1个MSS,执行慢开始。
快重传和快恢复算法: 快重传算法首先要求接收方每收到一个失序的报文段后就立即发送重复确认(重复发送对前 面有序部分的确认),而不是等待自己发送数据时才进行确认,也不是累积收到的报文发送 积累确认,如果发送方连续收到三个确认重复,就应该立即重传对方未收到的报文段(有收 到重复确认,说明后面的报文段都送达了,只有中间丢失的报文段没送达)。
快恢复算法是当发送方连续收到三个重复确认时,就把慢开始门限减半,这是为了预防发生 网络拥塞。注意接下来不执行慢开始算法。由于发送方现在认为网络很可能没有发生很严重 的阻塞(如果发生了严重阻塞的话,就不会一连有好几个报文到达接收方,就不会导致接收 方连续发送重复确认),因此与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口的值
不设为1个MSS),而是把拥塞窗口的值设为慢开始门限减半后的值,而后开始执行拥塞避 免算法,线性地增大拥塞窗口。