http://blog.csdn.net/houdong/article/details/1500536
TCP/IP是一个真正的开放式系统。它可以使运行着完全不同的操作系统,由不同厂家生产的各种型号的计算机互相进行通信。TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。
TCP/IP的分层
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。
TCP/IP模型分为:网络接入层,网络层,传输层(主机-主机层),应用层。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/houdong/670fdb06146d44289255575e393dc11c.jpg)
网络接入层:处理与电缆(或其他任何传输媒介)的物理接口细节(编码的方式,成帧的规范等)。现今在网络接入层上较流行的技术有IEEE802.3以太网,无线,帧中继,ATM,X.35,PPP等。
网络层:处理分组在网络中的活动,为经过逻辑网络路径的数据进行路由选择。网络层上的协议主要有IP,ICMP,IGMP等。网络层上的载体是IP协议,同时被TCP和UDP使用。
基于IP的附属协议有ICMP,IGMP。(ICMP和IGMP的定位比较模糊,位于网络层和传输层之间。而RARP和ARP则位于接入层和网络层之间)。
ICMP:IP层使用ICMP与其他主机或路由器交换错误报文和其他重要信息。使用ICMP的应用程序主要有:Ping和traceroute。
IGMP:internet组管理协议。它用来把一个UDP数据报多播到多个主机。
ARP和RARP是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址。
传输层:为两台主机上的应用程序提供端到端的通讯。传输层协议有传输控制协议(TCP)和用户数据报协议(UDP)。
TCP使用不可靠的IP服务,并提供一种可靠的传输层服务。TCP所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。基于TCP的应用层程序有telnet,Rlogin,FTP ,SMTP。
UDP为应用程序发送和接收数据报,和TCP不同,UDP是不可靠的。UDP只是把称作数据报的分组从一台主机传送到另一台主机,但不保证该数据报能到达另一端。任何必须的可靠性由应用层来提供。基于UDP的应用层程序有TFTP,DNS,BOOTP,SNMP。
传输层和数据链路层都定义了流控和差错控制机制,不同之处在数据链路层强调控制数据链路上的流量,即连接两台设备的物理介质的流量。而传输层控制逻辑链路上的流量,即两台设备的端到端连接。这种连接可能跨越多个数据链路。
应用层:负责处理特定的应用程序细节。如Telnet,FTP,SNMP,SMTP,TFTP等。
应用层上的用户进程有直接调用ICMP的,比如PING,Traceroute。
应用层上的路由协议有RIP和BGP。BGP使用TCP端口179传送它的路由信息。而RIP使用UDP接口传递它的信息。其他路由协议是IP层协议,因为它们直接在IP数据包中封装了它们的信息。
互联网地址
IP地址的分类:(A,B,C,D,E)
有三类IP地址:单播地址,广播地址,多播地址。
单播地址目的为单个主机;广播地址目的为给定网络上的所有主机;多播地址目的为同一组内的所有主机。
域名系统:是一个分布式的数据库,提供IP地址和主机名之间的映射信息。由成千上万台DNS服务器组成。
分配全球IP地址的管理机构:InterNIC ( internet network information centre)
interNIC
http://rs.internic.net(分配面向全球的IP地址)
中国:
http://www.cnnic.net.cn (中国境内的互联网地址和AS号申请)
封装与分用
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐层通过直到物理层以比特流形式送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),这个过程叫做封装。
以太网数据帧结构的物理特性是其长度必须在
46-1500字节之间。
网络接口分别要发送和接收IP,ARP和RARP的数据,因此也必须在以太网的帧首部加入某种形式的标识,以指明生成数据的网络层协议。以太网帧首部有一个
16bit的帧类型域(ip,arp,rarp)。
由于TCP,UDP,ICMP,IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。IP在首部中存入一个长度为
8bit的数值,称作协议域(icmp,igmp,tcp,udp,esp,gre),1表示ICMP,2表示IGMP,6表示TCP,17表示UDP。
TCP和UDP都用一个
16bit的端口号来表示不同的应用程序(ftp,telnet,http)
TCP和UDP把源端口号和目的端口号分别存入报文首部中。
分用:当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由下层升往上层,同时去掉之前各层协议加上的报文首部。每层协议都要去检查报文首部中的协议标识,以确定接收数据的上层协议。
客户服务器模型
C/S模型主要分为重复型或并发型。
并发型服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。
TCP服务器是并发的,而UDP服务器是重复的(重复型的应用已经很少了)。
端口号
服务器一般都是通过知名端口号来识别的。客户端口号又称作临时端口号(即存在时间很短)。大多数TCP/IP实现给临时端口分配
1024-5000之间的端口号。(常从1024往上选)
Solaris2.2是一个例外,通常TCP和UDP的缺省端口号从
32768开始。
大于
5000的端口号是给其他服务器预留的。(internet上并不常见的服务)
知名端口号是由Internet号分配机构(Internet Assigned Number Authority,IANA)来管理。
大多知名端口为奇数的由来:
由于端口号都是从TCP的前身NCP派生而来。NCP是单工的,所以预留了一对奇偶端口号。而TCP/IP协议中的TCP和UDP是全双工的,所以只引用了其中的奇数端口。
Internet和internet的区别
internet:用一个共同的协议簇把多个网络连接在一起。
Internet:通过TCP/IP互相通信的所有主机的集合。
Internet是一个internet,但internet不等于Internet。
RFC
IETF网站:
www.ietf.org
获取一份RFC文档:
www.ietf.org/rfc.html
当前最实用的RFC文档目录: