前言:
当前咱们对“单个文件最大长度计算方法”可能比较重视,姐妹们都需要了解一些“单个文件最大长度计算方法”的相关内容。那么小编同时在网上网罗了一些关于“单个文件最大长度计算方法””的相关文章,希望我们能喜欢,兄弟们一起来了解一下吧!IP的基本认识
IP在TCP/IP参考模型中处于第三层,也就是网络层
网络层的主要作用是:实现主机和主机之间的通信,也叫做点对点通信
问:网络层与运输层的关系
网络层(IP)提供点到点的服务,运输层(TCP/UDP)提供端到端的服务
问:网络层和数据链路层的关系
有的小伙伴分不清 IP(网络层) 和 MAC (数据链路层)之间的区别和关系。
其实很容易区分,在上面我们知道 IP 的作用是主机之间通信用的,而 MAC 的作用则是实现「直连」的两个设备之间通信,而 IP 则负责在「没有直连」的两个网络之间进行通信传输。
举个生活的栗子,小林要去一个很远的地方旅行,制定了一个行程表,其间需先后乘坐飞机、地铁、公交车才能抵达目的地,为此小林需要买飞机票,地铁票等。
飞机票和地铁票都是去往特定的地点的,每张票只能够在某一限定区间内移动,此处的「区间内」就如同通信网络中数据链路。
在区间内移动相当于数据链路层,充当区间内两个节点传输的功能,区间内的出发点好比源 MAC 地址,目标地点好比目的 MAC 地址。
整个旅游行程表就相当于网络层,充当远程定位的功能,行程的开始好比源 IP,行程的终点好比目的IP 地址。
如果小林只有行程表而没有车票,就无法搭乘交通工具到达目的地。相反,如果除了车票而没有行程表,恐怕也很难到达目的地。
因为小林不知道该坐什么车,也不知道该在哪里换乘。因此,只有两者兼备,既有某个区间的车票又有整个旅行的行程表,才能保证到达目的地。与此类似,计算机网络中也需要「数据链路层」和「网络层」这个分层才能实现向最终目标地址的通信。
还有重要一点,旅行途中我们虽然不断变化了交通工具,但是旅行行程的起始地址和目的地址始终都没变。其实,在网络中数据包传输中也是如此,源IP地址和目标IP地址在传输过程中是不会变化的,只有源 MAC 地址和目标 MAC 一直在变化。
网络:数据链路层VS网络层
在网络中,不同的层有不同的标识:
数据链路层的标识是MAC地址网络层的标识是IP地址传输层的标识就是UDP或者TCP的端口号MAC地址什么是MAC地址
MAC地址也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。
MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址
MAC地址由网络设备制造商生产时烧录在网卡的EPROM(一种闪存芯片,通常可以通过程序擦写)
Mac地址是由一个48位(6字节)的二进制,为了方便记忆,常转为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性。工作过程
网络上的数据包从初始点开始 ,经过一个个中间节点最终到达目标节点 ,数据包是如何从初始节点开始识别一个个中间节点最终找到目标节点的呢?
实际上初始节点是根据目标节点的地址 ,将目标节点的IP地址映射到中间节点的MAC地址,找到第一个中间节点。从第一个中间节点出发,根据目标节点的IP地址映射到第二个中间节点的MAC地址,从而找到第二个中间节点……,以此类推,直到当找到最后一个中间节点后,从最后一个中间节点出发,根据目标节点的地址映射到目的节点的MAC地址,从而将数据包传送给目标主机。所以数据包的传送过程就是:不断地将目标节点的地址映射到一个个中间节点的MAC地址,再从一个个中间节点出发,直到找到最终的目标节点
数据包传送的关键是将目标节点的IP地址映射到中间节点的MAC地址。IP地址与MAC地址的映射要通过ARP地址解析协议来完成。
MAC头
生成了 IP 头部之后,接下来网络包还需要在 IP 头部的前面加上 MAC 头部
MAC 包头格式
MAC头是以太网使用的头部,它包含了接收方和发送发的MAC地址等信息
ARP工作原理解析:
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。第5步:主机A收到主机B发来的ARP回复消息时,用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。2、以太网2.1 概念
以太网不是具体的网络,而是一种技术标准。包含数据链路层和物理层的内容。例如:规定了网络拖拓扑结构、访问控制方式、传输速率。
以太网是当前最广泛的局域网技术,还有令牌环网,无限LAN等。
3、最大传输单元MTU
这个限制是不同的链路层对应的物理层的限制。
以太网帧中的数据长度规定最小46字节,最大1500字节(ARP:如果不够46字节,则要在后面补填充位);如果大于1500字节,必须在网络层分片。
MTU的最大值为1500,称为以太网的最大传输单元,不同的网络类型有不同的MTU
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片。
3.1 MTU对IP地址的影响
由于链路层存在MTU的限制,导致网络层的报文如果超过1500字节,就必须要对齐进行分片发送。
将ip包分成多个小包,每个小包的ip协议头的16位标识都是相同的。
每个小包的3位标志字段中,第一位保留;第二位为1,表示禁止分片;第三位标识结束标识,置为1。
达到对端之后,将这些小包按照顺序重组,拼接完成后返回给传输层。如果任一小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。
3.2 MTU对UDP协议的影响
一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个ip数据报;
任意一个丢失,那么就会在接收端的网络层重组失败。如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加。
3.3 MTU对TCP的影响
TCP数据报也不能无限大,单个数据报的最大消息长度,称他为MSS。
双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。然后双方得知对方的MSS值之后选择较小的作为最终的MSS。MSS的值就是在TCP首部的40字节变长选项中(kind=2)。
MSS = MTU - TCP首部 - IP首部,既TCP报文的数据长度
4、数据链路层的三个基本问题4.1 封装成帧
封装成帧:帧是数据链路层的传送单位。一个帧的帧长等于帧的数据部分加上帧的首部和尾部的长度。首部和尾部的一个重要作用是帧定界(确定帧的界限)。每一种链路层协议都规定了所能传输的帧的数据部分的上限既最大传输单元MTU。
对于帧定界做以补充:
1)当数据是由ASCII组成的文本文件时,使用特殊的帧定界符。
SOH(Start Of Header)放在帧的最前面,表示帧的开始。十六进制编码是01(二进制00000001)
EOT(End Of Transmission)表示帧的结束。十六进制编码是04(二进制00000100)
SOH和EOT只是控制字符的名称。
4.3 差错检验
在计算机网络传输数据时,必须采用各种差错控制技术。目前在数据链路层广泛使用了循环==冗余检验(CRC)==的检错技术。
为什么数据链路层要以帧为单位来传送数据呢? 因为如果不以帧为单位,就无法加入冗余码来进行差错检验。
5、点对点协议PPP
一个主站轮流和链路上的多个从站进行通信。只支持点对点的链路通信,只支持全双工链路。
PPP协议的三个组成部分:
1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
3)一套网络控制协议NCP。
1)标志字段F:0x7E(01111110):表示一个帧的开始或者结束。标志字段就是PPP帧的定界符。
2)地址字段A:0xFF(11111111)
3)控制字段C:0x03(00000011)
4)协议字段:为0x0021时,PPP协议帧就是IP数据报;为0xC021时,信息字段就是PPP链路控制协议LCP的数据;为0x8021时表示网络层的控制信息。
5)FCS:使用CRC帧检验的冗余码。
6、其他重要的协议或技术
6.1 、NAT技术
一种将私有IP和全局IP转换的技术
1)静态NAT(一对一)
内部网络的私有ip地址转换成公有ip地址
2)动态NAT(多对多)
私有IP地址可随机转换为任何指定合法的IP地址
3)网络地址端口转换 NAPT(多对一)
改变外出数据包的源端口并进行端口转换
NAPT是使用最普遍的一种转换方式,它有两种转换方式:SNAT,DNAT
源NAT(SNAT):修改第一个数据包的源地址。伪装数据包就是SNAT的例子。
目的NAT(DNAT):修改第一个数据包的目的地址。如平衡负载、端口转发、透明代理
6.2 NAT和代理服务器
代理服务器:客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果传给客户端。
NAT和代理服务器的区别
1)应用上:NAT设备是网络基础设备之一解决IP不足的问题。代理服务器更贴近具体应用
2)底层上:NAT是工作在网络层,直接对ip地址进行替换。代理服务器工作在应用层。
3)范围上:NAT一般在局域网出口部署。代理服务器可以在局域网,也可以广域网,也可以跨网。
4)部署位置:NAT一般集成在防火墙,路由器等硬件设备。代理服务器则是一个软件程序,需要在服务器上
IP基础
在TCP/IP网络通信时,为了保证能够正常通信,每个设备都需要配置正确的IP地址。否则无法实现正常的通信
互联网上的每个接口必须有一个唯一的Internet地址(也叫做IP地址)多接口主机具有多个IP地址,其中每个接口都对应一个IP地址。由于互联网上的每个接口必须有一个唯一的IP地址,因此必须要有一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网网络信息中心,称作InterNIC(Internet Network Information Center)。InterNIC只分配网络号。主机号的分配由系统管理员来负责。有三类I P地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。IP地址(ipv4)由32位二进制数来表示。因此IP地址的最大值是 2 3 2 = 4294967296 2^32=4294967296 232=4294967296,即最大允许 43 亿台计算机连接到网络。实际上,IP 地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。因此,让 43 亿台计算机全部连网其实是不可能的。IP 地址是由「网络标识」和「主机标识」这两个部分组成的,所以实际能够连接到网络的计算机个数更是少了很多「网络标识」唯一标记一个局域网「主机标识」唯一标记局域网中的一台主机现在的网络设备早就超过了43 亿了,为了解决IP不足的问题,提出了NAT技术。 后来,又有了ipv6
为了方便记忆,我们采用了点分十进制的标记方式处理IP地址:将32位的IP地址以每8位为组,共分为 4
组,每组以「.」隔开,再将每组转换成十进制
IP地址(add):
ip地址是什么:
1. ip地址是互联网协议地址,也因特网协议地址也叫网际协议地址。
2. ip地址是为了能让互联网中的计算机进行相互通信而设计的。
ip地址的作用:
1.ip地址的作用是为了区分不同的网络主机!
ip地址的组成:
1.IP地址是由32位的二进制数组成,为了简化,将ip地址分为4组。每组8位。
2.ip地址内包含网络识别码(network id,也叫网络id)与主机识别码(host id,也叫主机id)。
ip地址的类型:
ip地址有总有5种类型,分别是:A、B、C、D、E;但可供一般主机也就是我们使用的只有:A、B、C三种类型!所以下面只讲A、B、C三种类型的地址!因为另外两个我们接触不到,故没必须去看它。
子网掩码:
子网掩码不能单独使用,必须与IP地址一起使用,子网掩码的主要作用就是用来区分IP地址是不是在同一子网/网段。子网掩码区分ip地址是不是在同一网段的方法是拿二进制的IP地址与二进制的子网掩码做AND运算。最后得出“网络地址”,得到了“网络地址”之后我们就知道该子网范围内的第一个地址,然后我们只需要将“子网掩码”取反然后与“子网络地址”进行or运算得出“广播地址”!,然后通过“网络地址与广播地址”就可以确定子网范围,在通过子网范围确定两个地址是不是在同一子网/网段下。可能这里说着很懵,但是不要怕,因为后面举例说明论证。
子网掩码作用:
子网掩码的主要作用是用来区分ip地址是不是在同一子网/网段。
子网掩码作用:
子网掩码的主要作用是用来区分ip地址是不是在同一子网/网段。
子网/网段区分规则:
通信双方地址都在同一个网络地址范围内(如双方子网掩码相同的情况下);或者通信地址互在对方的子网范围内,也就是通信地址被双方的子网地址范围相互覆盖。(如:A地址的子网范围内地址包含B地址,B地址的子网范围内的地址包含A。这种情况下即使双方的子网掩码不一样也是可以相互通信的,会被当成同一子网/网段!)
标签: #单个文件最大长度计算方法 #什么是internet网络协议