IP特性 以太网协议 分包和组包

11 篇文章 0 订阅
6 篇文章 0 订阅

java-code: java代码管理 (gitee.com)

目录

文章目录

一、IP协议

1.地址管理:给网络上每一个设备都分配一个唯一的地址        

使用动态分配IP:

使用NAT机制: 

使用IPV6:

2.路由选择(从A->B的路怎么走)

3.IP地址

二、数据链路层

1.以太网协议

2.如果以太网协议发送的数据长度超过MTU怎么办?(分包和组包)


一、IP协议

1.地址管理:给网络上每一个设备都分配一个唯一的地址        

通常我们使用的时候IPV4的协议 对应的我们使用的IP地址 为32位整数通常使用点分十进制表示 每个部分取一个字节 取值范围0-255

那么32位的IP 地址就可以表示42亿9千万个地址,对于现在全世界70多亿人口来说 显然是不够用的  我们如果缓解或者解决IP地址不够用的问题呢??

使用动态分配IP:

 简单来说就是你需要上网的时候 给你动态分配一个IP  当你关掉电脑或者不用网络的时候 这个IP就不属于你了  就可以让其他人来用使其上网  (这样可以缓解IP地址不够用的问题 但是治标不治本 IP地址还是那么多个~)

使用NAT机制: 

他将所有的IP地址分为两大类  内网IP和外网IP

内网IP:10*  ,172.16.*-172.31.*  ,192.168.*   这三类为内网IP

外网IP:除去内网IP其他的IP地址都为外网IP

对于内网IP来说 他是可以重复的 前提是不在同一个局域网 其实本质上就是给一个地方 分配一个外网IP  这个区域中的所有的设备都通过这个外网IP来通信 这个区域就相当于一个大的局域网~

当我们的内网IP想要访问外网时,通过网络上的设备将内网IP转换为外网IP进行通信

         

在NAT背景下是如何通信的?

外网->外网 :不需要使用NAT  可以直接通信

外网->内网:不允许的

内网->其他内网设备:不可允许的(前提是不在一个局域网的时候)         

内网->外网:对应的使用NAT机制 内网中的路由器会将内网IP替换成路由器的外网IP进行通信

使用IPV6:

不管是动态分配IP还是NAT机制 都不能完全解决IP地址不够用的问题 治标不治本 对于IPV6来说 就完全解决了这个问题 IPV6使用十六个字节 128位来表示IP地址  从根本上解决了IP地址不够用的问题

2.路由选择(从A->B的路怎么走)

路由器的路由转发  路由器没办法把整个网络环境的路全都记下来  他只能知道周围的邻居是谁

路由器中使用路由表这样的数据结构来记录周围的信息   在进行转发时候 是一步一步的接近目标地点的

路由器会根据路由表向周围的数据包”问路“,可能你问的数据报并不知道你的这个地方在哪里        (目的IP在路由表中没有匹配结果)此时路由表就会给你指出默认的路径(路由表的下一表项)也就是给你指到更上层的路由器 这样找到目的IP 的可能性就会更大 最后一步一步达到目标IP

3.IP地址

IPV4的IP地址是一串点分十进制的 分为网络号和主机号
网络号:标识网段 保证两个互相链接的网段(通过一个路由器链接的 两个局域网之间) 具有不同的标识

主机号:标识主机 在同一个局域网中 网络号是相同的 必须有不同的主机号

特殊的IP地址:

主机号为0 的IP地址 192.168.0.0 也就是网络号  局域网中不能有主机号为0的IP地址

主机号全为1 的IP地址:192.168.0.255  广播地址 通过这个地址可以给局域网中所有设备发送信息(不支持TCP)  也就是在你不知道对方到底是局域网中的具体位置 需要探测对方的地址的时候用

环回地址:127.*  一般为127.0.0.1 表示主机到主机间的通信 这时候是使用虚拟网卡来进行通信的 没有IO操作 是纯内存操作~

主机号为1的地址 192.168.0.1   这个一般是用来当作局域网的网关的地址 但是并不绝对 一般用来配置设备的地址

划分网络号和主机号:

1.使用IP地址分类  (ABCDE)类  这些是固定号的主机号和网络号 

A类:0+七位网络号+24位主机号

B类:10+十四位网络号+16位主机号

C类:110+二十一位网络号+8位主机号

2.使用子网掩码划分(32位的二进制数据)  

这里以255.255.255.0举例(255就为11111111)    如何划分呢?

将IP地址和子网掩码进行按位与就可以得到网络号  

将子网掩码二进制取反 再和IP地址进行按位与就为主机号        

二、数据链路层

1.以太网协议

 一个以太网数据帧 

目的地址和源地址都为MAC地址 六个字节 CRC为校验和

MAC地址是网卡处出厂时就写死的 MAC地址也可以作为网络身份校验的有效手段

类型:0800表示用来传输数据的以太网帧

0806和8035表示特殊的以太网帧

45~1500表示一个以太网数据帧 载荷的最大长度就为1500(这个1500并不是写死的 不同的数据链路层协议对应不同的硬件设备也不一样(这里对应的是网线~) 传输上限也不一样)

2.如果以太网协议发送的数据长度超过MTU怎么办?(分包和组包)

举例: 这里拿1500作为最大载荷长度MTU  如果数据超过MTU 以太网协议就会进行分包~  

(以太网数据报的结构)

 16位标识:一个大的数据报分为多个小的时候 前面会存储一个标识 小的数据报里的标识都是相同的(也就是以太网数据报根据这个来确认这些报是不是一组的)

3位标志: 这里有三位 有一位不用 有一位表示当前以太网数据报是否分包 另一位表示当前数据报是不是分包的最后一位(结束标志)

13位片偏移量:用来标识多个小报之间的顺序(到达目的地后重新组包 根据片偏移量)

举例:

 

流程: 发送主机先试用的FDDI协议(跟以太网协议并列) 这个协议的MTU是4352 发送了一个数据报 到路由器 路由器中使用的是以太网协议 MTU=1500 这里就对数据进行分包 分成三份长度小于1500的包 加上一个UDP数据报 分配多个IP首部(根据他区分顺序) 组包完成发送到接受主机 接受主机重新组包收到数据


 以上就是本文的全部内容了,如果有任何问题欢迎私信改正或交流哦~欢迎大佬们.感谢您的支持

                        ​​​​​​​       

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值