IP是互联网协议的简称,在网络层工作,特点是无连接/不可靠。
寻址和路由:IP数据包携带source IP和destination IP来寻找主机,在IP网关和路由器进行转发,并且路由器会根据路由表选择best route。
分段与重组:IP数据包在传输中经过不同的网络时,面对无法一整个通过时,会被分配一个标识符和拆分和组装的信息,使得数据包可以通过不同网络。到达目的地后由目标主机重组为原来的数据包。
通常一个域名和一个IP地址一一对应,但实际上也存在多个域名被解析到一个IP地址的情况。
针对IPv4地址不够使用的解决:
DHCP(dynamic host configuring protocol):只给接入网络的设备分配IP地址,所以一个MAC地址的设备每次介入互联网的IP地址不一定相同。
CIDR:无类别域间路由,消除了传统的ABC类地址和子网概念,缓解了IPv4分配问题但无法根本解决地址不够用的问题。
NAT(network address transformation):主机在局域网中使用的IP不能在公网中使用,但如果局域网主机想和公网通信,NAT可以将主机IP转换成全球IP,有效解决IP地址不足的问题。
IPv6:接替IPv4的下一代协议,根本解决了地址不足的问题。
路由器的分组转发:
1. 从IP packet中解析出destination IP address,找到它在的网络。
2. 判断它在的网络是否与本router相连,if yes,则直接交付;if no,执行下一步。
3. 检查路由表中是否有目的的IP地址的特定主机路由,if yes,按照路由表传送到next hop路由器中,否则执行下一步
4. 逐个检查路由表,使用每一行的子网掩码与目的IP匹配。如果匹配,则继续向下next hop,否则执行下一步。
5. 若路由表中设置有默认路由,则按照默认路由转发到默认路由器中,否则下一步。
6. 无法找到合适路由,返回source host报错。
The differences between router and exchanger:
路由器:工作在网络层,通过数据包中的目的IP地址识别不同网络,确定目标地址。
交换机:用于局域网中,利用主机的物理地址(MAC地址)确定转发的目的地。
ARP地址解析协议:
工作在数据链路层,通过以太网发送IPpacket,要封装32位IP和48位MAC地址,但是sender并不知道receiver的MAC地址,只有它的IP地址,这个时候就需要用ARP协议:
1. 每个host都会在自己的ARPbuffer建立一个ARP列表,表示IP地址和MAC地址的对应关系。
2. 当源主机要发送数据的时候,会先检查ARP列表中是否有IP对应的MAC,如果有,则直接发送;否则向同一个子网的所有host发送ARP包,包括源主机的IP和MAC,目标主机的IP地址。
3. 当本网络中所有主机收到ARP数据包后,首先检查数据包中,目标主机IP地址是不是自己的,如果不是就忽略,如果是就从中取出源主机的IP和MAC写入自己的ARP,如果已存在就覆盖掉,把自己的MAC地址写入ARP响应包返回给源主机。
4. 源主机收到ARP响应包后,将目的主机的IP和MAC地址写入ARP表,并用此信息发送数据。如果一直没有收到ARP响应,则查询失败。
网络地址转换NAT:
private IP --> global IP,解决IP地址不足问题,也能隐藏和保护网络内部主机,避免外部网络的攻击。常用方式:静态转换、动态转换、端口多路复用(隐藏内部主机、避免internet攻击)。
TTL的作用:包每经过一个router就会减一,为0就被丢弃,防止在包在路由器间循环死转。
网络层协议负责主机间的逻辑通信,无连接不可靠;传输层负责进程间的逻辑通信,tcp是面向连接可靠的。