以下为本人的学习记录,写这些文章目的为做笔记,加深记忆,并未整理订正为专业教学交流内容,所以结构有些混乱,思路比较跳跃,内容也都是自己的理解,不一定正确。若你不经意间发现了这篇文章,如果您有耐心的话,可以给我一些建议或者指出文章的问题(无论是哪个方面)。
感谢!!
上午:
早起从学习网络开始:
之前认为跨网段通信是源主机向目标主机通过路由器发送arp广播
今天通过老师讲解后发现实际情况其实是这样的:
源主机在他仅在所属网段广播arp,如果连接有目标主机的路由器收到后便会回复源主机,然后路由器将自己的mac地址回复给源主机,源主机便将数据包发送给路由器,再由路由器对应端口在其所属的网络进行广播,如此,一层一层的接力传送,整个传输过程中,源ip和目标ip一直不变,原mac和目标mac在变(为参加接力传输的端口的网卡的mac)
网络分类:
net网络,任意数量主机相连的网叫网络
internet互联网,数台主机跨网段相连的网络
Internet因特网,特指全球主机相连互联网
LAN(Local Area Network),局域网,网络技术:Ethernet(以太网 )
WLAN(Wreless LAN)无线局域网
ISP, Internet service provider, 网络服务提供商,因此我们拉宽带就是将自己的电脑连到isp的网络
接口分类
fastEthernet,快速以太网口,局域网的连接
serial 串口,连接路由器
家庭联网方式
电话线入户(利用 猫modem 将模拟信号转化为数字信号)
光纤入户(利用 光猫 将和光信号转化为数字信号)
网线入户,左为广域网(Wide Area Network),右为局域网
家庭路由结构
实际上 网络分为公网和私网,公网相当于真正的所有主机IP都唯一且互联的网络,而私网是小型的网络,私网内的ip在公网是查询不到路径的
那私网是怎么上网的呢?
每个私网内部的主机ip是不同的,若想连上公网,则向路由器发送信息,连接到公网的路由器会将私网ip转化为路由器的ip,这里用的技术为NAT(Network Address Translation),实际使用的为PAT(Port Address Translation),多个私网ip共用一个ip连接公网,再用端口号对这些私网ip进行区分
物理层:
物理层主要是定义接口标准,线缆标准,传输速率,传输方式等
有三种信号
模拟信号-连续长距离,数字信号-非连续短距离,光信号
如下图:网线传输数字信号,传输距离不能超过100m,因此长距离传输 需要利用传输模拟信号的电话线或光纤,在需要转为数字信号的地方加装猫或光猫解调信号。
数据链路层:
数据链路层限制包最大为1500字节
数据链路层以帧为传输单位,帧尾(eoh)+ip数据报+帧头(soh),不同协议帧格式不同
但在传输时IP数据报中可能包含eoh或soh的码,因此在发生时 如果IP数据报中有 esc,soh,eoh的时候在其前面+一个esc 将其转义避免冲突,接受方在IP数据报中有esc时就删除esc,就能接收到正确的数据了
fcs为差错检验码,接收方收到数据后算出fcs与接受的fcs对比,相同说明data没问题,不同说明data有问题,则会丢弃该帧
网络层:
网络层数据格式
ARP Address Resolution Protocol 地址解析协议
ARP(Address Resolution Protocol)是一种用于将IP地址映射到MAC地址的协议。在一个局域网(LAN)中,当一台设备想要发送数据包给另一台设备时,它需要知道目标设备的MAC地址以便将数据包正确地发送到目标设备。而ARP协议就是解决这个问题的。当一台设备知道目标设备的IP地址但不知道其MAC地址时,它会发送一个ARP请求广播到网络上,询问目标设备的MAC地址。目标设备收到这个请求后会回复一个ARP响应,包含自己的MAC地址。发送方设备收到响应后就可以建立起目标设备的IP地址和MAC地址的映射关系,然后将数据包发送到目标设备。
实现原理:
ARP协议的实现原理涉及到以下几个关键步骤:
-
ARP请求(ARP Request):
- 当一台设备想要发送数据包给另一台设备时,它首先检查本地的ARP缓存(ARP Cache),如果已经有目标设备的IP地址到MAC地址的映射记录,则直接使用这个映射,否则就需要发送一个ARP请求。
- ARP请求是以广播的形式发送到局域网中的所有设备。这个请求包含了发送方设备的IP地址和MAC地址,以及目标设备的IP地址。ARP请求的目的是询问目标设备的MAC地址。
-
ARP响应(ARP Reply):
- 接收到ARP请求的目标设备会检查请求中的目标IP地址是否与自己匹配,如果匹配,则会发送一个ARP响应。
- ARP响应是以单播的形式发送给请求方设备的,它包含了目标设备的IP地址和MAC地址。
- 请求方设备接收到ARP响应后,会将目标设备的IP地址和MAC地址的映射记录到自己的ARP缓存中,以便将来的通信使用。
-
ARP缓存(ARP Cache):
- ARP缓存是设备中存储IP地址到MAC地址映射关系的地方,用于加速后续的通信过程。
- 当设备发送或接收数据包时,它会先查找ARP缓存来获取目标设备的MAC地址,如果找到了对应的映射,则可以直接发送数据包,而不需要进行ARP请求。
- ARP缓存中的条目有一定的生存周期,超过一定时间后会被删除,以便及时更新设备之间的地址映射关系。
-
ARP表的维护:
- 设备会定期发送ARP请求来更新ARP缓存中的条目,以确保其中的映射关系是最新的。
- 当网络拓扑发生变化时(比如设备重新启动、IP地址更改等),设备也会发送ARP请求来更新ARP表。
总的来说,ARP协议通过广播和单播的方式实现了设备之间IP地址到MAC地址的动态映射,使得设备能够在局域网中准确地定位和通信。
ICMP Internet Control Message Protocol 网络信息控制协议
ICMP(Internet Control Message Protocol)是TCP/IP协议族中的一个核心协议,用于在IP网络上传递控制消息。
它是由网络设备(如路由器)和主机用来向其他设备报告错误情况或请求某些服务的一种机制。
以下是 ICMP 的主要功能和特点:
-
错误报告:ICMP主要用于报告网络通信中出现的错误情况。例如,当一个路由器收到一个无法转发的数据包时,它会发送一个ICMP报文给源主机,通知它发生了网络不可达的错误。
-
网络探测:ICMP包含一些工具,如ping和traceroute,用于诊断网络问题和测试网络连通性。ping命令发送ICMP回显请求到目标主机,如果目标主机收到请求,就会返回一个回显应答,从而可以确定目标主机是否可达。
-
路径MTU发现:ICMP还用于路径MTU(Maximum Transmission Unit)的发现。它允许通信的两个端点发现它们之间最大传输单元的大小,以避免IP分片和重组。
-
超时处理:当IP数据包在网络中传输时,如果遇到了传输时间过长的情况,就可能会被丢弃。ICMP的超时消息可以通知源主机数据包的传输已经超时,从而触发重传机制。
-
路由选择器通告:ICMP还包括用于在网络中传递路由信息的路由器通告消息。这些消息允许路由器向相邻路由器通告其存在和路由选择能力。
总的来说,ICMP在TCP/IP网络中扮演着重要的角色,通过传递控制消息,它能够帮助诊断网络问题、优化网络性能,并确保网络的稳定运行。
实现原理:
ICMP(Internet Control Message Protocol)的实现原理涉及到两个主要方面:ICMP消息的生成和处理。
-
ICMP消息的生成:
- 当网络设备或主机遇到某些情况时(如路由不可达、超时等),需要向其他设备发送ICMP消息以通知它们发生了何种情况。
- 生成ICMP消息的过程通常由操作系统的网络协议栈完成。当网络设备或主机检测到需要发送ICMP消息时,它们会调用相应的网络协议栈功能,生成ICMP报文并填写报文的各个字段,包括类型、代码、校验和等信息。
- ICMP消息的类型和代码决定了消息的具体含义和分类,比如类型为0表示回显应答,类型为3表示目的地不可达等。
-
ICMP消息的处理:
- 接收方设备收到ICMP消息后,会根据报文中的类型和代码字段来确定消息的含义,并进行相应的处理。
- 操作系统的网络协议栈负责接收和解析收到的ICMP消息,然后将解析后的信息传递给上层应用程序或网络协议处理程序。
- 不同的ICMP消息类型有不同的处理方式。例如,对于回显请求(Ping),接收方主机会返回一个回显应答;对于目的地不可达的消息,接收方主机可能会更新路由表或者发送一个通知给上层应用程序。
总的来说,ICMP的实现原理涉及到在网络设备和主机之间生成和传递控制消息的过程,以便实现网络的管理、诊断和控制功能。