TCP/IP协议族可按层次划分为四层,从上层到底层为:应用层,传输层,网络层, 数据链路层。知道了TCP/IP协议是进行分层设计的,很多好奇心强的同学肯定会又疑惑,为什么要分层进行设计,为什么又是按照这四个层级进行划分。

假设整个协议都是一个整体,没有进行层次化的设计,那么如果协议需要进行调整的时候,那就需要对整个协议进行修改。但是,进行分层解耦之后,每一层的内容相对独立,互不影响。需要进行变更的时候就只需要针对某一层的协议内容进行做变动,不会影响到其他几层的内容。其实和开发过程中的模块封装解耦一样。

有的同学会有疑问,网络模型不是七层的吗,这里怎么变成了四层。其实将这四层在再次细分划出去之后也就变成了七层模型。这篇文章主要是为了讲解一下tcp/ip协议族的四层设计思想,故不针对四层和七层模型做过多讲解。

先看看tcp/ip协议族分层之后的总体设计:

ISO七层模型设计:

两种设计的对应层数划分关系:

具体设计差异以及ISO七层模型的讲解,放到后续的文章中。


ok,回到主题上来。下面开始介绍四层模型每层的作用以及整体是如何实现通信的。
先上通信的整体结构图:

我们先从应用层开始讲起:
应用层决定这次通信的应用类型,比如说FTP、DNS、SMTP等等,同时HTTP协议也属于应用层的范围。通俗来讲,应用层决定这一次通信要干嘛。

传输层:传输层提供两台计算机之间的数据传输,传输层中包含着两个很叼的协议,分别是TCP和UDP协议。面试中经常提及的三次握手,四次挥手就是TCP协议的部分内容

网络层:网络层则是用来处理这些流动的数据包,也就是如果把相应的数据包路由到指定的地点,为通信时的网络传输选择传输路线

数据链路层:数据链路层包含了软件与硬件的接口部分,以及各种网络设备的硬件,也就是整个网络通信过程中最底层的基础设施

简单了解了每一层的作用之后,我们试着串起来,摸索一下一次整体的http请求到响应的过程。
拿访问google做个例子

0.访问google.com,按下回车。

1.应用层准备好请求报文,通过DNS服务进行域名解析,得到google的ip地址,并将报文发到传输层。

2.传输层收到报文后,会将请求的数据包进行拆分,打包,并对每个包裹打上tag。在请求报文的基础上,加上一层TCP的首部信息,然后发往网络层。

3.到了网络层以后,IP协议就发挥了巨大的作用,IP协议中需要两个比较重要的信息,那就是ip地址和mac地址。ip已经在应用层通过dns解析出来了,那mac怎么办。。。真尴尬,然而这时ARP协议又冒了出来,它可以根据ip地址反向查询到目标主机的mac地址。好了,现在啥都有了,打包带走,把数据发到数据链路层。

4.终于走到基础设施这里了,此时数据包就在一根根光纤中旋转跳跃的奔向目的地,当然,整个过程不一定是直达的,可能需要经过各种中转站,就跟坐火车转车一样的。

5.请求到达服务器后,先从数据链路层往上走,并验证消去以太网首部信息,在网络层消去IP首部,在传输层消去TCP首部,就像剥洋葱一样一层一层去皮,最后剩下的就请求报文。在应用层对请求做出处理之后,需要对请求返回一个响应。而整个响应的传输过程就和请求一样,一层一层的封装,响应到达客户端时再一层一层的消去首部,最后呈现响应的结果。

好了,看完这篇文章,你应该对TCP/IP协议族的四层模型有一个相对清晰的认识了。然而,这只是个比较粗略的过程,因为里面很多的细节都没有涉及。后续的文章中,会对这些细节进行剖析,让自己能够更加深入的了解学习协议,也能够为学习的同学分享知识,和乐而不为。

TCP/IP协议族四层模型简述相关推荐

  1. OSI模型与TCP/IP协议族

    文章目录 一.分层思想 二.OSI参考模型 1.国际标准化组织ISO 2.OSI七层参考模型 三.TCP/IP协议族 OSI模型与TCP/IP模型 TCP/IP协议族的组成 四.数据封装与解封装 五. ...

  2. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols) ...

  3. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

  4. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  5. 网络传输之TCP/IP协议族

    我们现实网络无处不在,我们被庞大的虚拟网络包围,但我们却对它是怎样把我们的信息传递并实现通信的,我们并没有了解过,那么当我们在浏览器中出入一段地址,按下回车这背后都会发生什么? 比如说一般场景下,客户 ...

  6. 【1】TCP/IP协议族详解-概述

    声明:本博客参考<TCP/IP详解卷一:协议> 1.背景介绍 TCP/IP起源于6 0年代末美国政府资助的一个分组交换网络研究项目,到 9 0年代已发展成为计算机之间最常应用的组网形式.它 ...

  7. OSI参考模型 TCP/IP协议族 数据封装与解封过程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一. OSI参考模型和TCP/IP协议族 1.OSI七层参考模型 ①应用层 ②表示层 ③会话层 ④传输层 ⑤网络层 ⑥数据链 ...

  8. 5、TCP/IP协议族

    上节<OSI网络七层模型简明教程>中讲到,目前实际使用的网络模型是 TCP/IP 模型,它对 OSI 模型进行了简化,只包含了四层,从上到下分别是应用层.传输层.网络层和链路层(网络接口层 ...

  9. 了解一下TCP/IP协议族

    在<简单说说OSI网络七层模型>中讲到,目前实际使用的网络模型是 TCP/IP 模型,它对 OSI 模型进行了简化,只包含了四层,从上到下分别是应用层.传输层.网络层和链路层(网络接口层) ...

最新文章

  1. SQL Server 储存过程的output 参数
  2. 团队-及格成绩查询系统-设计文档
  3. mysql索引执行计划_第六章· MySQL索引管理及执行计划
  4. boost::process::throw_on_error相关的测试程序
  5. dataframe只打印第一行_linux/unix下如何使用命令行删除文本文件的第一行?
  6. input输入框修改后自动跳到最后一个字符
  7. Build 2021 :正式发布.NET 6 Preview4
  8. springboot整合rocketmq_面试官:简单说一下RocketMQ整合SpringBoot吧
  9. 一篇google developer 安全介绍的翻译
  10. mysql主从复制从机开启读_MySQL主从复制和读写分离
  11. 商业创业计划书的21条重要事项
  12. 四川大学 计算机复试分数线,2015年四川大学考研复试分数线已公布
  13. 你的每行代码值多少钱?
  14. 安索夫矩阵分析市场和产品策略
  15. C语言 弹小球 小游戏(控制台)
  16. 《简明美国史》笔记(陈勤著)
  17. 浪潮服务器开机板载卡显示FF,浪潮服务器安装操作系统简要步骤说明
  18. Windows下安装MySQL5
  19. C语言程序设计—学籍信息管理系统
  20. 【新年flag】追光而行的全新救赎——来自大一新生的心声

热门文章

  1. 《Java程序设计》第3周学习总结
  2. 梦幻西游python验证成语,Python爬取成语信息
  3. 国内下Android源码地址
  4. Fecebook Stetho工具介绍
  5. 解决tomcat启动闪退的问题
  6. 代码实现层序遍历二叉树(C语言)
  7. OpenCV-图像拼接(横向拼接纵向拼接)
  8. Berkeley 二十年 UNIX 历史
  9. C语言实现进程同步与互斥
  10. python语言十进制转二进制_python十进制转二进制的详解