Fork me on GitHub

计算机网络学习笔记:(二)网络层


本文是计算机网络课程网络层部分的笔记。

由于是备战面试,因此跳过了物理层和数据链路层,下面只对上述两层简单回顾一下,对上述两层感兴趣的同学可以去原视频观看。

物理层和数据链路层简述

物理层:
1.网络设备的机械特性,电气特性,功能特性,过程特性
2数据通信的基础知识:数字知识,模拟知识
3频分多路复用
4时分多路复用

数据链路层:
1.封装成帧
2透明封装【转义字符】
3无差错接收【差错校验】
4点到点线路的数据链路层 PPP
5广播信道的数据链路层 CSMA/CD
6以太网 集线器,网桥,交换机
100M,1000M以太网

网络层提供的服务

网络层的功能:负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发。

如果丢了,不负责数据重传,也不负责顺序。

实现网络层功能的设备就是路由器。路由器只关心IP地址,选择下一跳在哪。

网络设备和OSI参考模型关系

计算机通信的过程是什么?

1应用程序准备要传送的文件;
2传输层,将文件分段,并且编号;
3网络层给每一段加上IP地址【目的地址与源地址】【数据包】
4数据链路层:【数据帧】
使用自己的子网掩码判断自己地址在哪个网段;使用自己的子网掩码判断目标地址在哪个网段。加上物理层的地址
两种情况:
①同一个网段:ARP协议广播解析目标IP地址的MAC地址
②不是一个网段:
FCS帧检验序列
5物理层传输二进制。【比特流】

image

集线器:增强信号
交换机:存储转发【链路层,两层设备】
路由器:接收比特流,根据数据包选择路径。【网络层设备,三层设备】

病毒是应用程序,路由器,交换机,集线器等都不会中病毒。

网络层协议

在TCP/IP协议族中,属于网络层的协议有:IP/ARP/ICMP与IGMP协议。

ARP协议:(Address Resolution Protocol)数据通信之前的操作。将IP地址通过广播,【广播不能跨网段】,目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。

ARP的功能:利用网络层地址(IP地址),来取得对应的链路层地址(MAC地址)。

Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址。现在的Mac地址一般都采用6字节48bit。

扫描本网段的IP地址

cmd下的命令gpedit.msc 组策略编辑器——脚本(启动/关机)
arp -a
本地链接——修复 清除缓存

使用ICMP协议的命令——Ping和pathping

ICMP(Internet Control Message Protocol):Internet控制消息协议。该协议是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机和路由器之间传递控制信息,包括报告错误,交换首先控制和状态信息等。

当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。我们可以通过Ping命令发送ICMP回应请求消息并且记录收到ICMP回应回复消息,通过这些消息来对网络或主机的故障提供参考依据。

Ping命令底层就是ICMP协议。

Ping time 查看延迟。
其中的TTL是生存时间,可以判断系统。Linux是64,windows是128,Unix是255
Ping 8.8.8.8 -t 一直ping下去
Ping 8.8.8.8 -l 2000 指定ping时数据包的大小。
Ping 8.8.8.8 -i 2 更改数据包TTL时间,能够跟踪数据包途径的路由器信息。

ping 估算网络状况。

pathping 跟踪数据包路径,计算丢包情况【功能更强】

tracert 10.7.1.53 在Windows上跟踪数据包路径的命令,不计算丢包情况。
traceroute 10.7.1.53 在路由器上跟踪数据包路径的命令

Ping命令能够产生流量,但不是应用程序。是网络层的程序。不需要应用程序支持。

IGMP——网络组播管理协议

点到点通信:每个人都可以自由调节进度
广播:一个网段中实现。跨不了路由器。
组播 = 多播,相当于频道。

IP数据报的结构

一个IP数据报由首部和数据两部分组成。

image

首部的前一部分是固定长度,共20个字节,是所有IP数据包必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

数据包最大1500-20=1480字节,超过就要分片了。

IP数据包首部格式 含义
版本 占4位,用来标识TCP/IP协议的版本 v4 v6
首部长度 占4位,一般是20个字节,可变长度一般不用。
区分服务 占8位,用来获得更好的服务。区分服务DS(Differentiated Services)QoS
总长度 占16位,总长度指首部和数据之和的长度,单位为字节。数据报的最大长度为2^16-1=65535字节。最大传送单元MTU(Maximum Transfer Unit),当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
标识(identification) 占16位,数据包分片后,便于重组
标志(flag) 表示是否完整。占3位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面“还有分片”,MF=0表示最后一个分片。标志字段中间的以为是DF(Dont Fragment)。只有当DF=0时才允许分片。【没有分片的时候为010】
片偏移 占13位,片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。数据第一个字节是整个数据包的第多少个字节
生存时间 占8位,TTL(Time To Live),防止路由环路时永不消失。Linux=64; Windows=128; Unix=255;据此可粗略估计系统
协议号 占8位,用来标识用哪个协议来处理。ICMP=1;IGMP=2;TCP=6;UDP=17;IPv6=41;OSPF=89
首部检验和 占16位,只校验数据报的首部,不检验数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化),不检验数据部分可减少计算的工作量。
源地址 占32位
目的地址 占32位
可选字段 长度可变,很少使用。IPv6没有可变部分。

IP协议

让路由器自动学习路由表的协议就是IP协议。

RIP、
OSPF
静态路由和动态路由(网络规模大时采用)。

网络畅通的条件————数据包有去有回。

路由器必须知道到目的地址网段的下一跳是谁。
目的地址无法到达【路由表】;请求超时【有可能是无网关设置】。

静态路由:需要管理员gei告诉路由器所有没有直连的网络(如何转发)下一跳给谁。
静态路由的缺点:适合于小规模的网络,不能自动调整路由【以适应网络的变化】。

动态路由
RIP协议:周期性地广播路由表,选择最佳路径的标准是跳数,30秒更新一下路由信息。最大跳数为15跳。

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!