TCP/IP 协议栈与数据包封装TCP/IP 网络协议栈分为应用层( Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层
如下图所示(该图出自)
TCP/IP 协议栈两台计算机通过 TCP/IP 协议通讯的过程如下所示(该图出自)
TCP/IP 通讯过程传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用 socketAPI编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示(该图出自)
TCP/IP 数据包的封装不同的协议层对数据包有不同的称谓,在传输层叫做段( segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理
上图对应两台计算机在同一网段中的情况,如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示(该图出自)
跨路由器通讯过程其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念
物理层的能力决定了最大传输速率、传输距离、抗干扰性等
集线器(Hub)是工作在物理层的网络设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)
链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检测