1、TCP/IP网络简介
主要概念
大多数Linux联网服务都是按照客户端——服务器模型来设计的
网络服务应用程序通常都会设计成“一直运行”,即当系统启动时便会自动运行,直到系统关闭时才会关闭。总体而言,只有根用户才能管理服务进程
网络应用程序客户端通常在使用时才会运行,而且任何用户都可以运行
大多数的LInux网络服务器和客户端之间使用TCP/IP协议进行通信
客户端进程和服务进程的TCP/IP地址都含有一个IP地址和一个端口
网络服务器通常使用指定的、众所周知的端口,这些端口在文件/etc/services中列出。网络用户一般来说可以使用随机设定的端口。通常,这些端口都在一系列特权端口范围内,即端口号小于1024
hostname命令可用来检查机器当前的IP地址,而netstat-tuna命令可用来检查所有开放端口
TCP\IP地址
参与TCP\IP会话的每个进程必须有一个IP地址,就像每个在用电话交谈的人都有一个电话号码一样。另外,每个TCP\IP对话中的进程都必须有端口号
网络中的计算机由IP地址来标识身份,IP地址以四个整数的形式表示,每个整数都在0到255之间(并非偶然,这是能编码成一个字节内存的信息量),传统的写法由“.”分开,如192.168.0.3,点分十进制表示法——以点相连的四个十进制数字
计算机的进程由端口号来标识,它是一个1到65535之间的整数(并非偶然,这是能编码成两个字节内存的信息量)。每当一个进程想要与另一个进程的TCP\IP对话时,它必须先由内核分配一个端口号
TCP\IP协议允许两个进程互相定位,每个进程由一个IP地址和端口号组合识别。IP地址用来确定正在运行进程的机器的位置(这是协议的“IP”部分);端口号用来确定机器上正确的进程(“这是TCP部分”)。
在TCP\IP协议中,套接字是由服务器和客户端两者的IP地址和端口号组合定义的。
特权端口
端口号在1024以下的端口被称为特权端口,内核对他们特别对待。只有根进程才可能绑定特权端口。