TCP/IP模型是互联网的基础。想要理解互联网,就必须理解这个模型。但是,它不好懂,我就从来没有搞懂过。

前几天,BetterExplained上有一篇文章,很通俗地解释了这个模型。我读后有一种恍然大悟的感觉,第一次感到自己理解了互联网的总体架构。

下面,我按照自己的理解,写一下互联网到底是怎么搭建起来的。说得不对的地方,欢迎指正。

什么是TCP/IP模型?

TCP/IP模型是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换。

所谓”协议”可以理解成机器之间交谈的语言,每一种协议都有自己的目的。TCP/IP模型一共包括几百种协议,对互联网上交换信息的各个方面都做了规定。

TCP/IP模型的四层结构

这些协议可以大致分成四个层次,上一层的协议都以下一层的协议为基础。就像下面这张图:

从下到上的四层,分别为连接层(Link Layer)、网络层(Internet Layer)、传输层(Transport Layer)、应用层(Application Layer)。

可以这样理解它们的作用:

  • 连接层负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等等;

  • 网络层负责分配地址和传送二进制数据,主要协议是IP协议;

  • 传输层负责传送文本数据,主要协议是TCP协议;

  • 应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。

理解这个结构的关键,在于理解科学家在70年代设计互联网的原始目的,就是为了传输文本。所有协议最初都是为了这个目标而设计的,互联网架构的核心就是文本对话。

实例:用Telnet建立HTTP对话

为了观察文本在互联网上是如何传输的,我们做一个小实验。

第一步:在”开始”菜单中,点击”运行”命令,输入”telnet google.com 80″:

telnet命令本身就是一个应用层协议,它的作用是在两台主机间,建立一个TCP连接,也就是打开两台主机间文本传输的一个通道。

“telnet google.com 80″表示建立本机与google.com在80端口的一个文本传输通道。所谓”端口”其实是TCP协议的一个参数,用来帮助TCP协议判断对方主机传来的文本,到底使用的是哪一种应用层协议。80端口是HTTP协议的端口,就是我们平时浏览网页的端口。常见端口列表可以参考这里。

另外,与Windows 2000和Windows XP不同,Vista系统默认没有安装Telnet客户端,大家可以参考微软公司的安装说明自行安装。如果你使用的是Linux系统,那么可以直接在命令行窗口中,输入上面的命令。

第二步:打开本地显示。(非Windows系统跳过此步。)


请按以下步骤操作:在Telnet窗口中按下”Ctrl+]”;然后,输入”set localecho”命令,再连续按下两次回车键。

好了,这个时候你就可以直接同google.com主机进行对话了。

第三步:你可以试着同Google随便说句话,看看有什么反应。


我输入了”Hello World!”。

结果,Google的回答是这样的:

“400 Bad Request”说明Google看不懂你的发言。这是毫不奇怪的,因为这时你是在TCP文本通道中,进行HTTP对话。所以,你的发言必须遵守HTTP协议,这样Google才能看懂。

第四步:输入”GET / HTTP/1.1″,表示向google索要首页根文件,使用的协议是HTTP的1.1版本。


Google的回应如下:

“200 OK”表示要求数据成功。在头部信息的下面,就是google在浏览器中显示的首页文件的源代码。

总结

上面这个例子用的是HTTP协议,如果要使用其他”应用层协议”与主机进行对话,你只要改变端口就行了。比如,”telnet ftp.website.com 21″,表示用ftp协议进行对话。

所有这些对话的底层协议,都是TCP协议,因为这是负责文本传输的协议;而TCP协议又必须依靠IP协议,进行二进制数据的传输;而二进制数据的传输,离不开最底层负责网络连接的物理协议。

所以,通过这样四层的网络架构,就实现了整个互联网的通信。

原文地址:http://mp.weixin.qq.com/s?__biz=MjM5OTMxMzA4NQ==&mid=208159796&idx=2&sn=2fee0f5dbbfe82a4b8cc4ddfa4207180&scene=21#wechat_redirect

转载于:https://blog.51cto.com/29498359/1736197

TCP/IP模型的简单解释相关推荐

  1. TCP/IP模型及OSI七层参考模型各层的功能和主要协议

    注:网络体系结构是分层的体系结构,学术派标准OSI参考模型有七层,而工业标准TCP/IP模型有四层.后者成为了事实上的标准,在介绍时通常分为5层来叙述但应注意TCP/IP模型实际上只有四层. 1.TC ...

  2. 详解OSI七层模型和TCP/IP模型

    详解OSI七层模型 1. 详解OSI七层模型 1.1 详解每层结构 1.2 交换机和路由器的区别 1.3 集线器与路由器在功能上有什么不同 2. 详解TCP/IP模型 2.1 详解每层结构 2.2 O ...

  3. TCP/IP模型以及OSI七层参考模型各层的功能介绍和主要协议

    注:网络体系结构是分层的体系结构,学术派标准OSI参考模型有七层,而工业标准TCP/IP模型有四层.后者成为了事实上的标准,在介绍时通常分为5层来叙述但应注意TCP/IP模型实际上只有四层. 1.TC ...

  4. OSI 七层模型和TCP/IP模型及对应协议

    OSI 七层模型和TCP/IP模型及对应协议图: 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于不同层的中继系统具有不同的名称. 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部 ...

  5. Linux系统下实现基于TCP/IP协议的简单Socket通信

    Linux系统下实现基于TCP/IP协议的简单Socket通信 网络套接字Socket Socket概念 主机字节序和网络字节序 Sockaddr地址结构 Socket实现客户端.服务端通信 服务端程 ...

  6. OSI模型和TCP/IP模型

    OSI模型 开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念 ...

  7. TCP/IP模型各层的作用和设备

    TCP/IP模型 功能 对应的TCP/IP协议 设备 应用层 文件传输.电子邮件.文件服务等 HTTP.FTP.TFTP(简单文件传输协议).SNMP(简单邮件传送协议).DNS 服务器.计算机 传输 ...

  8. 以太网数据帧的报尾封装字段是什么_利用TCP/IP模型理解数据通信过程

    回顾TCP/IP模型 TCP/IP模型是当今IP网络的基础(由OSI七层参考模型发展而来,也称为DoD模型). 分层参考模型的设计是非常经典的理念: 层次化的模型设计将网络的通信过程划分为更小.更简单 ...

  9. TCP/IP模型的各层的作用

    第一种总结: TCP/IP模型:以无缝方式实现各种网络之间互连的网络体系结构. TCP/IP模型共分四层,分别为应用层.传输层.互联网层和主机到网络层. 各层实现特定的功能,提供特定的服务和访问接口, ...

最新文章

  1. Pytorch中多GPU训练指北
  2. 图解梯度下降背后的数学原理
  3. a byte of python-A Byte of Python PDF 下载
  4. arcsoft panorama maker 6_葫芦娃 本领大——中国邮政将于2020年6月1日发行动画——葫芦兄弟特种邮票...
  5. 使用Template时 typename 关键字的用法
  6. python网站模板下载_Python画图模板大全:从此画图不用愁
  7. xmpp 常见错误 一
  8. java的向下转型_终于搞明白向下转型的作用了,还不懂的进来看下.
  9. 在大项目中,实施顾问主要负责什么具体工作?
  10. python编程语言_Python编程语言的历史
  11. ubuntu16.04下ROS操作系统学习笔记(三 / 一)ROS基础-工作空间
  12. 图片滚动js 实现图片无缝滚动
  13. 智慧能源一体化管控平台
  14. Element 表单校验方法简单抽离
  15. 华为ensp联动Wmware虚拟机Openstack平台实现Vlan网络模式
  16. Android 接入穿山甲激励视频广告步骤与错误总结
  17. 线程池、volatile、原子性、并发工具类
  18. 微信15分钟视频怎么发送(简单实用的方法)
  19. 江苏省常州市谷歌高清卫星地图下载
  20. 中兴通讯云网解决方案介绍

热门文章

  1. Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
  2. linux 下mysql忘记密码或者安装好linux后不知道mysql初始密码解决方案
  3. SpringBoot-文件在线预览解决方案-基于OpenOffice及jacob
  4. 在多行中查找和替换vim中的字符串
  5. Java与jar之间的区别
  6. Win11如何添加过时硬件?Win11添加过时硬件的方法
  7. 怎么修改win11睡眠时间
  8. shiro身份验证失败捕获的异常对应信息
  9. MTK:socket通信
  10. php无重复字符的最长子串,无重复字符的最长字串问题