TCP/IP概述

TCP/IP概述

分层

TCP/IP是一个分为四个层次的协议系统,每一层负责不同的功能。从下到上分别是链路层,网络层,运输层和应用层。

  • 链路层负责的是将上层的数据转换为物理信号然后通过媒介传播到其它系统或者主机。
  • 网络层负责处理分组在网络中的活动,例如分组的选路(通俗来说就是将数据发到哪里去)。该层最主要的协议就是IP协议,另外还包括ICMP协议,IGMP协议。
  • 运输层主要为两台主机的应用程序提供端到端的通信,包括TCP和UDP协议,其中TCP提供可靠的数据传输服务,而UDP提供简单的不可靠传输服务。
  • 应用层负责处理不同的业务,TCP/IP协议的实现中基本都包含了几种通用的应用程序,如telnet(远程登陆)、FTP(文件传输协议)、SMTP(简单邮件传送协议)、SNMP(简单网络管理协议)等。

IP地址

互联网上的每个网络接口(网卡)都有一个唯一的网络地址,这个地址就是IP地址。
IP地址是一个32bit的整形结构,其中包含5类不同的IP地址。IP地址分为类别标识、网络号、主机号三块。其中类别标识所在的位数不固定。
TCP/IP概述
IP地址有InterNIC机构来分配,InterNIC只分配网络号。主机号的分配则有系统管理员来负责。

域名系统

域名系统是一个分布的数据库,它提供的是主机名到ip地址的映射。
应用程序可以通过接口获取一个主机名所对应的ip地址,也可以通过一个ip地址来获取其主机名。

封装和分用

当应用程序通过TCP/IP传输网络数据时,每个TCP/IP层次都会在收到上层数据包后加上改层对应的首部信息,直到数据被当作一串比特流送入到物理媒介中。
当主机收到网络数据时,TCP/IP又开始从底层从上层上升,将首部信息去掉然后交给上层处理,直到将数据通知给应用层。在处理上升的过程中,该层次会从首部信息中解析出上层协议类型,以确定接收数据的上层协议。比如IP协议(网络层)向运输层传递数据时,会解析IP首部中的协议类型,以确定是使用TCP还是UDP来处理。

端口号

TCP和UDP使用16位的端口号来识别应用程序,端口号的范围即1-65535。在Unix/Linux系统中,/etc/services文件中包含了人们熟知的端口号。
客户端通常对自己所使用的端口号不关心,只需要保证该端口号在本机上是唯一的。客户端端口号又称为临时端口号。这是因为它通常只在客户端运行时才存在,而服务器则只要应用程序开着,其服务就运行。