1、简介
tcp/ip:通信协议的统称,是IP,ICMP,TCP,UDP,HTTP,TELNET,SNMP,SMTP等协议的集合
TCP/IP和OSI的关系
- OSI属于ISO(国际化标准组织)制定的通信系统标准,但是并没有普及;
- TCP/IP是非ISO制定的某种国际标准,在业界普遍使用,它的制定也是参考了OSI模型。
OSI参考模型中各个分层的作用
2、TCP/IP
2.1、基础知识
概念:
它不只是字面意思的两种协议,而是代表了很多协议,如IP/TCP/ICMP/UDP/TELNET/FTP/HTTP等都属于TCP/IP协议。
标准化:
TCP/IP协议规范——RFC,这个文档被列在网上供人查阅。
协议的标准化必须要经过的步骤:
- 互联网草案阶段;
- 标准阶段;
- 草案标准阶段;
- RFC提议阶段;
互联网和TCP/IP协议的关系
互联网(The Internet)的协议就是指TCP/IP,TCP/IP就是为使用互联网而开发制定的协议族。
2.2、TCP/IP协议分层模型
硬件(物理层)
就是协议的最底层,用于传输数据的硬件,像是电话线、网线等,它的内容无法被统一定义,人们在物理层使用的媒介(网线或无线)不同,网络的带宽、可靠性、安全性、延迟等都会有所不同,并没有统一的指标。TCP/IP协议就是建立在硬件能够通信的前提下被提出的。
网卡层(数据链路层)
网络接口层利用以太网中的数据链路层进行通信,因此属于接口层。也就是说把它当做能让NIC网卡起作用的"驱动程序"也可以。驱动程序是让操作系统与硬件之间其桥梁作用的软件。
互联网层(网络层)
互联网层使用了IP协议,IP协议基于IP地址转发分包数据。
IP:ip是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP地址作为通信主机的标识。虽然ip也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此属于非可靠性传输协议。
ICMP: IP数据包在发送途中一旦发生异常无法到达目标地址时,需要给发送端发送一个异常通知。ICMP就是为这个功能定制的。
传输层
传输层最主要的功能是让应用程序之间实现通信。在计算机内部通常运行不止一种程序。为此要分清是哪些程序和哪些程序通信,识别这些应用程序是用的端口号。
TCP:tcp是一种面向有连接的传输层协议。能保证两端主机间的通信可达,并且能正确处理在传输过程中丢包、乱序等异常情况。此外它还能利用带宽有效缓解网络拥堵。然而,为了建立与断开连接,它需要至少7次发包收包,导致网络流量浪费。此外为了提高网络利用率,tcp协议中定义各种复杂的规范,因此不利于视频会议(音频、视频)等场合。
UDP:有别于tcp协议,它是面向无连接的传输层协议。UDP不会关注对方是否真的收到了数据,如果需要此功能,需要再应用程序中设计实现。UDP常用于广播通信、视频等多媒体领域。
应用层
TCP/IP应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫服务端,接受服务的程序叫客户端。在这种通行模式中,提供服务的程序会预先被部署到主机上,等待接受任何时刻客户可能发送的请求。
www万维网:
www是互联网能如此普及的原动力。
浏览器和服务端之间通信的协议是HTTP,所传输数据的主要格式是HTML。HTML属于表示层协议。
电子邮件email
发送电子邮件使用的协议是SMTP,最初人们只能发送文本格式的邮件。后来经过MIME协议扩展后,邮件里可以加图像,声音等各式各样的信息。MIME属于OSI参考模型的表示层协议。
FTP文件传输
文件传输是指将保存在其他计算机硬盘上的文件转移到本地硬盘,或者反过来传输的意思。该过程呢使用的是FTP协议,传输过程可以选择二进制方式或者文本方式。
远程登录
我们平时使用电脑远程连接系统服务器使用的协议是LELNET和SSH协议。
网络管理(SNMP)
snmp管理的主机、网桥、路由器等称作SNMP代理(agent),而进行管理的那一端称为管理器(manager)。SNMP就是这个Manager和Agent所要用到的协议。SNMP属于应用协议。
2.3、TCP/IP分层模型与通信示例
数据包首部:
每个分层中都会给发送数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。
每个包首部中至少包含两个信息:一个是发送端和接收端地址、另一个是上一层的协议类型。经过每个协议分层时,都必须有识别包发送端和接收端的信息。以太网会用MAC地址,IP会用IP地址,TCP/UDP会用端口号作为识别两端主机的地址。