网络基础TCP/IP

1. 协议

首先介绍下协议,协议是指双方或多方就一定问题经谈判、协商后而达成的共同决定。网络协议也是如此,为解决某一问题,而约定的规则。

2. TCP/IP协议

TCP/IP协议互联网相关的各类协议族的总称,也叫TCP/IP协议族TCP/IP协议栈。具体为什么将网络通信的各类协议统称为TCP/IP,是因为TCP和IP是最核心的两个协议,也是最早通过的标准。也有一种说法是指在IP协议的通信过程中,使用到的协议族的统称。

1. TCP/IP协议的分层

TCP/IP协议分为 4 层,分别为应用层传输层网络层数据链路层

应用层:是直接为应用进程提供服务的,用于通信的应用程序和用于消息传输的底层网络提供接口。是开放系统的最高层

传输层:传输层为应用层的下一层,接收应用层的数据,提供处于网络连接中的两台计算机之间的数据传输

网络层:网络层用于处理网络上流动的数据包,该层规定了通过怎样的路径到达对方的计算机。并把数据传送给对方。

数据链路层:用来处理连接网络的硬件部分。包括驱动、网卡、光纤。又叫网络接口层

分层的好处:将TCP/IP协议分为 4 层,是将整个数据传输过程模块化,各模块负责各自的职责,也就是职责单一化。

2. TCP/IP协议的通信传输流

以HTTP请求为例:
Step1:客户端在应用层发起的HTTP请求,应用层将HTTP请求数据(即HTTP报文)发送给传输层。

Step2:传输层(TCP协议)接收到应用层传递的数据之后,将数据分割成数据包,并在每个数据包中打上标记号和端口号(也叫TCP首部)后转发给网络层。

Step3:网络层在接受到传输层发送的数据之后,将通信目的地的MAC地址(也叫IP首部)添加到数据包中后,将数据转发给数据链路层

Step4:数据链路层将数据经过光纤、网线等等物理过程将数据传递到服务端的数据链路层

Step5:服务端的数据链路层将数据转发给服务端的网络层

Step6:服务端的网络层将数据转发给服务端的传输层

Step7:服务端的传输层将数据包整合后传递给服务端的应用层
image

3. TCP/IP的三次握手

A:吃饭了吗? (发送带有SYN标识的数据包)

B:吃了 (带有SYN/ACK标识的数据包)

C:好的,知道了 (带有ACK标识的数据包)

发送端——发送标有SYN的数据包———>接收端

发送端<—–发送标有SYN/ACK的数据包——接收端

发送端——发送标有ACK的数据包———>接收端