当前位置: 首页 > article >正文

JAVAEE初阶相关内容第十八弹--网络原理之TCP_IP【续集】

写在前

上一篇博客的重点内容主要讲了关于传输层的TCP协议、UDP协议。

点击跳转上一篇博客

重点介绍了协议的特点、协议端格式、需要重点理解并掌握TCP的工作机制(十条)。

TCP与UDP对比?

TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。

UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等,另外,UDP还可以用于广播【同一机房内部,天然支持广播-- IP地址中有一种特殊的地址”广播IP“通过UDP往广播上发送数据报,此时该局域网内所有的设备都能收到数据。】

传输层的协议并非只有这两个,例如有的是专门为了游戏打造的,典型协议:KCP。

本篇博客将重点介绍网络层协议-IP

目录

网络层协议代表-IP协议

1. 协议头格式

2. 点分十进制

3. 关于IP地址不够用问题的解决办法

(1)动态分配IP

(2)NAT网络地址转换

(3)IPV6

4. IP协议-地址管理

4.1 网络号

4.2 主机号

4.3 子网掩码

5. IP协议-路由选择


网络层协议代表-IP协议

在复杂的网络环境中确定一个合适的路径。

1. 协议头格式

地址管理、路由选择。

对“16位总长度”的理解

16位总长度是不是意味着一个IP数据报,最大只能支持64KB?

确实是有这个限制的,相当于一个快递公司一次最大只能给运输64kg的快递,但是,IP自身就支持对包的拆分和组装。一个IP数据报携带的数据载荷太大了,超过了64KB,就会在网络层针对数据进行拆分,把一个数据拆分成多个IP数据报,再分别发送,接收方再重新拼装。

IP协议中最重要的部分:32位源IP,32位目的IP

2. 点分十进制

此处看到的IP地址是32位整数,但是日常见到的IP则是一串数字,使用三个点把32位4个字节的数字分隔开,每个部分分别使用0-255的十进制数字进行表示。

3. 关于IP地址不够用问题的解决办法

32位数字,只能表示42亿9千万个数字,我们期望使用这个表示全世界所有的上网设备。为了解决IP地址不够用的问题,想了很多办法。

(1)动态分配IP

提高利用率,指标不治本

(2)NAT网络地址转换

使用1个IP地址代表一批网络设备【端口号区分】

关于内网和外网:

NAT背景下把IP地址分成了两大类:内网IP和外网IP

内网IP【私有IP】:10.开头的、172.16.*-172.31.*、192.168.*

外网IP【公网IP】: 除了内网IP外的都是外网IP。

NAT要求:公网IP必须是唯一的,内网IP可以在不同的局域网中重复出现。如果某个私网里的设备想访问公网的设备,就需要对应的NAT设备【路由器】,把IP地址进行映射,从而完成网络访问。反之,公网的设备,无法直接访问私网的设备,不同局域网的私网设备没法直接进行相互访问。

NAT机制能够有效的解决IP不够用的问题,但是带来的副作用就是网络的环境更加复杂了。

(3)IPV6

根本上解决了IP不够用的问题,使用16位字节表示IP地址。

虽然IPV6看起来是美好的,但是当前世界上仍然是以NAT+IPV4+动态分配来进行网络组建的。真正使用IPV6的地方非常少。

主要原因是IPV6贵,IPV6与IPV4还不兼容。

4. IP协议-地址管理

把一个IP地址分成了两部分,一个叫网络号,一个叫主机号。

4.1 网络号

表示网段,保证相互连接的两个网段具有不同的标识。

4.2 主机号

标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

193.168.0.10    --   网络号:192.168.0  主机号:10

划分网络号和主机号就是为了组网。

4.3 子网掩码

子网掩码格式和IP地址格式一样,也是32位的二进制数,其中左边是网络位,用二进制”1“表示,1的数目等于网络位长度。右边是主机位,用二进制”0“表示,0的数目等于主机位长度。对于家用设备来说,子网掩码最常见的就是255.255.255.0。

作用:划分A、B、C三类IP地址子网;网络通信时,子网掩码会结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。

5. IP协议-路由选择

路径规划

核心思路--问路。每个路由器都会保存一定的周围设备的信息(路由表)。每次有一个IP数据报经过路由器。就需要匹配路由表,看看接下来咋走。如果路由表上有匹配的选项【该路由器认识路】,直接按照要求走就可以。如果没有匹配的选项【不认识路】,会提供一个默认路径,大体方向是不会错的。每次经过一个路由器问一次,TTL-1。如果减到0还没到,就说明永远都到不了,这个地址没人知道,就被丢弃了。


http://www.kler.cn/a/158795.html

相关文章:

  • 【DQ Robotics】基于SVD的全秩矩阵逆
  • 如何轻松导出所有 WordPress URL 为纯文本格式
  • STM32保护内部FLASH
  • 树的直径计算:算法详解与实现
  • 【STM32】MPU6050简介
  • PCL 三维重建 耳切三角剖分算法
  • 初识Linux——基本指令(详解)1
  • pycharm右键执行,出现Run ‘Python tests in xxx‘的问题
  • 深入探讨Guava的缓存机制
  • 深入理解指针3
  • 深入理解 Spring Boot 的 ApplicationRunner 接口
  • Java数组面试题
  • 如何保障Redis的安全性?
  • 全栈冲刺 之 一天速成MySQL
  • 前端常见手写代码题集
  • Lambda表达式用法汇总
  • POJ 3233 Matrix Power Series 动态规划(矩阵的幂)
  • 轮询分区的设置
  • 对标Gen-2!Meta发布新模型进军文生视频赛道
  • iOS简单理解区分MVC、MVP、MVVM
  • ubuntu下如何查看.gz压缩包中的内容,以及grep过滤查找文件中的某些内容
  • 全面解析修复msvcr120.dll缺失问题的方法,msvcr120.dll丢失的原因
  • 【隐私计算】安全三方计算(3PC)的加法和乘法计算协议
  • 计算机服务器中了faust勒索病毒怎么办,faust勒索病毒解密文件恢复
  • 【Midjourney实战】| 新年礼盒元素设计
  • Mysql的页结构详解