分层
一个协议簇,比如TCP/IP,是一组不同层次上的多个协议的组合。TIP/IP通常是一个四层协议系统,如下图所示:
还有另一种说法是OSI七层协议模型,它和四层协议模型的对应关系如下所示:
下面文章中使用的模型默认为四层模型。
模型中的每一层负责不同的功能:
1.链路层:通常包括操作系统中的设备驱动和计算机中对应的网络接口卡。他们一起处理电缆的物理接口细节,以太网协议在这一层应用;
在ai.网络层:处理分组在网络中的活动,在TCP/IP协议族中,网络层协议包括IP协议,ICMP协议(Internet互联网控制报文协议),IGMP协议(Internet组管理协议),其中后两者是IP协议的附属协议;
3.运输层:为两台主机提供端到端的通信,有TCP和UDP两种不同的协议;
TCP提供面向连接的,高可靠性的服务,UDP提供无连接的,不可靠的服务;
4.应用层:处理特定的应用程序细节,几乎各种TCP/IP实现都会提供下面几个通用的应用程序:
Telnet远程登录;
FTP文件传输协议;
SMTP简单邮件传送协议;
SNMP简单网络管理协议;
其中,应用层的应用程序通常是一个用户进程,而下面三层一般在操作系统(内核)中执行,处理所有的通信细节;
Notes:TCP/IP协议族只是一组不同的协议组合在一起构成的协议族,尽管称该协议族为TCP/IP,但TCP/IP只是其中两种协议而已。(也称为Internet协议族,IPS)
一个互联网就是一组通过相同协议族连在一起的网络;而构成互联网最简单的方法就是把两个或者多个网络通过路由器(以前也称为网关)进行连接。另一个办法是使用网桥,网桥是在链路层上对网络进行互连,而路由器是在网络层对网络进行互连。
下图是一个包含两个网络由路由器连接的互联网:
在TCP/IP协议族中,IP协议提供一种不可靠的服务,只负责把分组从源端送到目的端,并不提供任何可靠性。
互联网的目的之一是在应用程序中隐藏所有的物理细节。
TCP/IP的分层
上图中的每种协议会在后续博客中讲解;
互联网的地址
互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址。具有一定的结构,总共有5类:
多接口主机具有多个IP地址,每个接口都有一个IP地址,其中网络号由互联网信息中心分配,主机号由系统管理员负责;
IP地址有三类:单播,多播和广播;
域名系统
在TCP/IP领域中,域名系统DNS是一个分布式数据库,由他来提供IP地址和主机名之间的映射信息。
封装
当应用程序用TCP传送数据时,数据被送入协议栈,然后逐个通过每一层直到被当做一串比特流送入网络,其中吗,每一层对收到的数据都要增加一些首部信息。TCP传给IP的数据单元称为TCP报文段。IP传给网络接口层的数据单元称为IP数据报。通过以太网传输的比特流称为帧,。以太网数据帧的物理特性是其长度必须是在46--1500字节之间。
UDP传给IP的信息单元称为UDP数据报。
分用
ICMP和IGMP封装在IP数据报中,ARP和RARP封装在以太网数据帧中;
客户-服务器模型
分为两种,一种是重复型,一种是并发型;
重复型只有一个服务器为客户服务,且一次只能为一个客户服务;
并发型为每个客户生成新的服务器来处理客户的请求;
一般来说TCP服务器是并发的,UDP服务器是重复的。
端口号
TCP和UDP采用16bit的端口号来识别应用程序,服务器一般都是通过知名端口号(1--1023)来识别的,客户一般适用于临时端口号;
互联网
internet意思是用一个共同的协议族把多个网络连接在一起,Internent指的是世界范围内通过TCP/IP互相通信的所有主机集合。
应用编程接口
使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口)
小结
点到点的服务:指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。点到点是物理拓扑,如光纤,就必须是点到点连接,DDN专线也是,即两头各一个机器中间不能有机器。
端到端的服务:端到端是逻辑链路,这条路可能经过了很复杂的物理路线,但两端主机不管,只认为是有两端的连接,而且一旦通信完成,这个连接就释放了,物理线路可能又被别的应用用来建立连接了。