互联网络的前身是由上世纪60年代后期由美国政府财政支持的研究工程——分组交换网络(packet switching network),而TCP/IP协议族(TCP/IP protocol suite)使得不同结构、不同系统的计算机可以互相通信,它形成了互联网络的基础。
TCP/IP的四层由下而上依次是:
- 链路层(link layer),也叫数据链路层(data-link layer)或网络接口层(network interface layer),通常包括网卡和设备驱动。处理同传输媒介(如网线)的物理接口的细节。
- 网络层(network layer),处理分组在网络上的运动,如运动的路由。
- 传输层(transport layer),为上面的应用层提供主机间的数据流。主要分为TCP和UDP。TCP利用不可靠的IP服务,实现了可靠的传输服务。使用UDP时,任何可靠性要求需要由应用层提供。
- 应用层(application layer),提供应用程序的细节。
通常的,应用层是一个用户进程,它不关心通信细节,下面三层都是由内核实现的。应用层和传输层是end-to-end的协议,网络层是逐跳的(hop-by-hop),从一个路由器跳到另一个路由器。有多个接口的系统,如router,称为是multihomed的。主机也可以配置成router。
连接网络的另一个方法是使用网桥(bridge)。网桥在链路层上连接网络,而路由器是在网络层上连接。
国际网络信息中心InterNIC负责分配IP地址。
打包和解包:在数据前后加上和减去头部或尾部
TCP 报文段(segment)-> IP数据报(datagram)->以太网帧(Ethernet Frame)
以太网帧的长度在46-1500字节之间。
Iterative 服务器和Concurrent服务器。前者在处理某个客户端请求的时候,不能处理其它客户的请求,而后者会创建一个进程、任务、线程,或者用其他方式来处理客户请求,不会组赛后续的请求。
服务器的well-known端口号由Internet Assigned Numbers Authority(IANA)这个机构来管理。Unix系统的well-known端口号可以在/etc/services文件中查看。客户端进程在得到服务后通常很快就退出了,因此它的端口是短暂的(ephemeral)。
保留端口号(reserved ports),介于1-1023,通常留给应用程序。
负责互联网技术的四大组织或团体:
国际互联网协会(ISOC)
因特网结构委员会(IAB)
互联网工程任务组(IETF)
互联网研究任务组(IRTF)
互联网社团的所有官方标准都以RFC(Request for Comment)的形式发布。
应用程序TCP/IP编程的两个流行的API是socket和TLI(Transport layer interface,传输层接口),前者众所周知,最早出现在Berkeley的Unix机器上;后者最初由AT&T开发,后来X/Open这个组织也作了一些工作,因此也叫做XTI(X/Open Transport interface)。