IP数据包(报)的结构
- 版本==ipv4 ipv6 ;首部长度 == 首部的长度 ;区分服务 == 视频聊天/迅雷下载 加急否;总长度 == 数据包总共长度
- 标识 == 编号 1 2 3 4 ; 标志 == 太大传不了,按照MTU最大传输单元分成片 (快递 大包裹 变小包裹);片偏移 == bit序列/8
- 生存时间TTL == 过一个路由器 TTL--,防止在互联网上一直打转;协议 == 数据部分的上层协议(告诉里面是什么东西);首部检验和 == 检查首部出错否 被改否
- 原地址 :ip
- 目的地址:ip
- 可变部分:用于排错、安全等,内容丰富
网络层干什么,五层协议都干了什么?
网络层:在不同网络之间,尽力转发数据包,基于数据包的IP地址转发
(若丢失,不管,可靠交付不是由网络层保证,不负责顺序)
应用层:整块
传输层:分成3个 编号1 2 3
网络层: 头部(源ip地址 目标ip地址 ……) + 数据部分
数据链路层: 源MAC地址 目标MAC地址 + 【源ip地址 目标ip地址 + 数据部分】 (帧头 帧尾 FCS)
传输层:~~~~~~010101
几个设备
- 集线器:物理层设备,延长信号的传输距离
- 交换机:数据链路层设备,根据MAC地址转发数据!!看目标mac地址,决定从哪个接口出去,给目标mac地址的主机/路由器 发过去
- 路由器:网络层设备,拆分帧,看目标ip地址,选择路线
IP地址与MAC地址
子网掩码的作用
由子网掩码,看目标ip地址是否跟自己在同一个网段,
如果在同一个网段,(需要把数据包给目标主机)由ARP协议,广播得到计算机mac地址,给目标计算机。
如果不在同一个网段,(需要把数据包给网关)由ARP协议,广播得到路由器mac地址,给路由器。
这就决定了数据链路层,目标mac地址 是本网段的目标计算机,还是路由器的mac地址。
(ip地址决定了起点终点,mac地址决定了下一跳给谁)
(不设置网关,只能访问本网段,不能其他网段)(网关可以任意,约定是 本网段第一个地址 10.12.0.1)
(若全球PC都在同一个网段,则不需要ip地址,但是冲突、病毒传播会增加)
网络层向运输层提供什么服务
虚电路服务(指定好了怎么走)
数据包服务(数据包里面写着目的地址,由路由器选择中间过程怎么走)
网络通畅的条件
数据包 有去有回
沿途的路由器必须知道到目标网络下一跳给哪个接口
沿途的路由器必须知道到源网络下一跳给哪个接口
网络层有哪些协议
ARP
IP协议(RIP / OSPF / BGP)
ICMP
IGMP
ARP协议
10.0.0.1想给10.0.0.3发消息
10.0.0.1先发广播(目标mac地址全FFF),问问目标ip地址的MAC地址是多少,得到10.0.0.3的回复。
记录之后,以后再发消息,直接发给他。
ARP欺骗的例子:
P2P终结者:当A、B要解析网关的mac地址,PC1告诉A、B是自己的mac,
然后自己设置规则,再转发给网关路由器,控制流量。
ICMP协议(网际控制报文协议)
用来ping,测试网络畅通否
TTL 每过一个路由器 就--,若==0,则丢弃
IGMP协议(互联网组管理协议)(组播)
点到点
广播
组播==多播
IP协议
RIP OSPF
静态路由协议(管理员告诉你怎么走)
CMD就可以配置了,指定告诉你 静态的 下一跳怎么走
动态路由协议(自己学习、自己探索)
RIP协议
最早 30s周期性广播 选择跳数最小
E保存个最佳路径
A宕机后,3个30s没广播了,B告诉C,去1网段别找我了,A不行了。
OSPF协议(open shortest path first)
特点:带宽优先(rip是跳数优先) 支持多区域 触发式更新
3个表:
邻居表: 每隔10s (局域网是2s) 发个hello包 看看还在不
链路状态表
计算路由表:与邻居交换一下邻居表,算出来路由表,优先走带宽高的(最短路径优先算法?)
分区域:如果全国都交换路由表,那就表很大!
BGP协议
自治系统之间,用BGP协议
VPN
NAT网络地址转换
我学校内100台主机,我的PC,连接到外网的BBS去发帖,结果BBS记录的ip 不是我的内网IP,而是学校的公网IP。
因为返回的数据包,如果是内网IP,内网路由器怎么找? 所以只能是公网IP。
端口映射
外面的人 通过111这个公网IP,访问到10.0.02这个内网ip
可以用111的3389端口,映射内网PC1的3389端口,to 远程桌面连接
可以用111的4000端口,映射内网PC2的3389端口