TCP/IP 协议族
- TCP/IP 协议族是互联网相关的各类协议族的总称
- TCP/IP 协议族的重要设计思想就是分层思想,TCP/IP 族将 TCP/IP 分为四层
- 应用层
决定向用户提供应用服务时通信活动 比如FTP协议、DNS域名解析系统、HTTP超文本传输协议 - 传输层
为应用层提供建立一条通信的信道连接 传输层也会把从应用层的到的数据切分成数据包 传输层典型的协议有TCP协议、UDP协议 - 网络层
网络层是用来传输处理从传输层获取得到的数据包 并对数据包加以封装通过 IP 协议进行传输 - 数据链路层
数据链路层是用来处理连接网络的硬件部分的
TCP/IP 分层思想的优势
- 层与层之间的工作相互独立
- 更好的可扩展性
- 下层为上层提供执行基础条件
- TCP/IP 通信传输图示
通信传输流程:
- 【1】应用层从客户端接收到报文数据
- 【2】应用层传给传输层,传输层给报文分段。并且加上传输层的 TCP 首部内容
- 【3】传输层将内容传给网络层,网络层将报文形成 IP 数据报并且添加网络层的 IP 首部
- 【4】网络层再将包含 TCP 和 IP 首部的 数据包传给数据链路层,数据链路层继续对其添加链路层
的首部并且形成数据帧 - 【5】最后数据链路层传给物理层形成二进制的比特流进行传输到接收方主机的物理层
- 【1】接收方的物理层接收到发送方发送的二进制比特流并进行重组传给数据链路层
- 【2】数据链路层识别数据帧并且去掉数据链路层的首部内容后传给网络层
- 【3】网络层接收到数据链路层传输的 IP 数据包并且去掉 IP 首部内容后传给传输层
- 【4】传输层接收到网络层的内容后并且去掉 TCP 首部内容并且对分段内容进行重组形成报文后
传给应用层 - 【5】应用层接收到传输层的报文后发送给接收方并且显示
IP 协议
- IP 网际协议位于 TCP/IP 模型中的网络层
- IP 协议传输的两个重要的前提条件
- IP 地址
- 针对节点分配的地址
比如说计算机节点本身的 IP 地址 - MAC 地址
- 针对计算机中的网卡所属的固定且唯一的地址
每块网卡都有其专有的 MAC 地址 - 在计算机中通常采用 ARP 协议来解析对方的 IP 地址反查对应得出 MAC 地址的一种协
议 ARP 协议是一种解析 IP 地址的协议来转化 MAC 地址的方式协议 - 由于受到网络设备的影响,我们很难去完全掌握互联网的传输过程的状况,这种情况下一般称为路由的选择,由于我们无法搞清楚传输内部路由是如何工作的所以我们也无法弄清楚具体的内部传输状况
TCP 协议
- TCP 协议位于传输层,它是属于面向连接的提供可靠的字节流服务的协议
字节流服务就是指为了方便应用层发来的报文数据,传输层将报文数据切分层一段段的报文段为单位的数据包进行传输和管理 - 为了达到安全可靠的连接,TCP 协议采用了“三次握手”保证准确无误的将数据传输到目的地和采用“四次挥手”断开一次 TCP 连接
在三次握手的过程中会使用 TCP 的标志信号 SYN 和 ACK 来记录握手的过程
- 三次握手:
【1】客户端1发送 SYN 信号给客户端2,客户端2接收到客户端1发送的 SYN 信号后,表示客户端1的发送正常且客户端2的接收正常 【2】客户端2随后在发送 SYN 信号并且返回 SYN/ACK 信号给客户端1 【3】客户端接收到 SYN/ACK 信号后,返回确认 ACK 信号,此时客户端1的发送和接收正常, 客户端2的发送和接收正常。完成三次握手通信
-
四次挥手 -
四次挥手原理: 【1】客户端1发送 FIN 信号请求关闭和客户端2的连接 【2】客户端2返回 ACK 信号表示接收到客户端1的关闭请求,此时客户端1处于半关闭的状态 【3】客户端2发送 FIN 信号请求关闭和客户端1的连接 【4】客户端1返回 ACK 信号表示接收到客户端2的关闭请求,此时关闭客户端1和客户端2的 连接 -
为什么在客户端1第一次发送 FIN 信号不会关闭而处于半关闭状态? 因为此时只是客户端1单方面的请求关闭与客户端1的连接,此时客户端1就不在具有发送数据的功能,但是由于处于半关闭状态而且客户端2可能存在未发送的数据, 所以客户端2就保留发送的功能,而客户端1还是可以接收客户端2发送的数据,当客户端2发送完数据后,发送确认关闭连接的 FIN 信号,此时客户端1收到并且返回确认关闭,此时才是真正意义上关闭一次 TCP 连接通信
|