网络层(IP协议 路由器)
网络层在TCP/IP协议栈中的网际层
网络层的主要任务:
网络层向运输层提供怎样的服务
网络层寻址问题
路由选择问题
一、规定与协议:以IP协议核心
- ICMP网际控制报文协议
- IGMP网际组管理协议
- IP协议
- ARP、RARP(地址解析协议):IP地址与物理MAC地址的转化
——ARP协议:解决同一个局域网内主机或路由器的IP地址和MAC地址的映射问题。在TCP/IP模型中,ARP协议属于网际层;在OSI模型中,ARP协议属于链路层。- DHCP(动态主机分配协议):给内网里的设备自动分配一个唯一的IP(当然也可以自己设置)
- NAT(网络地址转换协议):内网IP与公网IP进行转换的协议
二、软件的一些概念
- IPv4地址
IPv4是由32个二进制数组成
局域网IP:通常是网段里可用的第一个地址
公网IP:专用广域网IP地址一般要到ISP处交费之后才能申请到,所谓服务器就是一台开启了对外服务接口和端口的性能比较优越的电脑
只能用来作为内网ip,不能用来当公网ip的网段:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
- 子网掩码
子网掩码(用1的部分和0的部分)将ip地址分成网络编号和主机编号两部分,即确定了哪些地址属于一个网段
A类地址:前8位
可指派网络数126:1.0.0.0~126.0.0.0
可指派ip数:2^24-2(网络地址和广播地址)
B类地址:前16位
可指派网络数2^(16-2):128.0.0.0~191.255.0.0
可指派ip数:2^16-2(网络地址和广播地址)
C类地址:前24位
可指派网络数2^(24-3):192.0.0.0~223.255.255.0
可指派ip数:2^8-2(网络地址和广播地址)
-
网络地址
主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口 -
广播与广播地址
-
主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口
广播地址是一般是网段里面的最后一个地址,发送给广播地址的数据包默认发送给这个网段里面的所有地址。 -
网关与网关地址
网关既有局域网ip也有公网ip,像是一个双重身份的间谍。 一方面它是内网里面的老大,所有想要访问外网的局域网设备都要经过网关, 另一方面还有一个外网的身份与外界通信。
——注:网关功能可以用路由器实现,内网下的设备在浏览器输入ip都可得到公网IP
举例:某电脑
IP地址:192.168.1.15
子网掩码:255.255.255.0
——这个子网掩码确定了网络编号部分是前24位,主机编号是后8位
——这个子网掩码确定了网段从192.168.1.1~192.168.1.254
网关:192.168.1.1
广播地址:192.168.1.255
注:默认192.168.1.0和192.168.1.255(广播地址),不能用作IP地址
三、虚拟机的网络配置
网卡:计算机与外界局域网连接通过的一块网络接口板,包含存储器、处理器,每块网卡有一个唯一的地址叫做MAC地址,也叫物理地址,(真)全球唯一。
虚拟网卡:电脑软件模拟出来的网卡
1.网络地址转换(NAT):重新在一个新的网段中选取一个ip地址,主机自己也会生成一个虚拟ip与虚拟机通讯,但访问外部数据依然使用原主机的ip;虚拟机数据包以主机的名义转发出去,可以访问互联网但不能和内网内其他设备之间ping通讯,虚拟机和主机在共享一个IP地址。(一个有公网IP的网关)
2.桥接模式:和主机在同一网段,可以和外部同一网段下主机通讯;会占用局域网中的一个IP地址,一台完全独立的计算机(可能造成ip冲突)。
3.仅主机模式:默认情况下,使用仅主机模式网络虚拟系统和真实的网络是被隔离开的
例1:虚拟机设置为NAT模式,主机使用无线局域网上网
虚拟机ip:192.168.194.128
电脑以太网适配器VMware Network VMnet8(NAT模式专用):192.168.194.1
——主机虚拟出的内网网关地址
电脑无线局域网ip:10.54.151.52
电网连接的局域网的网关:10.54.159.254
浏览器搜索ip:58.246.203.155
WLAN无线局域网中的硬件属性查看到Ipv4 DNS服务器!!
四、代理相关设置
端口号
使用“proxy”代理IP的传输。
内网网站和端口受限制环境下可以通过nat123映射外网访问
8080端口
localhost
127.0.0.1
思考:
1.WLAN与WIFI的区别?——WLAN比WiFi范围更广
2.路由器怎么做交换机使用?——只连接LAN口而不练WAN口
3、自己在家搭一个网站需要什么条件?——一个专用公网IP
4、什么是拨号上网、宽带上网、以太网?
5、DNS域名解析服务器与IP分配服务器?
6.家里有光猫,光猫也连了路由器放在客厅,但路由器离房间太远,现有一个闲置路由器在房间怎么设置才能让房间的路由器发挥作用
数据链路层(MAC 交换机)
1.概述
局域网属于数据链路层:不可靠、无连接
点对点信道(PPP帧)与广播信道(以太网MAC帧)
2.封装成帧
封装成帧:在数据的前后加上首部和尾部
帧定界:从比特流中提取出帧,帧的首部和尾部的目的
帧的最大传送单元MTU
HDLC协议、零比特传输法
2.1帧头
广播信道中的帧:需要添加帧的目的地址、解决碰撞问题(CSMA/CD以太网媒体接入控制协议)
——有限局域网使用点对点链路和链路层交换机的交换式局域网,而无线局域网仍然使用共享信道技术
2.2数据部分
透明传输:帧定界符号不能和传送的数据重复
面向字节:字节填充或字符填充;面向比特:比特填充
在与分界标志符位模式一样的字符中插入一个转义字符
3.差错检测
差错检测:帧中的检错码用来检测帧是否有误码
码率BER
奇偶校验:比特1的数量奇数还是偶数
循环冗余检验CRC:
FCS字段检错码
4.可靠传输
局域网技术分为以太网(有线网络)和无线局域网
可靠传输:以差错检测技术(是否误码)为基础,根据是否向上层提供可靠传输决定是重传还是丢弃,如果为上层提供的是可靠服务,即发送方发送什么,接收方就收到什么。802.11无线局域网要求数据链路层实现可靠传输,以太网不要求实现可靠传输。
传输差错:误码(比特差错)、分组丢失、分组失序、分组重复…
——传输差错不仅在数据链路层,分组相关的错误一般在其他层,所以可靠传输不局限于数据链路层
三种可靠协议(不局限于数据链路层)
- 停止-等待协议SW(自动重传协议ARQ)
- 回退N帧协议GBN
- 选择重传协议SR
DATA:数据分组、ACK:确认分组、NAK:否认分组
数据分组超时才会重传,确认分组收到数据就回复
分组都会标号,重复分组都会丢弃
- 发送方:发送数据就会等待确认分组,超过规定时间就会重发,再次等待确认分组,又收到编号相同确认分组会丢弃
- 接收方:收到数据会发送确认分组,重复收到数据分组会丢弃但仍会发送确认分组告诉对方我已经接收
信道利用率
TD发送时延/(TD发送时延+RTT往返实验+TA确认时延)
后退N帧协议GBN
选择重传协议SR
广播信道的数据链路层(无线局域网):
CSMA/CD
载波监听多点接入/碰撞检测
多点接入:多个主机连接在一条总线上竞争使用总线
载波监听:先听后说,即在发送数据前先检测总线
碰撞检测:边说边听,边发边检测碰撞,检测到碰撞之后立即停止发送
由于传播时延所以需要碰撞检测
早起的以太网将所有计算机连接在一根总线上
总线上只要有一台计算机在发送数据,总线的传输资源就会被占用
7.MAC地址、IP地址以及ARP协议
严格来说,MAC地址是对网络上各接口的唯一标识而不是网络上各设备的唯一标识,因为一台pc拥有有线网卡和无线网卡,也就有两个mac地址。——48位二进制数,一台交换机下面即一个网段下面不太可能出现mac地址重复的设备
使用广播信道传输的帧中标识发送主机和接收主机的MAC地址
举例:在广播信道上B向C发送帧
单
播
帧
\color{red}{单播帧}
单播帧:在一个广播域下面知道C即目的mac地址,那么发送单播帧(帧标识自己A和目的C的mac地址),发送出去A和C都能收到,A发现不是给我的就丢弃
广 播 帧 \color{red}{广播帧} 广播帧:在一个广播域不知道目的mac地址,那么发送广播帧(帧源地址标识自己A的mac地址,目的地址填写广播地址),A和C都收到该帧,发送广播帧数据链路层都会接收然后传给上层!
多 播 帧 \color{red}{多播帧} 多播帧:主机是否在某个多播组(目的地址是某个mac)中,若在多播组中的主机可以接收这些帧
为什么既有IP地址又有MAC地址?怎么通过唯一的一个地址知道你在哪里?
知道IP地址就像知道你的学校一样,我不知道你人地址,但你肯定在学校里啊。分层就是生活中的找人本来就是一层一层找
知道mac地址不是知道你的经纬度了,那总能找到你
知道mac地址就像知道有你这个人一样,我知道是有你这个唯一的人,但不可能知道这个人在哪个大区域里
NIC网卡
DNS服务器根据网址获取目的IP地址
路由表:路由器,IP地址可达的一张范围表,负责三层数据转发
ARP高速缓存表:主机、路由器,根据IP查询MAC地址
MAC表:交换机,根据MAC地址进行端口转发,负责二层数据转发
主机A上网
应用层DHCP请求报文
传输层封装UDP报文段
——目的端口67(DHCP服务端口)、源端口68(DHCP请求端口)
网络层封装数据包
——目的IP广播(255.255.255.255)、源IP(0.0.0.0)
数据链路层封装成帧
——目的MAC(48位全F)、源MAC(主机A的MAC1)
路由器收到帧层层上报到DHCP服务器
路由器发回数据报:主机A的IP、第一跳路由器IP(网关)、DNS服务器IP
两台主机之间的通信:
主机A知道自己IP1,MAC1,目的IP2
但是不知道目的MAC2
先判断是不是目的IP是不是同一网段
如果目的IP同一网段:
ARP请求查询只能得到同一网段里面IP的MAC,不能跨网络使用
主机A的ARP缓存表中又没有主机B的MAC地址
则发送广播帧(全F),问大家目的IP的MAC地址是多少,实现同一网段设备通信
同一个网段里面的设备之间通信:
总线型(bus):目的主机直接判断目的MAC是不是自己
交换机型(star):通过交换机即可,查MAC表之后通过端口转发
交换机发广播帧获取端口和MAC地址的映射表即MAC表
如果发现目的IP不是在同一个网段:
获取能够上网(与其他网段通信)路由器的ip——网络层
根据路由器IP获取路由器MAC地址——ARP请求(广播帧frame获取MAC)
那么目的MAC地址就填的路由器的MAC地址
路由器链路层收到帧,检验发现帧是发给自己的
然后解封到路由器网络层,发现数据包(datagram)目的IP地址不是自己
则路由器根据目的IP查路由表——网络层
源IP地址和目的IP地址不变
然后根据ARP更改源MAC地址和目的MAC地址
三次握手;
发SYN
synACK
路由表
校验码