切分ip_TCP/IP协议

一.OSI七层模型

    OSI模型指的是Open System Interconnection Reference Model,即开放式系统互联模型。它是世界上第一个试图在世界范围内规范网络标准的框架,但是因为实在太过复杂与繁琐,基本上没人执行它。

71baf871a2617a55f2066cc6d8359ec5.png

1.应用层 

    应用层位于OSI模型最上方

    只关心业务逻辑,不关心数据的传输

2.表示层

    负责协商用于传输的数据格式,并转换数据格式

4e6a4587b1368f2d5c706d8d21349016.png

3.会话层

    负责管理两个连网实体间的连接

    功能及特点:建立连接,维持通信,释放连接

5f3f6cf032a3191ae0ff2d204a76ae34.png

4.传输层

    负责将数据从一个实体(一个服务或应用)传输到另一个实体,但不负责数据传输的方式。

5.网络层

    负责把一个封包从一个IP地址传输到另一个IP地址

6.链路层

    确保两个临近设备间数据的传输,并隐藏底层实现

    帧同步:两个设备之间传输时的协商速率问题

7.物理层

    封装和隐藏具体的传输手段,并且提供稳定的传输接口

    比如:电缆、光纤、蓝牙等

二.TCP/IP五层模型

87086cab9f098b9dd1e062c2312fac66.png

1.应用层

    数据从一个应用发往另一个应用的过程

2.传输层

    主机到主机之间的传输

    可选协议:TCP协议、UDP协议、TLS/SSL、SCTP等

3.网络层

    提供路由和寻址

    可选协议:IP协议(ipv4和ipv6)、ICMP协议、IPSec协议

4.数据链路层

    两个节点之间的物理连接

5.物理层

    负责0-1信号的传输

三.数据分段分片

    在数据传输过程中,数据量大,网络底层设备不支持,需要将数据拆分成多个数据块,数据分块后在接收端需要重组,所以需要使用首部来添加一些描述字段。

包、帧、数据包、段、消息

以上五个术语都用来表述数据的单位,大致区分如下:

  • 包可以说是全能性术语;

  • 帧用于表示数据链路层中包的单位;

  • 数据包是 IP 和 UDP 等网络层以上的分层中包的单位;

  • 段则表示 TCP 数据流中的信息;

  • 消息是指应用协议中数据的单位。

TCP分段与IP分片

    MTU(最大传输单元)是链路层中的网络对数据帧的一个限制,以太网为例,MTU为1500个字节。

    MSS(最大分段大小)是TCP数据包每次能够传输的最大数据分段,TCP报文段的长度大于MSS时,要进行分段传输。

    在IP协议层数据长度如果大于MTU,就要进行分片传输,使得每片数据报的长度小于MTU。

    MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以如果用链路层以太网,MSS的值往往为1460。

    TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明显,分段后的每一段TCP报文段再加上IP包头后的长度不可能超过MTU,TCP报文段很少会发生IP分片的情况。

    每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

ac2194f251436869d828acf124e34bc2.png

下图以用户 a 向用户 b 发送邮件为例子:

ccd9f0f1766805d9c51da28dd903d7c4.png

三.TCP协议

    TCP全名是(Transport Control Protocol),是一个可以提供可靠的、支持全双工(任何时刻都能双向发送数据)、连接导向的协议,因此在客户端和服务端之间传输数据的时候,是必须先建立一个连接的。

    在TCP对数据块增加的头部信息中包含源端口号、目标端口号、标志位、序列号等。

    TCP拥有一个16bit的Checksum字段,Checksum是一个函数,把原文映射到一个不可逆的16bit的编码中这样就可以知道原文传输过程中有没有发生变化

    标志位包括:

  • NS、CWR、ECE:TCP扩展协议

  • ECN:显示拥塞控制协议,有助于帮助解决延迟和丢包问题

  • URG:紧急标志位

  • SYN(Synchronize Sequence Numbers):同步序号,也就是在建立连接

  • FIN:终止连接

  • ACK(Achnowledgment):响应

  • PSH(push):传送数据

  • RST(Reset Connection):重置连接

e1f2842553377386aab32c453c9ab9be.png

连接建立(三次握手)

a8008a8a6b4b02242410dd1bc3919205.png

数据传输

    应用层数据很大时无法一次性传输完,拆分后可实现并行传输

cf08f8ae27797d7d8027a52d1fd8a572.png

    数据包在传输过程中,会被标注序列号,通过序列号可以保证所有传输的数据按照正常的次序进行重组,而且通过确认保证数据传输的完整性。

6f5528493a3a9201cf6060f6ca517867.png

    TCP的序列号包括发送序号(Seq)、接收序号(Ack),一个端的发送序号是另一个端的接受序号。

22b60e1e5d5725b3ca7abfd502b49462.png

断开连接(四次挥手)

861deba8e0b99a7b385ce1cabd5e2363.png

四.UDP协议

UDP(User Datagram Protocol)协议称为用户数据报协议,为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

由于UDP数据报不会自己进行分段,因此当长度超过了MTU时,会在网络层进行IP分片

    UDP的封包格式:

363d9bab2631c2643934455382b5ffdb.png

    UDP/TCP对比:

425b47ef45eb7b5cfc315ec13ac7b983.png

五.IP协议

    IP协议(Internet Protocol)目前主要有两种架构,IPv4和IPv6,IPv4是目前应用最广泛的互联网协议。

    分片:把数据切分成片,适配底层传输网络,IP数据报的分片与重组是在网络层完成的。

36163857bca7861243107854a87c2552.png

IPv4协议头

85d12165ec352130069900e34e8b36c5.png

  • Type Of Service:服务的类型,是为了响应不同的用户诉求,用来选择延迟、吞吐量和丢包率之间的关系。

  • IHL(Internet Header Length):IP协议头的大小。

  • Total Length:报文(封包datagram)的长度

  • Identification:报文的ID,发送方分配,代表顺序

  • Fragment offset:描述是否要分包(拆分),和如何拆分。

  • Time To Live:封包存活的时间。

  • Protocol:描述上层的协议,比如TCP=6,UDP=17

  • Options:可选项

  • Checksum:检验封包的正确性

IP地址组成

    IP地址由两部分组成,一部分为网络地址,另一部分为主机地址。IP地址分为A、B、C、D、E 5类,它们适用的类型分别为:大型网络;中型网络;小型网络;多目地址;备用。常用的是B和C两类。

b0b712f9946c329a2f10e75486e2966d.png

由此可得出按此分类方式得到的IPv4地址空间划分:

614cbe125f5d0d0702e2cc6a1bc54df7.png

路由与寻址

    IPv4通过逐级寻址逐级找到网络,最后定义设备,IP地址和子网掩码位与的过程是由路由算法实现的。

    在路由器中,维护了一张路由表,根据路由表找到下一跳的地址,在下一跳的过程中,只修改帧最外层的MAC地址,以自己的地址作为源 MAC 地址,下一跳的地址作为目标 MAC 地址。

    最后一个路由收到该帧,发现目标 IP 就在自己的直连网段,于是查看 ARP 缓存(缓存路由器各直接网段的 IP 地址和 MAC 地址的对应关系,每个主机中也有ARP 缓存表),如果找到该 IP 的 MAC 地址,则以该 MAC 地址封装数据发送出去,如果在 ARP 缓存没找到,则发出 ARP 广播,请求该 IP 的 MAC 地址,得到对应的 MAC 地址后,经过交换机再发送给对应主机 ,在交换机中也维护着一张MAC地址表。

IPv4寻址逐级寻址过程

0d0acf5950eab69c2d8329f23df60e60.png

daa3ba02882e8ffb75cc34308e059071.png

01. 103.16.3.17 最顶层的网络号和 255.0.0.0 (子网掩码)做位与运算得到

7f912532f886c6e3d2ff7b82b3e99c23.png

02. 用IP地址和下一级的子网掩码做位与

2014bea78de1f97c34ff5bcb77d4eed9.png

03. 使用 255.255.255.0 子网掩码找到下一级网络

d9228aee4b2f4ad66200bd96cbf0bf2d.png

04. 设备就在子网 103.16.3.0 中;最终找到的设备号是 17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值