TCP/IP 系列文章
网络基础知识(一)
TCP/IP基础知识(二)
物理层(三)
数据链路层(四)
IP 协议(五)
IP 协议相关技术(六)
TCP与UDP(七)
一、TCP/IP 是什么?
字面上来看,有人认为 TCP/I 是指 TCP 和 IP 这两种协议。实际生活中偶尔确实是指这两种协议。但是在大多数情况下,意思并不单单是如此狭窄,是指利用 IP 进行通信时所必须用到的协议群的统称
。IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP 以及 HTTP 等都属于 TCP/IP 协议,TCP/IP 一词泛指这些协议。
二、互联网和TCP/IP的关系
互联网原意是网际网,就是连接一个又一个网络的意思。互联网通信时,需要相应的网络协议,而TCP/IP原本就是为使用互联网而开发定制的协议族。所以互联网的协议就是 TCP/IP, TCP/IP就是互联网的协议。
三、TCP/IP 与 OSI 参考模型
通过上图可以看出:
- TCP/IP 参考模型分为五层:物理层、数据链路层、互联网层、传输层、应用层。
- OSI 参考模型更注重“通信协议必要的功能是什么”;TCP/IP 更强调“在计算机上实现协议应该开发哪种应用程序”。
3.1 硬件(物理层)
TCP/IP 的最底层是负责传输数据的硬件。这种硬件相当于以太网或电话线路等物理层的设备。
3.2 网络接口层(数据链路层)
网络接口层是利用以太网的数据链路层进行通信,因此属于接口层。把它当做让 NIC 起作用的驱动程序。驱动程序是在操作系统与硬件之间起到桥梁作用的软件。更换一个新的 NIC 网卡不仅需要硬件,还需要软件的配合才能使用。因此,尝尝需要在操作系统的基础上安装一些驱动软件以便使用一些附加硬件。
3.3 互联网层(网络层)
互联网层使用 IP 协议,IP 协议基于 IP 地址转发分包数据。TCP/IP 分层中的互联网层和传输层的功能通常有操作系统提供。
路由器必须实现转发分组数据包的功能。连接互联忘得所有主机和路由器都必须实现 IP 的功能。而网桥、中继器或集线器等就没有必要实现 IP 或 TCP 的功能。
- IP
IP 协议可以跨越网络传送数据包,使整个互联网都能收到数据,传送期间使用 IP 地址作为主机的标识。虽然 IP 也是分组交换的一种协议,但是不具备重发机制。即使分组数据包未能到达接收端主机,也不会重发,因此 IP 协议属于非可靠传输协议。 - ICMP
IP 数据包在发送图中一旦发生异常,将导致无法到达对端目标地址,此时需要给发送端一个发生异常的通知。 ICMP 就是谓词定制的。利用这点,通常 ICMP 可以用来诊断网络的健康状况。 - ARP
ARP 协议的主要职责是从分钟数据包的 IP 地址中解析出物理地址( MAC 地址)。
3.4 传输层
传输层的主要功能是让应用程序之间实现通信。通常计算机内部运行着多个程序,识别不同的应用程序要根据应用程序的端口号做依据。TCP/IP 传输层有两个具有代表行的协议。即 TCP 和 UDP。
- TCP
是面向有连接的传输协议。关于面向连接型和面向无连接型的区分,笔者在第一节有讲到。TCP 能够正确处理丢包、顺序错乱等异常情况。此外黑能狗有效利用宽带,环节网络拥堵。 - UDP
是面向无连接的传输协议。UDP 不会关注接收端是否阶段是否接收到自己传输过去的数据。如果需要检查对端是否接收到分组数据包,则需要在应用程序中实现(如:收到消息后主动给发送方会消息)。UDP 常用语分组数据较少、多播、广播以及视频通信等多媒体领域。
3.5 应用层(会话层以上的分层)
TCP/IP 的分层中,将 OSI 参考模型中的会话层、表示层和应用层的功能都几种到了应用程序中实现。这些功能优势由一个单一的程序实现,有时也可能会有多个程序实现。
四、对协议的理解以及协议分层的意义
协议可以理解为人与人之间的对话。有三个人A、B、C, A会汉语,B会英语,C即会汉语又会英语。其中汉语和英语可以看做是协议,聊天当做是通信,说话内容当做是数据。A和B之间语言不同,无法沟通。A和C之间协议一致,通信自如。
协议的分层如同软件开发中的模块化。分层可以使每个模块独立,即使系统中某些分层发生变化,也不会波及整个系统。因此可以构造一个扩展性和灵活性都较强的系统。分层的劣势,可能就在于过分模块化,使处理变的更加沉重以及每个模块都不得不实现相似的处理逻辑问题。
还是通过上述对话的例子理解分层的意义。A和C通话,通话的方式可以是无线电通话,也可以是电话机通话。且两人可以是都使用汉语或都使用英语通话,都是行的通的。其中语言可以看做是语言层,通讯方式可以看做是通信设备层。如下图: