转载部分

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

2021-07-01  本文已影响0人  程序猿TODO

一、 计算机网络体系结构分层

不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

二、 TCP/IP 基础

1. TCP/IP 的具体含义

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。

互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

2. 数据包

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

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

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

数据包首部

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。

3. 数据处理流程

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

三、传输层中的 TCP 和 UDP

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。

1. 端口号

数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

1.1 根据端口号识别应用

一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。

通过端口号识别应用

1.2 通过 IP 地址、端口号、协议号进行通信识别

1.3 端口号的确定

1.4 端口号与协议

  1. UDP
  1. TCP

3.1 三次握手(重点)

下面来看看三次握手的流程图:

三次握手

3.2 四次挥手(重点)

下面来看看四次挥手的流程图:

四次挥手

上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,

具体流程如下图:

同时挥手

3.3 通过序列号与确认应答提高可靠性

3.4 重发超时的确定

3.5 以段为单位发送数据

3.6 利用窗口控制提高速度

3.7 滑动窗口控制

滑动窗口

3.8 窗口控制中的重发控制

在使用窗口控制中, 出现丢包一般分为两种情况:

四、网络层中的 IP 协议

1. IP 地址

1.1 IP 地址概述

如下图,IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机。

IP地址的网络标识

1.3 IP 地址的分类

*** IP 地址分为四个级别,分别为A类、B类、C类、D类。它根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分。**

1.4 广播地址

1.5 IP 多播

1.6 子网掩码

2.1 IP 地址与路由控制

  1. IP 分包与组包

3.1 路径 MTU 发现

  1. IPv6

4.1 IPv6 的特点

4.2 IPv6 中 IP 地址的标记方法

4.3 IPv6 地址的结构

4.5 链路本地单播地址

4.6 唯一本地地址

4.7 IPv6 分段处理

4.8 IP 首部(暂略)

  1. IP 协议相关技术

5.1 DNS

5.2 ARP

5.3 ICMP

5.4 DHCP

5.5 NAT

5.6 IP 隧道

夹着 IPv4 网络的两个 IPv6 网络

上一篇下一篇

猜你喜欢

热点阅读