分布式通信基础

1.分布式通信基础思维导图2.IP协议2.1ICMP协议ICMP协议(InternetControlMessageProtocol),Internet控制报文协议,其作用就是探测网络

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1. 分布式通信基础思维导图

  分布式通信基础

2. IP协议

2.1 ICMP协议

  ICMP协议(Internet Control Message Protocol),Internet控制报文协议,其作用就是探测网络连接,该协议提供了简单的出错报告信息,发送的出错报文会返回到发送数据的源端,发送端随后可根据ICMP报文确定发生错误的类型,并确定如何才能更号地重发失败的数据包。需要注意的是ICMP只负责报告错误,而如何处理特定的错误,则由发送端自己决定。

分布式通信基础

2.2 IPV4协议头部

分布式通信基础

(1)版本:对于IPv4版本的IP协议来说,其值是4

(2)首部长度:用于指定当前IP头部的总长度(单位为32位),由于该字段为4位,所以最大十进制为15,IP协议头部的总长度为15*32/8 = 60字节

(3)服务类型:用于分配优先级、延迟、吞吐量以及可靠性,该字段的最高3bit用于定义IP优先级,可以定义8种不同的服务优先级。其次第3到第6bit用于定义最低延迟、最高吞吐量、可靠性和最小开销,而最后1bit则必须置0,注意,第3至第6bit的定义中,至多只能有一位置1,应用程序需要根据特定需求来进行置位

(4)长度:定义整个IP数据报的总字长

(5)认证:用于对IP数据报进行唯一标识,其值从一个随机数开始,随着发送的IP数据报每次加1,不过,对于字长超过MTU的IP数据报,拆分后发送的数据报具有相同的认证

(6)标志:该字段长度为3位,第一位为保留字段,第2位置1则表示禁止对IP数据报拆分,如果将该位置置为1,那么网络层将不会对IP数据报进行拆分,取而代之的是返回一个ICMP差错报文,第3位表示是否含有更多的分片,除了最后一个分片以外,其它IP数据报都应该置为1

(7)段偏移量:表示分片相对于原始IP数据报开始处的偏移量

(8)TTL:用于指定数据报到达目的地之前允许经过的最大路由跳数

(9)协议:表示当前上层所使用的协议类型

(10)校验和:通过CRC算法计算出来,用于检查接收到的数据是否正确

(11)源IP地址

(12)目的IP地址

(13)选项:40字节

2.3 路由与转发规则

分布式通信基础

确定了路由之后,将IP报文封装成数据链路层的帧并转发到对应端口上。

路由匹配规则:

(1)路由最长匹配原则:我们优先选择子网掩码最长的路由表项进行匹配,因为掩码越长,表示网络号越长,代表其网络范围越小,越精确

(2)路由迭代查找原则

(3)默认路由匹配原则:在路由器中加入一条IP地址和子网掩码均为0.0.0.0的路由表项

子网掩码的有趣解释:

  

作者:车小胖

链接:https://www.zhihu.com/question/56895036/answer/150953183

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

从前有一个地主,有256间房子,地主家的门牌号码是“192.168.1”,那么他家第一间房子的门牌号码是192.168.1.0,第二间是192.168.1.1,…第256间的编号是192.168.1.255。

地主老了,需要把256间房子分给4个儿子,平均分配,每个儿子可以分64间。

请来一位先生主持公道,先生这么来操作:
192.168.1.0-192.168.1.63 分给大儿子
192.168.1.64-192.168.1.127 分给二儿子
192.168.1.128 -192.168.1.191 分给三儿子
192.168.1.192-192.168.1.255 分给四儿子

那如何来描述四个儿子的子网网段呢?
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26

/26是什么鬼?
255.255.255.192的二进制是多少? “11111111-11111111-11111111-11”大家数数一共多少个1?不用数了,是26个1,为了简化子网掩码的表示,用/26代替255.255.255.192。

按位与运算
我们来看大儿子的网段192.168.1.0/26是如何得到的?

以大儿子的房间为例:
192.168.1.0-192.168.1.63

二进制表示:
192.168.1.0

11000000.10101000.00000001.00000000

192.168.1.63

11000000.10101000.00000001.00111111

首尾地址完全相同的是多少?
11000000.10101000.00000001.00

数数一共多少位?26位!那么用这个“192.168.1.0/26”就可以表示大儿子所有房间。

对照房间的门牌号码“192.168.1.199”,很显然属于四儿子的。

一个主机192.168.1.199/26 能否和直连主机192.168.1.200/24 通信?可以的因为都是四儿子的房间。

一个主机192.168.1.199/26 能否和直连主机

192.168.1.1/24 通信?
不可以
因为一个是大儿子的房间,一个是四儿子的房间,无法直连通信!

3. TCP协议

  TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP协议支持超时重传和确认机制,确保了发送消息的可靠性

3.1 TCP协议头部结构

分布式通信基础  

3.2 3次握手和4次分手协议

A. 3次握手协议

(1)第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号

(2)第二次握手:服务器收到SYN包,必须确认客户SYN(ack=j+1),同时发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

(3)第三次握手:客户端收到SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接状态),完成3次握手

B. 4次分手协议

(1)第一次分手:主机1(可以是客户端也可以是服务器),设置Sequence Number和Acknowledge NUmber,向主机2发送一个FIN报文段;此时主机1进入FIN_WAIT_1状态,这表示主机1没有数据要发送到主机2

(2)第二次分手:主机2收到主机1发送的FIN报文段,向主机1回复一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态,主机2告诉主机1,为同意你的关闭请求

(3)第三次分手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入CLOSE_WAIT状态

(4)第四次分手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态,主机2收到主机1的ACK报文段以后就关闭连接,此时,主机1等待2MSL后依然没有收到回复,证明server端已正常关闭,那号,主机1也可以关闭连接了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120119.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2.1pycharm 设置Python模块的搜索路径的方式「建议收藏」

    2.1pycharm 设置Python模块的搜索路径的方式「建议收藏」step1:打开pycharm—>目标文件夹—->右键——>new—–>directory—->创建名为modules文件夹。step2:选中modules文件夹—->右键——>new—->pythonfile—–>创建名为working.py文件,在working.py文件中定义函数hel…

  • 如何控制input框!

    如何控制input框!

  • 年度总结与来年计划_2016年一2021的工作总结

    年度总结与来年计划_2016年一2021的工作总结  光阴似箭,日月如梭!眨眼间已到年底,今年感慨颇丰,获益良多。因为我认为努力了就肯定会有收获,哪怕是收获那一滴滴辛勤的汗水。  我在公司任务轻松时,加了些前端群(重点推荐豪情群),在群里分享技术以及生活的点滴,同时认识了一些志同道合的朋友。有大牛建议我体验一番分享的乐趣,于是我下下半年开始写博。虽质量不高,但其中的乐趣博友们应该都能感受到。写完每篇博文后,我都能体会到了在这个浮躁的时代我平静…

  • NSGA-II入门

    NSGA-II入门NSGA-II入门C1觉得有用的话,欢迎一起讨论相互学习~FollowMe参考文献1参考文献2白话多目标多目标中的目标是个瓦特?多目标即是优化问题中的优化目标在3个及以上,一般这些优化的目标都存在着矛盾,例如:我要买一个又便宜又漂亮又性能好的车的时候,价格,外观,性能这就是一个典型的多目标问题,我们必须在商品的价格,外观和性能上做出取舍,毕竟外观漂亮性能强劲的车型往往意味着…

  • Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)

    Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)本文章使用的是KaliLinux的2020-4-installer-amd64版本KaliLinux的安装过程本文章不做过多说明,请自行百度一、DDos攻击首先,打开一个命令行输入以下命令:gitclonehttps://github.com/Ha3MrX/DDos-Attack提示如图所示这样,用于DDos的数据包就已经下载到了你的Kali上下面,进入你所下载的DDos文件夹,输入命令(注意大小写):cdDDos-Attack然后设置ddos-attack.py设置

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号