除了个性化阶段,江苏seo哪家好,昆明建设网站公司,建设银行中国网站首页回顾上文
来回顾一下TCP协议的特性#xff0c;有一道比较经典的题#xff1a;如何使用UDP实现可靠传输#xff0c;通过应用程序的代码#xff0c;完成可靠传输的过程#xff1f;
原则#xff0c;TCO有啥就吹啥#xff0c;引入滑动窗口#xff0c;引入流量控制#x…回顾上文
来回顾一下TCP协议的特性有一道比较经典的题如何使用UDP实现可靠传输通过应用程序的代码完成可靠传输的过程
原则TCO有啥就吹啥引入滑动窗口引入流量控制引入拥塞控制引入1确认应答ack引入序号确认序号引入超时重传 2 Question 在TCP报文格式里有16位紧急指针这个指针的作用是什么 在TCP报文格式中RST中还有一个PSH是什么作用? Answer TCP带外数据传输正常的TCP传输的数据可以认为是“业务数据”除了业务数据之外还有一些特殊的用来控制TCP自身工作机制特殊的数据包 PSH是催促对方尽快给自己返回回应 网络层的主要协议为IP协议当前协议叫做
TCP/IP协议 IP协议与“交换机开发”可能会密切联系所以这里我们不像TCP那么详细介绍
网络层主要做的事情
路径规划路由选择地址管理IP地址的规则和特点
其中4位版本指的是IPv4如果是6位版本则指的是IPv6上述结构是IPv4的结构下图为IPv6结构 其他的IP版本可能是存在于实验室中但是没有真正大规模商用
4位首部长度0-0xf0-15也是以4字节位单位的IP报头最长就是60字节最短是20字节
8位服务类型TOStype of service其实只有4位有效这四位是互斥的只有其中以为为1 由AI可知 在IPv4协议中服务类型Type of ServiceToS字段是8位长用于指示数据包的服务质量要求。这个字段在IPv4头部中用于指导网络设备如何处理数据包例如优先级、延迟、吞吐量和可靠性等。 IPv4头部中的服务类型字段在RFC 1349中被定义为一个3位的优先级字段和4位的ToS字段的组合。后来这个字段在RFC 2474中被重新定义为区分服务Differentiated ServicesDS字段。 在RFC 1349中服务类型字段被分为两个主要部分 前3位优先级Precedence - 用于确定数据包的优先级值从000到111数值越小优先级越高。 后5位ToS字段 - 用于指定数据包的服务质量要求包括 - 延迟Delay - 吞吐量Throughput - 可靠性Reliability - 代价Cost RFC 1349定义了几种ToS值用于不同的服务类型 - 00000正常服务Normal Service- 00001最小延迟Minimize Delay- 00010最大吞吐量Maximize Throughput- 00011最大可靠性Maximize Reliability- 00100最小代价Minimize Cost- 00101到网络控制流Network Control- 00110 无改变Unspecified- 00111 到网络控制流但优先级更高Network Control, but higher priority 在RFC 2474中ToS字段被重新定义为区分服务字段用于实现更细粒度的服务质量控制。这个字段被分为两个子字段 6位区分服务代码点DSCP - 用于定义不同的流量类别和服务等级。2位拥塞控制ECN - 用于指示数据包是否可以被网络设备标记为遇到拥塞。 DSCP字段定义了多种服务代码点用于不同的服务类别如AFAssured Forwarding和EFExpedited Forwarding等。 请注意实际的服务质量还取决于网络设备和服务提供商的配置和支持。 16位总长度字节数整个IP数据包的长度报头 载荷总长度去掉IP首部长度剩下的就是TCP数据包的总长度去掉TCP报头长度剩下的就是载荷长度了64KB如果携带的载荷超出长度上限超出长度上限IP就会自动拆分成多个数据包每个数据包携带一部分发送到对方之后再拼接好 16位标识用来区分哪些数据包要进行合并
3位标志只有两个有效其中一个用来表示该数据包是否触发了拆包的效果是否需要组包另一个标志位结束标记当前包就是最后一个需要租包的部分上述组包过程完全是IP本身负责的和载荷中保存啥东西没有任何关系也不需要关心 QuestionIP都能组包了UDP为啥还有64KB的限制借助IP组包能力不能突破UDP的限制吗 Answer直观上看起来把上述数据拆成多分分多个IP数据包发送好像也是OK 传输过去之后上述数据也能合并还原成原始的模样 这里还原出来的数据要交给UDP进一步的进行使用在UDP这一层要对上述数据进行解析取出8个字节作为报头剩下的作为载荷剩下的载荷到底多长就会尝试从报头中报文长度字段来读取读出来的数字最多还是64KB 8位生存时间ttlIP数据包要在网络上转发限制一个1数据包在网络上转发的最大次数一个IP数据包初识情况下有一个TTL的值32/64这样的整数这个次数每次经过一个路由器的转发就要-1减到0了这个数据包就要丢弃掉这个初识值是可配置的系统内核的参数关键问题64这样的数值是否够用呢通常情况下64其实够用了这里背后有一个”六度空间“理论 六度空间理论也被称为小世界理论Six Degrees of Separation是一个社会学理论它认为世界上任何两个互不相识的人最多只需要通过六个中间人就能建立起联系。这个理论最早由匈牙利作家弗里吉什·卡林西Frigyes Karinthy在1929年的短篇小说《链》中提出。 理论背后的基本思想是虽然世界上有数十亿人口但人们通过社交网络相互连接形成了一个巨大的、相互关联的网络。在这个网络中人与人之间的联系可以通过朋友、家人、同事、同学等社会关系进行传递。 这个理论在20世纪60年代由美国社会学家斯坦利·米尔格拉姆Stanley Milgram通过一系列实验得到了进一步的推广和验证。米尔格拉姆的实验通常被称为“小世界实验”他通过邮寄包裹的方式试图证明普通人之间平均只需要通过几个中间人就能建立起联系。 六度空间理论在社会学、心理学、网络科学等领域都有广泛的应用它揭示了人类社会网络的紧密性和复杂性。随着互联网和社交媒体的兴起这个理论也被用来解释信息如何在网络中快速传播。 此外六度空间理论也启发了许多文化作品包括电影、电视剧、书籍和游戏等它们通常以探索人与人之间的联系和关系为主题。 值得注意的是虽然六度空间理论在理论上是有趣的但它并不意味着每个人都能够轻易地通过六个人与世界上的任何其他人建立联系。实际上能否建立起这样的联系还取决于许多因素如社会地位、文化背景、地理位置等。 路由器转发IP数据包的时候每个路由器其实不了解整个网络的全貌但是能够知道他相邻的设备有哪些所以即使通过少数的几次跳转也可以涵盖到大量的设备通常来说64这样的数值就够用的64也不一定就非得是这个数字都是可配置的32/128
8位协议这里就描述了在和部分是哪种协议的数据包交给TCP还是UDP还是其他的协议一个数据包在分用的时候要交给上层的哪个协议都是有明确的声明的传输层-应用层端口号来区分网络层-传输层报头里类型字段区分是IP数据包还是其他的数据包
16位首部校验和校验和只是针对IP首部进行校验载荷部分不关心载荷部分UDP/TCP都有各自的校验和IP只需要管好自己即可
32位源IP地址0-42亿9千万
32位目的IP地址原则上说不同的设备IP地址应该是唯一的不重复的上述这个数字在今天是不太够用的尤其是移动互联网
一个IP地址是一个32位整数为了能够让人更方便的观察把32位的整数通常表示成点分十进制的形式 QuestionIP地址不够用咋办 Answer 动态分配IP地址某个设备上网就分配不上网就不分配这样的机制只能缓解没法从根本上解决问题IP地址没有变多 NAT机制网络地址映射首先把IP地址分成两个大类私网IP局域网内部使用通常有10.*17216-172.31.*192.168.*公网IP广域网使用的此时约定公网IP唯一私网IP允许在不同的局域网重复当前虽然能上网的设备非常多但是绝大部分都是在局域网中的局域网1中的设备ip可以和局域网2中的设备ip重复 Question如果引入上述私网IP如何进行通信呢 Answer 同一个局域网内部设备之间进行通信由于一个局域网内部的设备之间的IP是不能重复的此时这些设备都能正常相互交互广域网设备和广域网设备之间通信要求广域网中的设备IP本身就是唯一的也能正常交互局域网1中的设备A尝试局域网2中的设备2这种情况认为不允许进行访问局域网中的设备主动访问广域网设备NAT技术广域网设备主动访问局域网设备这种情况认为不允许进行访问 因此如果需要进行上述的局域网设备和局域网设备之间的通信往往需要搭配广域网中的服务器进行数据转发 我的电脑要发送一个数据给csdn服务器此时我的电脑就会构造出一个IP数据包
运营商路由器也可以把它当作一个NAT设备它就会对中间经过的数据包经过网络地址转换当内网设备经过运营商路由器访问外网的时候它就会把IP数据包中的源IP替换成它自己的IP运营商路由器进行上述替换目的就是为了让自己的外网ip取代之前的内网ip 到达csdn服务器之后csdn就会看到一个有5.6.7.8这样的设备给它发了一个请求csdn服务器对于我自己电脑真实的内网IP是一无所知的
我自己电脑局域网内的其他电脑也是通过运营商路由器访问公网的所以这个局域网中的几百台/几千台设备都是通过一个外网IP在公网上进行传输的运营商路由器一个外网IP就能表示几千台甚至几万台这样的内网中的设备 这实际上对应的是运营商的公网IP这个公网IP不仅仅代表我电脑的还代表我手机的公网IP只有运营商的路由器设备才有公网IP你自己买的路由器是没有公网IP的 Question手机热点代表什么 Answer让手机变成路由器 从csdn服务器开始说起csdn要返回相应数据此时csdn只能看到5.6.7.8于是csdn构造的IP数据如下图 这个数据包就会返回给运营商路由器运营商路由器内部维护了一个”映射关系“就会记录说当前这个相应对应的查询到结果之后就可以把IP和端口替换回来了 随后这个数据包就会传输回我自己的电脑了假设我的电脑和手机同时访问csdn此时 源端口是系统分配的一个随机的空闲端口这俩端口大概率是不同的端口号碰巧一样小概率事件为了防止端口不够所以才会分区此时这两台设备同时构造IP数据包发送给运营商路由器 NAT机制 通过AI可知 NATNetwork Address Translation网络地址转换是一种在IP数据包通过设备如路由器时将数据包中的源IP或目的IP地址转换为另一个IP地址的技术。NAT允许一个整体机构以一个公用IP地址出现在Internet上同时内部网络可以使用私有IP地址。这样不仅可以有效利用公网IP地址还可以隐藏内部网络结构提高安全性。 NAT的基本原理包括静态NAT、动态NAT和端口地址转换PAT也称为NAPT或端口复用 静态NAT为内部网络中的每个主机永久映射一个外部网络中的合法地址多用于服务器。动态NAT使用一个地址池动态地将内部网络中的主机映射到外部网络的地址池中的地址。NAPT/PAT允许多个内部地址映射到一个外部地址的不同端口上实现多个私有IP地址共享一个公共IP地址上网。 NAT的工作原理是 内部主机发送数据包时NAT设备如路由器将源私有IP地址转换为公共IP地址。数据包在互联网中传输时其他设备看到的是转换后的公共IP地址。当外部服务器响应数据包时NAT设备将目标公共IP地址转换回内部的私有IP地址确保数据可以正确返回到原始请求的主机。 NAT技术的优点包括 - 节省公网IP地址多个私有IP地址可以共享一个公共IP地址。- 增强安全性内部网络的真实结构被隐藏减少了外部攻击的风险。- 支持负载均衡可以通过转换不同的源IP地址和端口来实现。 NAT技术的缺点包括 - 外部访问限制外部网络无法直接访问内部网络的特定设备。- 影响某些服务基于IP地址的安全策略和服务可能无法正常工作。- 对称性限制需要考虑到对称性即同一个内部主机的请求在转换后的IP地址和端口号要保持一致。 此外还有几种特殊的NAT类型如限制锥型NAT、端口限制锥型NAT和对称NAT它们在映射时对端口和IP地址有不同的限制和要求。 NAT技术广泛应用于家庭、学校和企业网络中使得多个设备可以共享一个公网IP地址上网同时也为内部网络提供了一定程度的安全保护。随着IPv6的推广NAT技术的重要性可能会逐渐降低因为IPv6提供了几乎无限的地址空间。 从IP地址看不出来如何进行中转的得看网线是如何接的需要看网络拓扑结构路由器负责分配IP地址也可以手动设置 这代表路由器自动给你分配路由器有一个功能DHCP配置错了就上不了网了
现实世界就是通过动态分配和NAT解决的IP不够用的问题虽然能解决但是这样的方案就给网络复杂程度增加了不少而且也没有从根本上解决问题如果随着设备进一步的增多一个外网NAT设备上面最多只能有6w多个表项
IPv6是终极方案引入了更长的字节数来表示IP地址IPv6拿16个字节来表示IP地址128位这是一个天文数字足以给地球上每一粒沙子分配一个唯一的IP
为啥现在世界上还是以IPv4为主呢IPv4和IPv6不兼容最开始使用IPv4的时候大家用的路由器交换机网卡各种设备都是支持IPv4的设备如果要升级成IPv6就得更换成支持IPv6的路由器/交换机/网卡为啥NAT技术能火NAT是纯软件的方案不需要换设备只要更新一下路由器上面的程序固件成本很低
IP地址基本规则
网段划分
同一个局域网的主机要按照一定的规则分配IP地址把一个IP地址IPv4分成两个部分前半部分网络号-标识局域网后半部分主机号-区分同一个局域网中的不同主机同一个局域网内部主机之间的IP网络号相同主机号要不同局域网之间网络号可以相同但是两个相邻的局域网同一个路由器wan口和lan处于两个不同局域网路由器就是连接两个局域网之间的桥梁一旦相邻的局域网网络号相同没法上网了
一个IP地址是32位那些是网络号哪些是主机号呢这里引入概念’
子网掩码Mask
也是32位整数左半部分都是1右半部分都是0不会01交替出现 此处子网掩码就是1111.1111.1111.0000此处前三个字节24位是网络号后8位是主机号如果让路由器自动分配生成IP肯定是符合要求的如果你自己设置就需要遵守上述规则
前面说的搭配子网掩码的网段划分是现在的方法上古时期还流传一种划分方式ABCDE五类
这种做法会浪费大量的IP
特殊的IP地址
主机号全0这样的IP表示网段不应该分配给具体的主机192.168.100.0这样的ip不能设置到主机上设置上去也上不了网主机号全1二进制这样的IP表示广播IP往广播IP上发送数据此时就会发送给局域网中的所有设备TCP不支持广播UDP才能支持127.*这样的地址环回IPloopback127.0.0.1往这个ip发送数据就是自己来接受微信可以自己给自己发消息即使你的电脑不联网也是能使用的即使你的电脑不联网也是能使用的mysql/tcp服务器/udp服务器客户端和服务器在同一个主机上此时就可以使用环回IP来进行访问你的电脑上会有一个虚拟的网卡环回网卡这个网卡的IP就是127.0.0.1但凡是往127.0.0.1上发送的数据都是通过这个网卡来转发的转发效果就是发给自己接下来自己就能收到
路由选择
找路例如高德地图的导航地图软件的导航是立足于全局的数据给你得到一个”最优解“地图厂商会有一些渠道把地理数据给收集好最优解不是说只有一种按照不同的角度得到最优解路线最短时间最短少换乘只做地铁
网络中路由器的寻路则无法做到”最优解“只能做到”较优解“每一台路由器无法知道整个网络的全貌但是可以知道它附近的网络设备情况是咋样的对于路由器来说在进行转发数据的时候很可能是无法一下就知道目的IP所对应的设备该如何达到只能通过启发式”探索式“逐渐找到最终的目标
路由的过程, 是⼀跳⼀跳(Hop by Hop) 问路 的过程. 所谓 ⼀跳 就是数据链路层中的⼀个区间. 具体在以太⽹中指从源MAC地址到⽬的MAC地址之间的帧 传输区间.
IP数据包的传输过程也和问路⼀样当IP数据包, 到达路由器时, 路由器会先查看⽬的IP路由器决定这个数据包是能直接发送给⽬标主机, 还是需要发送给下⼀个路由器依次反复, ⼀直到达⽬标IP地址那么如何判定当前这个数据包该发送到哪⾥呢? 这个就依靠每个节点内部维护⼀个路由表 路由表可以使⽤route命令查看如果⽬的IP命中了路由表, 就直接转发即可路由表中的最后⼀⾏,主要由下⼀跳地址和发送接⼝两部分组成,当⽬的地址与路由表中其它⾏都不 匹配时,就按缺省路由条⽬规定的接⼝发送到下⼀跳地址
启发式的过程走着瞧~
每个路由器虽然无法感知到整个网络结构的全貌但是可以认识到它周围的网络设备路由器中会维护一个数据结构路由表记录了周围的朋友都是啥样的
当路由器收到数据的时候就会根据目的IP查询路由表看看在路由表中是否存在如果存在好办直接按照目标的位置继续转发即可如果不存在就会从朋友中挑选一个最”神通广大“的朋友把这个数据交给这个最神通广大的朋友让它来帮忙想办法路由器的”下一跳表项“
文章转载自: http://www.morning.rnrfs.cn.gov.cn.rnrfs.cn http://www.morning.ogzjf.cn.gov.cn.ogzjf.cn http://www.morning.wfykn.cn.gov.cn.wfykn.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn http://www.morning.xglgm.cn.gov.cn.xglgm.cn http://www.morning.qllcp.cn.gov.cn.qllcp.cn http://www.morning.sqdjn.cn.gov.cn.sqdjn.cn http://www.morning.pzpj.cn.gov.cn.pzpj.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.yhywx.cn.gov.cn.yhywx.cn http://www.morning.nkmw.cn.gov.cn.nkmw.cn http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn http://www.morning.nlffl.cn.gov.cn.nlffl.cn http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn http://www.morning.ayftwl.cn.gov.cn.ayftwl.cn http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn http://www.morning.hjrjy.cn.gov.cn.hjrjy.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.rxcqt.cn.gov.cn.rxcqt.cn http://www.morning.hpmzs.cn.gov.cn.hpmzs.cn http://www.morning.rbgqn.cn.gov.cn.rbgqn.cn http://www.morning.kxgn.cn.gov.cn.kxgn.cn http://www.morning.lskrg.cn.gov.cn.lskrg.cn http://www.morning.attorneysportorange.com.gov.cn.attorneysportorange.com http://www.morning.dhrbj.cn.gov.cn.dhrbj.cn http://www.morning.tqjwx.cn.gov.cn.tqjwx.cn http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.gryzk.cn.gov.cn.gryzk.cn http://www.morning.hmwjk.cn.gov.cn.hmwjk.cn http://www.morning.nkkr.cn.gov.cn.nkkr.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn http://www.morning.tqjwx.cn.gov.cn.tqjwx.cn http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.bydpr.cn.gov.cn.bydpr.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.qydgk.cn.gov.cn.qydgk.cn http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.mrckk.cn.gov.cn.mrckk.cn http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.rngyq.cn.gov.cn.rngyq.cn http://www.morning.wbqk.cn.gov.cn.wbqk.cn http://www.morning.c7622.cn.gov.cn.c7622.cn http://www.morning.fywqr.cn.gov.cn.fywqr.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.nbrkt.cn.gov.cn.nbrkt.cn http://www.morning.pqwrg.cn.gov.cn.pqwrg.cn http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn http://www.morning.slzkq.cn.gov.cn.slzkq.cn http://www.morning.bgkk.cn.gov.cn.bgkk.cn http://www.morning.wpcfm.cn.gov.cn.wpcfm.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.uycvv.cn.gov.cn.uycvv.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.mflhr.cn.gov.cn.mflhr.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.snygg.cn.gov.cn.snygg.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.zdnrb.cn.gov.cn.zdnrb.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.chfxz.cn.gov.cn.chfxz.cn http://www.morning.rkrl.cn.gov.cn.rkrl.cn