【web】计算机网络网络层、应用层、数据链路层协议详解

【大家好,我是爱干饭的猿,本文介绍了网络层IP协议、数据链路层以太网、MTU、ARP、应用层DNS、NAT、NAPT和网络基础知识。

后续会继续分享HTTP(s)协议及其他重要知识点总结,如果喜欢这篇文章,点个赞,关注一下吧】

上一篇文章:《【web】TCP/UDP协议详解(字节二面:TCP三次握手、四次挥手)》


目录

1. 网络层重点协议

1.1 IP协议(Internet Protocol)

1 IP协议头格式

2. 数据链路层重点协议

2.1 以太网

1. 以太网帧格式

2.2 MTU

1. MTU对IP协议的影响

2. MTU对UDP协议的影响

3. MTU对于TCP协议的影响

2.3 ARP(通过IP找MAC)

1.  ARP协议的作用

2. ARP协议的工作流程 

3. 应用层重点协议 

3.1 DNS

3.2 NAT(内外网转换)

3.3 NAPT

4. 网络基础

4.1 认识IP地址

4.2 子网掩码

4.3 认识MAC地址

4.4 总结IP地址和MAC地址


1. 网络层重点协议

1.1 IP协议(Internet Protocol)

1 IP协议头格式

【web】计算机网络网络层、应用层、数据链路层协议详解_第1张图片

  • 4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4。
  • 4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节 数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。
  • 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留 字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。 这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于 ftp这样的程序,最大吞吐量比较重要。
  • 16位总长度(total length):IP数据报整体占多少个字节。
  • 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每 一个片里面的这个id都是相同的。 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第 二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表 示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。
  • 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是 在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此, 除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。
  • 8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是64。每次 经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出 现路由循环。
  • 8位协议:表示上层协议的类型。
  • 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。
  • 32位源地址和32位目标地址:表示发送端和接收端。
  • 选项字段(不定长,最多40字节):略。 

2. 数据链路层重点协议

2.1 以太网

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了 一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;

例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;

以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

1. 以太网帧格式

以太网的帧格式如下所示:

【web】计算机网络网络层、应用层、数据链路层协议详解_第2张图片

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应IPARPRARP
  • 帧末尾是CRC校验码。

2.2 MTU

MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。

  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
  • 不同的数据链路层标准的MTU是不同的;

1. MTU对IP协议的影响

  • 由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。 

2. MTU对UDP协议的影响

  • 一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个IP数据报。
  • 这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果 UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。

3. MTU对于TCP协议的影响

  • TCP的一个数据报也不能无限大,还是受制于MTU。
  • TCP的单个数据报的最大消息长度,称 为MSS(Max Segment Size);
  • TCP在建立连接的过程中,通信双方会进行MSS协商。 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于 数据链路层的MTU)。
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。 
  • 然后双方得知对方的MSS值之后,选择较小的作为最终MSS。
  • MSS的值就是在TCP首部的40字节变长选项中(kind=2);

2.3 ARP(通过IP找MAC)

ARP不是一个单纯的数据链路层的协议,而是一个介于 数据链路层和网络层之间的协议

1.  ARP协议的作用

ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。

  • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
  • 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
  • 因此在通讯前必须获得目的主机的硬件地址; 

2. ARP协议的工作流程 

【web】计算机网络网络层、应用层、数据链路层协议详解_第3张图片

 

  • 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求 广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);
  • 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包 给源主机,将自己的硬件地址填写在应答包中;
  • 每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般 为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来 获得目的主机的硬件地址

3. 应用层重点协议 

3.1 DNS

DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。

TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于 是人们发明了域名,并通过域名系统来映射域名和IP地址。

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址:

  • 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主机。
  • 域名解析使用DNS协议来传输数据。DNS协议是应用层协议,基于传输层UDP或TCP协议来实现。 

3.2 NAT(内外网转换)

NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能;

  • NAT能够将私有IP对外通信时转为全局IP。
  • 也就是就是一种将私有IP和全局IP相互转化的技术方法:很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的; 

【web】计算机网络网络层、应用层、数据链路层协议详解_第4张图片

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部,有一张自动生成的,用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAT技术的缺陷:

由于NAT依赖这个转换表,所以有诸多限制:无法从NAT外部向内部服务器建立连接;转换表的生成和销毁都需要额外开销;通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;

3.3 NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系 

【web】计算机网络网络层、应用层、数据链路层协议详解_第5张图片

这种关联关系也是由 NAT 路由器自动维护的。例如在 TCP 的情况下,建立连接时,就会生成这个表项;
在断开连接后,就会删除这个表项。

4. 网络基础

4.1 认识IP地址

1. 概念

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

2. 作用

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地 址,以此来屏蔽物理地址的差异。

3. 格式

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如: 01100100.00000100.00000101.00000110。

4. 组成

IP地址分为两个部分,网络号和主机号

网络号:标识网段,保证相互连接的两个网段具有不同的标识;

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

5. 分类

【web】计算机网络网络层、应用层、数据链路层协议详解_第6张图片

【web】计算机网络网络层、应用层、数据链路层协议详解_第7张图片为了IP地址浪费的问题解决以上问题,引入子网掩码来进行子网划分

4.2 子网掩码

1. 格式

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。 子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

2. 作用

(1)划分A,B,C三类 IP 地址子网: 如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。 假设使用子网掩码 255.255.128.0(即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络 号,也就是将原来16位主机号,划分为1位子网号+15位主机号。 此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号/ 网段)

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

3. 计算方式

将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。 将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。

示例: 

 【web】计算机网络网络层、应用层、数据链路层协议详解_第8张图片

4.3 认识MAC地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地 址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址。 

特殊的MAC地址广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。广播数据报的MAC地址为:FF:FF:FF:FF:FF:FF 

4.4 总结IP地址和MAC地址

  • IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址。
  • MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备使用的网络物理地址。

 


分享到此,感谢大家观看!!!

如果你喜欢这篇文章,请点赞关注吧,或者如果你对文章有什么困惑,可以私信我。

你可能感兴趣的:(Web,tcp/ip,网络,服务器)