网络基础原理

IP地址

  • 为每一个主机分配一个逻辑地址。

  • 32位的二进制数 a.b.c.d。

组成

网络号+主机号 16 + 16

网络号:0~127 大型网络 128~191 中等规模网络 192~223 小型网络

格式头
  • 4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4。

  • 4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节

数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。

  • 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留

字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。

这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于

ftp这样的程序,最大吞吐量比较重要。

  • 16位总长度(total length):IP数据报整体占多少个字节。

  • 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每

一个片里面的这个id都是相同的。

  • 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第

二位置为 1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表

示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。

  • 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是

在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,

除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。

  • 8位生存时间(Time To Live,TTL)数据报到达目的地的最大报文跳数。一般是64。每次

经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出

现路由循环。

  • 8位协议:表示上层协议的类型。

  • 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。

  • 32位源地址和32位目标地址:表示发送端和接收端。

主机号

  1. 全0 网络号,代表这个局域网

  1. 全1 广播地址 用于给同一个链路中的所有主机发送数据包

* 本机环回测试 通常 127.0.0.1

如何解决IP地址浪费问题?

使用子网掩码来划分子网

子网掩码格式:网络位(用1表示)+主机位(用0表示)

例:255.255.128.0 11111111.11111111.10000000.0 网络号+主机号(子网号+主机号)

网络标识:网络号+子网号

如何使用IP地址和子网掩码来确定网络号+主机号?

网络号:IP 地址和 子网掩码 进行“按位与”操作

主机号:将子网掩码二进制按位取反,再与IP 地址位与计算.

判断源IP与目的IP是否在同一个网段?

使用IP地址和子网掩码来确定网络号(划分子网后的网络号)+主机号(划分子网后的主机号)

MAC地址

用于标识网络设备的硬件物理地址。描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点。

1. 每一个网卡都有一个MAC地址。

2.网络通信实质上是通过是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。

3.硬件层面:只能基于MAC地址来识别网络设备的网络物理地址。

特殊的MAC地址

广播数据报的MAC地址为: FF:FF:FF:FF:FF:FF

发送一个广播数据报相当于对同网段的所有主机发送数据报。(数据报:数据链路层的数据发送名称)

设备功能

主机:有IP地址 + 不进行路由控制

路由器

网络层 有IP地址 + 进行路由控制

可划分公网和局域网 也可把局域网划分为多个子网。

路由器:路由+NAPT

作用:

1.网关:

①划分公网和局域网 局域网划分为多个子网

② 局域网主机发送数据报给公网主机时,需要将局域网主机IP+端口 -> 路由器公网IP+端口。(NAPT协议

2.路由: 规划最优路线

主机&路由器:ARP缓存表+ARP寻址。

ARP协议

是介于网络层和数据链路层之间的协议 IP地址 <-> MAC地址

若根据ARP缓存表无法找到目的MAC地址,则发送ARP广播数据报。

集线器

物理层

复制接收到的数据并转发到所有端口

交换机

数据链路层

MAC地址转换表(MAC地址<->端口)+转发对应端口

DNS协议

应用层协议 域名 <-> IP地址 基于TCP/UCP协议传输

Windows系统的DNS缓存在C:\windows\System32\drivers\etc\hosts 文件中。

Linux/MAC系统的DNS缓存在 /etc/hosts 文件中。

NAT技术

私有IP <-> 全局IP

NAPT技术: 私有IP+端口 <-> 全局IP+端口(适用于多个局域网主机访问同一个外网服务器时)

TCP(Transmission Control Protocol)协议:传输层协议

  1. 对于数据传输安全和效率

安全机制:确认应答机制 超时重传机制 连接管理机制 流量控制 拥塞控制

效率机制:滑动窗口机制 延迟应答 捎带应答

  1. 是面向字节流的协议

  1. 具有发送缓冲区和接收缓冲区

  1. 发送数据大小具有限制。

如何避免“粘包”问题?

(TCP协议会出现 UDP不会)

包:应用层的数据包。

  • 对于定长的包:

按照固定大小读取即可。

  • 对于变长的包:

1、可以在包头,约定一个包总长度的字段。

2、可以在包与包之间提前明确分隔符。

适用于可靠传输 例如:文件传输重要状态更新。

后续重点讲解

UDP协议

  • 无连接 + 不可靠

  1. 知道IP+端口号 就可直接传输

  1. 无任何安全机制。

  1. 数据不会拆分,不会合并。

  1. 只有接收缓冲区(不能保准顺序一致),没有发送缓冲区。

  1. 传输数据大小受限,最大长度64K

适用于:高速传输和实时性要求较高的通信领域,例:视频传输 广播等。

MTU(Max Transmission Unit ): 最大传输单元

  1. 不同链路所对应的物理层所产生的限制。

  1. 由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。

  • 对于TCP影响

TCP的一个数据报也不能无限大,还是受制于MTU。TCP的单个数据报的最大消息长度,称

为MSS(Max Segment Size);

TCP在建立连接的过程中,通信双方会进行MSS协商。

最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于

数据链路层的MTU)。

双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,得知双方MSS值后选择最小的MSS作为最终MSS。

  • 对于UDP影响

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个IP数据报。

这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果

UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值