TCP(Transmission Control Protocool)和IP(Internet Protocol)是互联网的众多通信协议中最为著名的。本章介绍TCP/IP 的发展历程及其协议概况。
TCP/IP 出现的背景及其历史
从军用技术的应用谈起
ARPANET的诞生
TCP/IP 的诞生
UNIX系统的普及及与互联网的扩张
商用互联网服务的启蒙
TCP/IP 的标准化
TCP/IP 协议分层模型
硬件(物理层)
TCP/IP的最底层复杂数据传输的硬件。这种硬件就相当于以太网或电话线等物理层设备。
网络接口层(数据链路层)
网络接口层利用以太网中的数据链路层进行通信,因此属于接口层。驱动程序是在操作系统与硬件之间起桥梁作用的软件。
互联网层(网络层)
互联网层使用IP协议,它相同于OSI模型中的第三层网络层。IP协议基于IP地址转发分包数据。
IP
IP是跨越网络产送数据包,是整个互联网都能收到数据的协议。IP协议使数据能够发送到地球另一端,这期间它使用IP地址作为主机的标识。
ICMP
IP数据包在发送途中一旦发生异常导致无法到底对端目标地址时,需要给发送端一个发生异常的通知。ICMP就是为了一功能而定制的,它有时也被用作诊断网络的健康状况。
ARP
从分组数据包IP地址中解析出物理地址(MAC地址)的一种协议。
传输层
传输层最主要的功能就是能够让应用程序之间实现通信。在计算机内部,通过应用程序端口号来区分哪些程序正在进行通信。
TCP
TCP是一种面向有链接的传输层协议,它既可以保证两端通信主机之间的通信可达,还可以正确处理传输过程中丢包、传输顺序乱掉的异常情况。此外TCP还能够有效利用带宽,环节网络拥堵。
缺点是,为了建立连接和断开连接,需要至少7次的手包和发包,导致网络流量的浪费。这并不适用于视频会议等场合使用。
UDP
它是一种面向无连接的传输层协议。UDP不关注端是否真的收到了传送过去的数据。
UDP常用于分组数据较少或多播、广播通信以及使用通信等多媒体领域。
应用层(会话层以上的分层)
-电子邮件(E-Mail)
SMTP协议
- 文件传输(FTP)
在FTP中进行文件传输时会建立两个TCP链接,分别是发送传输请求时所要用到的控制链接与实际传输数据时所要用到的数据连接。 - 远程登录(TELNET与SSH)
- 网络管理(SNMP)
TCP/IP 分层模型与通信示例
数据包首部
每个分层中,都会对所发送的数据附件一个首部,在这个首部中包含了该层必要的信息,如发送目标地址以及协议相关的信息。
在数据包的首部,明确表明了协议应该如何读取数据,反过来,看到首部,也就能够了解协议必要的信息以及所要处理的内容。
发送数据包
以一封邮件的发送为例子:
- 应用程序处理:鼠标点击送就开始了TCP/IP的通信了
- TCP模块的处理:TCP根据应用的指示,负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输
- IP模块的处理:IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端加上自己的IP首部
- 网络接口(以太网驱动的处理):给TP传过来的IP包附加上以太网首部并进行发送处理
经过数据链路的包
数据包的接收处理
包的接受流程是发送路程逆序过程。