计算机网络读书笔记(总揽+链路层+网络层)

2020-09-16 | Tags: 计算机网络 读书

总揽

中心主题
采用5层模型阐述
物理层
如何在不同介质上以电气/模拟信号传输比特
数据链路层
如何在两台直连的计算机之间发送有限长度的信息,并具有指定级别的可靠性。以太网和802.11是链路层协议的例子
数据链路层.mindmap
网络层
处理如何吧多条链路结合到网络中, 以及如何吧网络与网络链接成互联网
任务包括找到传输路径。IP是网络层主要协议的例子
传输层
增强了网络层的传递保证,有更高的可靠性,提供数据交付的抽象。TCP是传输层协议的例子
应用层
包含了使用网络的应用程序,如HTTP,DNS协议等

数据链路层

数据链路层
目标:实现有效可靠的完整信息块(帧)通信的算法
向网络层提供一个定义良好的服务接口
错误处理
流量控制
提供给网络层的服务
帧服务
无确认无连接--语音
有确认无连接--Wi-Fi(按帧重传比按数据包重传更划算)
有确认有连接--重型协议
帧生成
字节计数--一旦错误就无法同步帧
标志字节区分帧--用特殊字符区分
标志比特区分帧--用特殊比特模式区分,如01111110
以太和Wi-Fi采用标志比特区分的模式;比特模式称为前导码(典型72位)
差错控制
纠错码
海明码
计算负载较重,适用于非稳定网络,如Wi-Fi,减少重传次数
检错码
奇偶,校验和,循环冗余校验CRC
计算负载轻,适用于高品质网络,出错直接重传
数据链路协议
基本协议
无错且容量无限的协议
无错的单工停 - 等协议
需要确认帧
有错的单工停 - 等协议
需要确认帧,计时器,seq和ack
发送段发送之后等待ack,错误或者超时重发
接收端接受检查seq是否为预期,是等话接受,否则抛弃
双工滑动窗口协议--窗口的本质是为了表明一段可以发送和接受的帧编号,目的是为了充分利用数据链路
1位滑动窗口协议--停等协议
回退N协议
选择重发协议

网络层

总揽
网络层关注的是如何将源数据包一路送到接收方
需要知道网络拓扑结构并从中选择适当的路径
连接分类
数据报网络-数据包称为数据报
面向无连接服务
虚电路网络-连接称为虚电路
面向连接服务
数据报效率低但是容错能力高
虚电路效率非常高但是容错低,出现错误就得重新建立虚电路
路由算法
网络层软件的一部分
负责确定一个入境数据包应该被发送到那条线路上
主要能力:
1转发数据包
2更新路由表
各种路由算法
算法
最短路径-dijkstra
前提:知道整个网络拓扑情况
泛洪-flooding-将入境数据包发送到所有其他线路
只知道本地网络知识,鲁棒性非常好
ttl,每跳减一,防止过多数据包
距离矢量算法
算法
每个路由维护一张表(矢量),表中列出了当前已知的到每个目标到最佳距离,以及所使用的链路
这些表通过邻居之间的相互交换信息而不断更新
问题
收敛到最佳数据非常慢, 对于坏消息会有无穷计数问题
链路状态路由
算法 
获取所有邻居节点和距离
将信息发送给所有路由器
构造整个网络的拓扑图,并计算单源最短路径
层次路由
划分区域和层次进行路由
只用记录对区域出口,节省路由表项
广播,组播,选播
拥塞控制
拥塞控制针对整个网络,流量控制针对特定链路
拥塞控制的途径
网络供给
流量感知路由
准入控制
流量限制 
负责脱落
网络互联
将多个网络连接起来形成网络互联,即互联网(Internet)的基础
网络连接技术:
IP协议
使用IP协议作为不同网络间公共网络层的头,头中包含了最终接收方的地址
网络隧道
将不同网络包结构当数据整体打包
网络路由
层次结构路由,通过不同层次转发数据包
数据包拆分
透明分段
入口路由器进行分段,到出口路由组合
非透明分段(IP协议使用)
避免在中间路由器上重新组合,重组在目标机器上执行
硬件
交换机/网桥
工作在链路层,只能处理轻微的协议转换,如10M,100M,1000M以太网的交换机之间交换帧
路由器
工作在网络层,对不同网络间相互连接和协议转换
路由和交换机的区别
在路由上,数据包被从帧中提取出来,数据包中的IP地址被用来决定转发的路径
在交换机中,整个帧是根据其MAC地址传送的
Internet网络层实现
IP是网络层协议,(Internet Protocol)
设计目标:网络互联--IP的任务提供一种尽力而为的吧数据包从源端传输到接收方到方法(不提供任何保证),而无须考虑这些机器是否在同一个网络,也不必关心他们之间是否还有其他网络。
IP路由协议
IPv4
IP帧包头格式(20个字节的定长部分和可选的变长部分)
IP地址
前缀区分网络,其余确定主机号,利用子网掩码隐藏主机号,确定网络号
子网:在内部将一个网络块划分为几个部分供内部网络使用
cidr--无类域间路由
根据ip地址的前缀进行判断
根据前缀的位数进行不同路由转发
最长匹配前缀--前缀可以重复,优先匹配最长可以匹配的前缀网络路由
NAT--网络地址转换
为一个网络分配一个公网IP,网络内部使用内部IP地址
内部ip访问外部网络时,必须执行一个地址转换,把内部IP地址转换成共享公共IP地址。
内网IP地址和端口通过TCP或者UDP的端口字段在NAT盒子中进行映射
NAT盒子记录了出站流量IP和映射后的端口的对应关系,但是如果NAT盒子崩溃,对应关系就会丢失,导致链路失败
由于TCP,UDP的端口字段只有16位,所以最多映射65536个机器到同一个公网IP上
内部地址使用三种私有化范围(10,172.16,192.168),这些地址的数据包不会出现在Internet上
IPv6
更长的地址,128位
对头进行了简化,只有7个字段,减轻路由器压力
更好支持各种选项,变成可选模式
更好的安全机制,认证扩展头
Internet扩展协议
ICMP--Internet控制消息协议
路由处理数据包时可以通过ICMP向源端报告
如对数据包分段操作
测试Internet
ARP
发送和应答IP-MAC的对应关系
为一台主机设置新IP后,对自己的IP进行广播查找,如果有应答,即IP冲突
DHCP
计算机启动时如果没有IP,就广播一个DHCP DISCOVER包
DHCP服务收到后回复DHCP OFFER
OSPF内部网管路由协议
BGP外部网管路由协议
可以自由进行路由限制
移动IP