计网-7
IPV4里面,需要注意的就是单位问题,有的地方单位是4B,或者8B,1B,需要区分
具体的功能看下大致清楚就行了
生存时间那边补充一下,路由器在转发之前先减去这个时间,然后转发的时候再去判断
如果超时了直接丢掉不转发
几个需要补充的注意点:
总长度为首部和数据之和的长度,而不是单纯的数据长度
标志位占三位,但是只有后两位是有意义的,这边的“位”真正指的是二进制位
同时其实想要强调的是第一位是无效的,不要去看,很容易判错
0X45作为一个IP数据报的开始,其中4代表版本号是IPV4,5代表总长度5·4B=20B
可以用于解题时的定位,此外,如果考场里面有这种题,直接把对应号写在对应的区域上
肯定是会给定参考首部的,直接把对应的十六进制写到相应区域,方便看,否则易混淆
分片里面,需要注意的一方面是,数据长度+首部长度需要小于相应的MTU长度
还要注意的是,数据长度需要是8B的整数倍,这个很容易忽略…
数据报的分片是在各个路由器的,组装是在目标主机的,至少对于IPV4而言
IPV4里面,D类地址不能分配给主机,所以以后题目里面看到这种开头的可以直接排除
环回地址不是说不能做目标地址,可以,但马上就会被返回主机,常用于测试网络
既然是测试网络那么肯定是可以做目标地址的…
路由器每个端口都有一个MAC地址,每个端口都有一个IP地址,且要和其他端口相连的话
那么路由器的端口和其他端口之间也需要是同一个网络内的,否则无法通信
这边先留一个坑,目前的我暂时没办法确认,路由器互联端口是否需要同网段
似乎是,同网段的可以直接实现端到端通信,不在同网段就需要其他的路由转发
那意思就是同网段才可以直接通信
这个应该是对应以太网类似的,如果是PPP类型,那么就可以实现不需要同网段的连接
具体还没研究透,但估计PPP应该是可以实现不同互联的,这一点稍微注意一下吧
NAT工作简述:
其实就是简单的用路由器的地址去访问公网上的东西,私网地址是不能用于访问的
在出去以后其实这个数据帧就已经实际意义上变成路由器的帧了,外界也都是这样看的
只有到了局域网里面,路由器才会拆回去把数据返回私网内的主机
在外边路由器是你的代表,在家里路由器把你的东西转发出去,也把东西正确还给你
补充:
路由器在接受到数据帧的时候是要拆包、重新封装的,所以MAC就直接拆掉丢干净了
封装的就是自己的MAC,通过查询IP数据报里面的IP来选择下一跳地址
出去的时候,NAT路由器改变源地址,回来的时候NAT路由器改变目的地址
一般路由器的转发是不会改变IP地址,而NAT的IP地址是要变的(仅有NAT这个情况会变
在路由转发过程中,路由器会拆封这个数据帧,把下一跳MAC作目标地址,自身作源地址
所以需要注意的就是和原先106页上面的东西区分,不需要路由器转发是不会变的
但一旦经过路由器转发,那么MAC地址就会改变,注意是“目标地址”和“源地址”
交换机是不会变的,仅仅改变一个发送地址和接收地址而已,目标和源不会去改变
私有地址、公有地址也要区分,如果是考察分配问题,那么私有地址是肯定不能分配出的
同时转发的时候也是不管的,丢掉!汇报么就汇报一个不可达,书上对ICMP讲得很粗略
A、B、C类地址,分别对应8、16、24位首位,而一共32位,相应主机号就会比较容易记忆
子网,相当于在外部网的情况下自己内部分了个网,这个是个小集体,外界不可视
192.168.85.0变成了192.168.85.1.0 - 192.168.85.2.0,逻辑上就划分了两个子网出来
子网掩码就不多说了,单纯就是用来指明网络号是哪几位,顺便可以指明主机号的位数
划分子网的掩码不论是CIDR还是自己划分,意义是一样的,指明网络号,指明主机号
路由聚合,其实本质是看能不能放在一个子网里面被一个子网表示
通俗来说就是看有多少位是重叠的,重叠位就可以视作是一个网段,其他视作是子网了
默认路由算法简述补充:
先提取出IP地址,然后找相应的网络号找转发方向
一个个找下去,如果找到了那么就转发出去,没找到就继续向下找
如果找到一个默认路由那么转发给默认路由,如果什么都没找到匹配的,就转发失败
默认路由是一定匹配成功的,至于到底转发到哪里,就不知道了
ARP和MAC地址等:
因为在实际链路层必须要通过MAC地址来完成传输,所以光有IP不够,还需要IP和MAC映射
基本流程是,A发现没有B的MAC地址的时候,通过IP广播一个帧,其包含了A的MAC和IP地址
B收到以后就能知道A的MAC和IP地址,直接进行单播返回B的MAC地址
那么A就得到了B的IP和MAC地址的映射关系,因而就可以通过单播方式传输数据
路由器层面只能完成IP地址之间的互相识别,而在交换机、链路层只能完成MAC的识别
如果只有MAC是能传的,只有IP是没法传的
在做题的抽象理解上面,可以理解为ARP取得另一个主机/路由器的MAC、IP地址的映射
因而A就可以和另外一个路由器/主机间进行独播而不必广播
PS:默认网关是一个设备,硬件设备
补充:
ARP、MAC均是只能在一个局域网里面进行通信的方式,都是针对一个局域网的
同网段内找主机,不同网段内找路由器,一般做题里面都默认一开始谁都不知道谁在哪的
即使是接口相连的,互相的MAC地址也不是默认知道的,不然要ARP干嘛(主机和主机间
ICMP是基于IP协议的,因为其“封装在IP数据报里面”所以必然是由IP协议支撑的
默认网关、连接、IP重叠、子网划分、路由器下一跳等具体型IP问题:
下一跳,指代的是下一次需要跳到的路由器的端口,这里说的是和路由器直接相连的端口
子网划分:
均匀划分,这类情况不可能产生重叠问题,放心大胆划分即可,直接平均分配
只需要注意子网全零、全一是不做分配的即可,不太可能会错
非均匀划分:
这个就比较复杂,需要考虑两件事:第一件事是是否会产生重叠问题(哈夫曼编码问题
第二件事是,能否用有限个子网表达整个网络的问题,或者说子网最大、最小分别是多少
重叠问题的本质是编码前缀的重复,需要保证这一点的不重复
那么划分上面,就从大到小划分,按照哈夫曼来,建议画一棵满二叉哈夫曼,具体去选
具体的选择思路课后有两道习题:38、65
在考察子网能否分配的时候,不仅仅要看子网是否是全零或者全一,还要看上面因素
路由器和路由器之间:
WAN口一般指代的是广域网口,家用路由器经常能看到(虽然现在基本WAN/LAN不区分罢了
LAN口一般指代连接局域网内的端口,可以有多个,虽然WAN口实际上也可以有多个就是
但LAN口一般是对应同一个网段,也就是同一个局域网内的
WAN口对应的往往是广域网,连接不同的局域网,这个似乎可以不在同一个网段内
路由器每个端口都是有其对应的IP地址和MAC地址的
一般而言,多LAN口都是用于分子网的,每个端口就是子网相应的IP地址(随便选?
然后每个子网过来到路由器里面,查询相应路由表得到下一跳的网关地址(也称默认网关
如果一个IP过来,你查询不到相应的网关地址,同时也查不到默认的网关(00的那个
那么就会报告错误的,这一块就是对应书上148页的内容
课后,16年统考那道题的意思是,这个端口分配的就是默认网关的内容,是特殊的
所以如果没有给定相应的匹配的默认网关就是过不去的,这个是那道题的具体含义吧
一般LAN口是划分子网用的,然后寻找下一跳是查询路由表得到的,而不是靠LAN口
附录:计算相关
一般都是考察IPV4的形式,可以记忆下特征,N位二进制可表2^N个编号,2^N-2个主机号
8位,255个,196=128+64、160=128+32等,这一些是可以靠记忆直接做到瞬时反应的
PS:课后习题里面坑一大堆一大堆,但个人觉得这才是综合题该有的水平
第九题就不说了,纯粹搞心态,80是8 0不是80,这一点未来注意,未来会列提纲
第十三题,A收到一个帧,网关路由器的相应MAC地址,坑一大堆
DHCP流程:
DHCP客户先广播一个DHCP请求,然后DHCP服务器收到后广播一个预分配IP信息
因为一开始DHCP服务器都不知道在哪,所以是需要广播的
同时DHCP服务器也不知道是谁发出来的,所以需要广播回去信息
DHCP客户返回一个接受IP地址消息,也是广播发送回去的,这里可能会困惑吧
实际上是因为DHCP服务器可能有多个,需要告诉别的服务器你们提供的地址我不需要
最终DHCP服务器再把这个地址真正给分配给该DHCP客户端,也是广播
这里也是一样,因为DHCP服务器还是不知道是谁发过来的,也需要广播回去
UDP/TCP介绍:
UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。
UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。如果在网络接口级别需要纠错功能,应用程序可以使用为此目的设计的传输控制协议(TCP)。
综上所述:
UDP是基于IP的简单协议,不可靠的协议。
UDP的优点:简单,轻量化。
UDP的缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。
这里需要注意一点,并不是所有使用UDP协议的应用层都是不可靠的,应用程序可以自己实现可靠的数据传输,通过增加确认和重传机制,所以使用UDP 协议最大的特点就是速度快。
TCP:
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为:TCP)是一种面向连接的、可靠的、基于字节流的通信协议
TCP把连接作为最基本的抽象单元,每条TCP连接有两个端点,TCP连接的端点即套接字
综上,DHCP需要无连接的UDP,而不能使用有连接的TCP
这是第五章的内容,暂时佛系一点
ICMP一些补充内容:
书上没有列举足够的例子是真的怕我看懂了
参数检验就是看参数是不是出错的问题,检验和不属于参数出错问题
终点不可达,意思就是不可达,根本到不了,包含IP地址不正确、没法送到这一类意思
是真正意义上的不可达,而不是说可达但时间不够了,那就变成TTL的问题了
改变路由和源点抑制还是比较好理解的,问题主要在不可达、以及相应的什么时候不返回
ICMP的检验和出问题了,那么是不返回的,不属于问题
拥塞丢弃是属于问题的,要返回(注意和数据链路层的流量控制等问题的区别!!!!!
另外个人觉得比较重要的一点是这样,数据链路层的错误,ICMP是不会去管理的
因为ICMP是一个网络层的协议,主要管辖的是路由、主机之间的网络有没有差错的问题
所以个人认为如果要出题,那么大概率也是围绕这样一个点去考察,别混淆
这一块还需要完善,后面会补充起来
其实主要想要补充的就是不要把一些数据链路层的错误给放在网络层思考
例如相邻节点不需要网络协调的时候,如果需要流量控制,那么是纯粹的链路层的事情
如果相邻节点(往往是路由器)之间需要协调流量控制的时候,往往是ICMP在干活
在网络层里面其中最容易混淆的应该是流量控制和拥塞控制,需要区分,很类似但不同
汇总一些协议英文、协议的工作层和简要概述(基于TCP/IP):
物理层 (Physical Layer)
协议:无固定协议(依赖于传输介质和物理接口)
功能:负责传输比特流(0和1),定义了电缆规格、集线器、中继器、网卡等物理设备以及有关电信号和光信号的规定。
数据链路层 (Data Link Layer)
以太网 (Ethernet):IEEE 802.3
PPP (Point-to-Point Protocol):点对点协议
CSMA/CD (Carrier Sense Multiple Access with Collision Detection):带冲突检测的载波侦听多路访问
功能:在物理层提供的比特流的基础上,建立数据链路连接,进行差错控制,实现透明的比特流传送。包括成帧、差错控制、流量控制等功能。
网络层 (Network Layer)
IP (Internet Protocol):互联网协议 (IPv4, IPv6)
ICMP (Internet Control Message Protocol):互联网控制消息协议
IGMP (Internet Group Management Protocol):互联网组管理协议
ARP (Address Resolution Protocol):地址解析协议
RARP (Reverse Address Resolution Protocol):反向地址解析协议
RIP (Routing Information Protocol):路由信息协议
OSPF (Open Shortest Path First):开放最短路径优先
BGP (Border Gateway Protocol):边界网关协议
功能:负责分组交换网中的路由选择、拥塞控制和交换节点中的分组转发,以及建立和维护网络连接等。
传输层 (Transport Layer)
TCP (Transmission Control Protocol):传输控制协议
UDP (User Datagram Protocol):用户数据报协议
功能:提供端到端的透明数据传输服务,包括可靠传输、流量控制和拥塞控制等。
应用层 (Application Layer)
HTTP (Hypertext Transfer Protocol):超文本传输协议
HTTPS (Hypertext Transfer Protocol Secure):安全的超文本传输协议
FTP (File Transfer Protocol):文件传输协议
SMTP (Simple Mail Transfer Protocol):简单邮件传输协议
POP3 (Post Office Protocol 3):邮局协议第3版
IMAP (Internet Message Access Protocol):互联网消息访问协议
DNS (Domain Name System):域名系统
SSH (Secure Shell):安全外壳协议
功能:为网络应用程序提供网络服务,如文件传输、电子邮件、Web浏览和远程登录等。
各层物理设备罗列,TCP/IP:
物理层 (Physical Layer):
网卡 (Network Interface Card, NIC): 网卡是计算机与网络介质连接的接口,负责将计算机的数字信号转换成网络传输的模拟信号,或者将模拟信号转换成数字信号。
集线器 (Hub): 集线器的主要功能是将多个网络节点集中起来,以星型拓扑结构通过电缆线对连接。它起到信号放大和中转的作用,但不具备交换功能。
中继器 (Repeater): 中继器的主要功能是延长网络的传输距离,它通过对数据信号的重新发送或转发,把信号送到更远的目的地。
数据链路层 (Data Link Layer):
网桥 (Bridge): 网桥是一种将两个或多个网络段连接起来的设备,它可以实现不同网络之间的数据交换,并起到过滤数据包的作用。
交换机 (Switch): 交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并将其存放在内部地址表中,通过在数据链路层上建立和维护内部MAC地址表,使用交换算法将数据包从一个输入端口转发至正确的输出端口。
网络层 (Network Layer):
路由器 (Router): 路由器是网络层的主要设备,它负责在不同网络之间转发数据包,以实现网络之间的通信。路由器通过路由表来确定数据包的转发路径。
传输层 (Transport Layer):
网关 (Gateway): 网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。
注意:传输层本身并不直接对应物理设备,而是与操作系统和网络软件相关。
应用层 (Application Layer):
服务器 (Server): 服务器是应用层的主要物理设备,它提供各种网络服务,如Web服务、文件服务、邮件服务等。