1.1 体系结构原则

本章节中谈到一个重要概念 :分组交换 (即:将信息切片成多块 分多次发出,接收方接收后组合,从而得到完整的数据) 。在此概念的基础上,可以使网络更有弹性,可以更好的利用网络中的网络链路和交换设备。 影响TCP/IP协议族设计的重要原则—->端到端论点(Q:不理解)

1.2 设计和实现

本章节中又谈到一重要概念:分层  (即:每一层负责通信的一个方面) 说到分层也不得不提到 OSI 七层模型(开放系统互连标准)但因并不是所有的网络设备都需要实现七层 和 其他原因 而被TCP/IP取代。 本章节中的另一个重要概念:封装 封装通常与分层一起使用。作为发送方,高层传来的PDU(什么是PDU?)在低层作为不透明的数据来处理。(多数协议封装过程中使用头部,少部分协议使用尾部)

1.3 TCP/IP 协议族结构和设计

基于ARM 或 TCP/IP的协议分层被用于Interenet。相较于OSI 这里没有会话层和表示层。 从下往上为 链路层”非正式”、网络层、传输层 和 应用层。 链路层:在此层工作的 地址解析协议(ARP)。它是IPv4的专用协议,将物理地址与网络层要用的IP地址之间的转换。

PS:这里把网络层一分为二方便理解



网络层(0.5):此层工作着TCP/IP中最重要的网络层协议—IP协议 这里将IP自上往下发送给链路层的PDU称为 IP数据报 (大小64KB 在 IPv6中扩大为 4 GB) 大的分组(什么是分组?)从上往下想要封装进链路层PDU(链路层的分组叫做帧)时 需要进行分片处理 分片后发送至接收方,即上文提到的 分组交换。 每一个IP数据报都该包含着发送方和接收方的网络层地址(即 IP地址 32位的IPv4 和128位的IPv6)从发出开始 经过转发(大部分数据报不能直接发送到接收方,决定和发送数据报下一跳的过程称为转发)而IP地址有包括三种:单播(目的地是一台主机)、广播地址(目的地是一个网络中的所有主机)、以及组播地址(目的地是属于组播组中的一组主机) 网络层(1.0):该层工作着许多协助辅助IP协议的协议(如:IGMP



传输层:此层工作着一种面向连接的协议—传输控制协议(TCP):该协议会处理数据包丢失、重复和重新排序等IP层不处理的问题 同时也不保留消息边界(Q:什么是消息边界?) 同时也工作着用户数据报协议(UDP)相比较于TCP,UDP允许应用发送数据报并保留消息边界,但不强制实现速率控制以及差错检测。 TCP 在两台主机之间提供可靠的数据流传输。同时也负责很多工作 eg:将来自应用的数据报分解成适合在网络层中传输的尺寸;确认接收到的分组和设置超时。正是由于传输层提供这种可靠的数据流传输,获益应用层可以忽略很多细节。(TCP从上往下发从至IP层的PDU称为 TCP段) 而UDP就简单的多,允许数据报从一台主机发送到另一台主机,但不保证能到达另一端。所以可靠的数据流传输得依靠应用层提供。 同时还有两种工作与传输层的协议,但由于运用不广泛,这里不过多赘述:数据报拥塞控制协议(DCCP )流控制传输协议(SCTP)

TCP/IP 中的 复用、分解和封装

例子:链路层从Interenet接收到传入的帧后,检查目的地址 是否匹配,若不是则转发,若是则接收并校验差错,之后去除封装的头部 检查类型字段(0x0800 – IPv4 | 0x806 – ARP| 0x86DD IPv6),之后再进行 IP协议字段(IPv6中称为下一个头部字段)的分解再决定传输层由什么协议来处理。(1 – ICMP | 2 –IGMP| 4 – IPv4| 6 – TCP | 17 – UDP)(Q:为何会出现4 以及 41?



端口号(0 — 65535):由 IANA 分配。其中包括(0 – 1023)熟知端口号、(1024 – 49151)动态端口号 以及(49152 — 65535)私有端口号。常见端口等内容请自行查询。 DNS :每一台主机的每一个链路层接口都包含有一个IP地址,但它们不方便被人们记住或操作(尤其是IPv6)。DNS 提供 主机名 与 域名 之间的映射。同时DNS 是一个应用层协议。之后会详细介绍 再此 不过多赘述。