最近在阅读TCP/IP方面的东西,下面是一些简单的总结介绍,首先介绍一些概念:
TCP/IP协议模型:TCP/IP模型是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换。所谓"协议"可以理解成机器之间交谈的语言,每一种协议都有自己的目的。TCP/IP模型一共包括几百种协议,对互联网上交换信息的各个方面都做了规定。TCP/IP协议与OSI相对应
互联网地址(IP):网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址),IP地址是网络号+主机号的组合。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,具体分类和参考http://blog.csdn.net/panjunnn/article/details/5653388,我们常用的是B类地址。
域名系统:域名系统是一个分布的数据库,它提供将主机名(网址)转换成IP地址的服务。
RFC:RFC是tcp/ip协议的标准文档,现在它一共有4000多个协议的定义,一般我们需要学习的也就十多个。
端口号:注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
应用编程接口:现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。
OSI系统参考模型和TCP/IP系统对比:
OSI七层模型 | TCP/IP四层模型 | 对应网络协议 |
应用层(Application) | 应用层 | TELNET,FTP,TFTP,SMTP,HTTP,DNS... |
表示层(Presentation) | 文本:ASCII,EBCDIC 图形:TIFF,JPEG,GIF,PICT 声音:MIDI,MPEG,QUICKTIME... | |
会话层(Session) | NFS,SQL,RPC,ASP,SCP... | |
传输层(Transport) | 传输层 | TCP,UDP... |
网络层(Network) | 网际层 | IP,ICMP,ARP,RARP,AKP |
数据链路层(Data Link) | 网络接口 | SDLC,HDLC,PPP,STP,帧中继.. |
物理层(Physical) | EIA/TIA RS-232,V.35... |
具体如下图所示:
OSI各层功能详解:参见博客http://blog.csdn.net/htyurencaotang/article/details/11473015
(1)物理层:
提供建立、维护和拆除物理链路所需的机械、电气、功能和规程的特性;提供有关在传输介质上传输非结构的位流及物理链路故障检测指示。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。
(2)数据链路层
负责在两个相邻结点间的线路上,无差错地传送以帧为单位的数据,并进行流量控制。每一帧包括一定数量的数据和一些必要的控制信息。与物理层相似,数据链路层要负责建立、维持和释放数据链路的连接。在传送数据时,如 果接收点检测到所传数据中有差错,就要通知发方重发这一帧。
(3)网络层
为传输层实体提供端到端的交换网络数据传送功能,使得传输层摆脱路由选择、交换方式、拥挤控制等网络传输 细节;可以为传输层实体建立、维持和拆除一条或多条通信路径;对网络传输中发生的不可恢复的差错予以报告。 网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息——源站点和目的站点 地址的网络地址。
(4)传输层
为会话层实体提供透明、可靠的数据传输服务,保证端到端的数据完整性;选择网络层的最适宜的服务;提供建 立、维护和拆除传输连接功能。传输层根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间提供建立、维护和取消传输连接的功能,并以可靠和经济的方式传输数据。在这一层,信息的传送单位是报文。
(5)会话层
为彼此合作的表示层实体提供建立、维护和结束会话连接的功能;完成通信进程的逻辑名字与物理名字间的对应; 提供会话管理服务。
(6)表示层
为应用层进程提供能解释所交换信息含义的一组服务,即将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法,提供格式化的表示和转换数据服务。数据的压缩,解压缩,加密和解密等工作都由表示层负责。
(7)应用层
提供OSI用户服务,即确定进程之间通信的性质,以满足用户需要以及提供网络与用户应用软件之间的接口服务。
简而言之各层的作用为:
物理层:在物理媒体上传输原始的数据比特流。
数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。
网络层:将数据分成一定长度的分组,将分组穿过通信子网,从信源选择路径后传到信宿。
传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。
会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话。
表示层: 为应用层进程提供格式化的表示和转换数据服务。
应用层:提供应用程序访问OSI环境的手段。
相应的TCP/IP的各层功能可总结如下:
网络接口:负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等等;
网际层:负责分配地址和传送二进制数据,主要协议是IP协议;
传输层:负责传送文本数据,主要协议是TCP协议;
应用层:负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。
常用协议及其端口号:
所在TCP/IP层 | 关键字 | 协议名 | 端口号 |
应用层 | FTP | 文件传输协议(TCP:ftp的数据传输) | 20 |
HTTP | 超文本传输协议(TCP:访问web网站) | 80 | |
DNS |
域名服务器协议 (UDP:域名解析服务,客户端进行域名查询 TCP:Domain Name Server ,DNS服务器间域名复制) |
53 | |
SMTP | 简单邮件传输协议(TCP:邮件的传输) | 25 | |
NFS | 网络文件系统协议(文件共享TCP和UDP) | 2049 | |
传输层 | TCP | 控制传输协议 |
端口号一般用来区分一台主机的各种服务, 如web,ftp服务。使用端口号可以找到一 台设备中唯一的程序。所以如果需要和某 台计算机建立连接的话,只需要知道IP地址 或域名即可,但是如果想和该台计算机上的 某个程序交换数据的话,还必须知道该程序 使用的端口号。 |
UDP | 用户数据报协议 | ||
网际层 | IP | 网际协议 | |
ICMP | 网际控制消息协议 | ||
ARP | 地址解析协议 | ||
RARP | 反向地址解析协议 | ||
网络接口 | HDLC | 高级链路控制协议 | |
PPP | 点对点协议 | ||
SLIP | 串行线路接口协议 |
参考博客:http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html
http://blog.csdn.net/htyurencaotang/article/details/11473015