初识网络原理之网络层IP和数据链路层

初识网络原理之网络层IP和数据链路层

  • 回顾
  • 网络层
    • IP协议:
      • 网段划分:
      • IP地址:
        • 网络号:
        • 主机号:
      • 特殊的IP地址
      • IP数量限制:
      • 私有IP地址和公网IP地址
      • 路由
  • 数据链路层
    • 以太网:
    • MTU:
    • MAC地址
    • ARP协议
  • 重要应用层协议DNS
    • 背景
    • NAT
  • 总结

回顾

UDP VS TCP

UDP TCP
无连接 有连接
不稳定 稳定
面向数据报 面向数据流
有接收缓冲区 有接收缓冲区
无发送缓冲区 有发送缓冲区
消息丢失不敏感,要求性能高时使用 稳定性要求高时使用

TCP 八大机制

  1. 确认应答(保障TCP稳定的核心机制)
  2. 超时重发(自动消息去重,避免资源浪费)
  3. 连接管理(三次握手四次挥手)
  4. 滑动窗口(提高传输性能)
  5. 流量控制(以接收缓冲区大小的结果为导向)
  6. 拥塞控制(以当前网络环境的拥塞程度为导向)
  7. 延迟应答(流量控制的基础上优化发送频率)
  8. 捎带应答(是针对于延迟应答的性能优化)

网络层

IP协议:

初识网络原理之网络层IP和数据链路层_第1张图片
超出UDP的最大长度后,就依靠以下属性进行拆包和组包:

  1. 16位标识:分组ID

  2. 3位标志:

    • 第一位:保留(现在暂时不用, 说不定以后要用)
    • 第二位:置为1表示禁止分片,这时候如果报文长度超过MTU, IP模块就会丢弃报 文
    • 第三位:表示"更多分片",如果分片了的话,最后一个分片置为1, 其他置0,类似于一个结束标记
  3. 13位片偏移:后发先至,

8位生存时间(TTL): 一般为64,每经过一次路由器的跳转,就会 -1,直到这个值等于0,就会直接舍弃

网段划分:

IP地址分为两个部分:网络号和主机号

网络号: 保证相互连接的两个网段具有不同的标识
主机号: 同一网段内,主机之间具有相同的网络号,必须有不同的主机号(区分内网中的不同电脑)

IP地址:

A-E类:(不用)

A类 7位 24位
0 网络号 主机号

A类 0.0.0.0到127.255.255.255

B类 14位 16位
1 0 网络号 主机号

B类 128.0.0.0到191.255.255.255

C类 21位 8位
1 1 0 网络号 主机号

C类 192.0.0.0到223.255.255.255

D类 28位
1 1 1 0 多播组号

D类 224.0.0.0到239.255.255.255

E类 27位
1 1 1 1 0 留待后用

E类 240.0.0.0到247.255.255.255

网络号:

IP地址和子网掩码按位与

eg:
A:1010111
B:1100110
C:1000110(按位与)
将C转换位十进制,就是网络号

主机号:

从全0到全1就是子网的地址范围

子网取值范围:开始值就是网络号
结束值=255-子网掩码最后一部分

特殊的IP地址

  • 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网
  • 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

IP数量限制:

IP地址(IPv4)是一个4字节32位的正整数

一共只有 2^32 个IP地址,大概是43亿左右

而TCP/IP协议规定,每个主机都需要有一个IP地址

私有IP地址和公网IP地址

  • 10.*:前8位是网络号,共16,777,216个地址
  • 172.16.~172.31.:前12位是网络号,共1,048,576个地址
  • 192.168.*:前16位是网络号,共65,536个地址

包含在这个范围中的, 都称为私有IP, 其余的则称为公网IP

路由

在复杂的网络结构中, 找出一条通往终点的路线


数据链路层

以太网:

初识网络原理之网络层IP和数据链路层_第2张图片
目标地址和源地址表示MAC地址

MTU:

MTU(最大传输单元):1500字节

MTU对UDP的影响:

1500 - UDP(固定头部信息)8字节 - IP协议头 20字节 = 1472字节

eg:IP包分片的原理。
以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则该报文在添加20 bytes的IP包头后IP包的总长度3028bytes,因为3028 > 1500,所以该数据报文将被分片,分片过程如下:

  1. 首先计算最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes。

  2. 然后把3028 bytes按照1480 bytes的长度分片,将要分为3片,3028= 1480+1480+68。

  3. 最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500 bytes、1500 bytes和 88 bytes。

一旦UDP携带的数据超过1472,那么就会在网络层分成多个IP数据报,这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败,意味着如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了

MTU对TCP的影响:
初识网络原理之网络层IP和数据链路层_第3张图片

MAC地址

MAC地址用来识别数据链路层中相连的节点

长度为48位,6个字节,
一般表示为:eg: 08:00:27:03:fb:19

在网卡出厂时就确定了,不能修改

MAC地址通常是唯一的

ARP协议

定位:
不是单纯的数据链路层的协议,介于数据链路层和网络层之间

作用:
协助主机用来建立IP地址和MAC地址的映射关系,根据IP地址查询MAC地址

工作方式:

  1. 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的MAC地址是多少”,并将这个请求广播到本地网段
  2. 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中
  3. 每台主机都维护一个ARP缓存表,可以用arp -a命令查看,缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址

重要应用层协议DNS

背景

DNS 是解决IP不好记的问题,所以使用域名来访问,DNS将域名解析为对应的IP地址,是一整套从域名映射到IP的系统

DNS协议规范使用UDP进行传输

当在浏览器中输入URL地址后,会发生什么?

NAT

背景:
解决IP不足的问题(优点)

本质:
实现一个内网IP到外网IP的映射

缺点:
部署和运行NAT服务是需要硬件支持的
当NAT挂掉后,整个局域网就瘫痪了

NAT VS 代理:

- NAT 代理
应用场景 解决IP不足的问题 解决不能触达的问题
部署方式 部署在防火墙 一个软件,安装使用
所在层级 网络层 应用层

总结

网络相关知识就学到这里啦~

你可能感兴趣的:(笔记,网络,网络,java,网络协议,MAC,IP)