几日前从同事那里偶得《TCP/IP详解》的三卷电子书,如获至宝,正好可以解我一直以来对网络的诸多困惑。
感谢同事bonix的共享。嘿嘿
说明:本文为《TCP/IP详解,卷1:协议》的第一章“概述”的学习笔记。
一.分层
1.链路层
有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2. 网络层
有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在T C P / I P协议族中,网络层协议包括I P协议(网际协议),I C M P协议(I n t e r n e t互联网控制报文协议),以及I G M P协议(I n t e r n e t组管理协议)。
3. 运输层
主要为两台主机上的应用程序提供端到端的通信。在T C P / I P协议族中,有两个互不相同的传输协议: T C P(传输控制协议)和U D P(用户数据报协议)。
T C P为两台主机提供高可靠性的数据通信。U D P则为应用层提供一种非常简单的服务它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
4.应用层
负责处理特定的应用程序细节。应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。通用的应用程序如:
• Telnet:远程登录。
• FTP:文件传输协议。
• SMTP:简单邮件传送协议。
• SNMP:简单网络管理协议。
二.TCP/IP协议族的四个层次图
三.各层的主要协议说明
1.TCP协议
T C P和U D P是两种最为著名的运输层协议,二者都使用I P作为网络层协议。虽然T C P使用不可靠的I P服务,但它却提供一种可靠的运输层服务。
2.UDP协议
U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息
单元,U D P是不可靠的,它不能保证数据报能安全无误地到达最终目的。
3.IP
3.IP协议
I P是网络层上的主要协议,同时被T C P和U D P使用。T C P和U D P的每组数据都通过端系统和每个中间路由器中的I P层在互联网中进行传输。
4.ICMP协议
I C M P是I P协议的附属协议。I P层用它来与其他主机或路由器交换错误报文和其他重要信息。P i n g和Tr a c e r o u t e都使用了I C M P。
5.IGMP协议
I G M P是I n t e r n e t组管理协议。它用来把一个U D P数据报多播到多个主机。
6.ARP和RARP协议
A R P(地址解析协议)和R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换I P层和网络接口层使用的地址。
四.互联网的地址
1.五类互联网地址图示
2. IP地址分类
有3类IP地址,分别为:
• 单播地址:目标是单个主机;
• 广播地址:目的端为给定网络上的所有主机;
• 多播地址:目的端为同一组内的所有主机。
五.域名系统
在T C P / I P领域中,域名系统( D N S)是一个分布的数据库,由它来提供I P地址和
主机名之间的映射信息。
域名系统( D N S)是一个分布的数据库,由它来提供I P地址和主机名之间的映射信息。大多数使用主机名作为参数的应用程序也可以把I P地址作为参数。、当我们用Te l n e t进行远程登录时,既可以指定一个主机名,也可以指定一个I P地址。
六.封装
当应用程序用T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作
一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部
信息)。T C P传给I P的数据单元称作T C P报文段或简称为T C P段(T C Ps e g m e n t)。I P传给网络接口层的数据单元称作I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。
以太网数据帧的物理特性是其长度必须在4 6~1 5 0 0字节之间。
I P和网络接口层之间传送的数据单元应该是分组( p a c k e t)。分组既可以是一个I P数据报,也可以是I P数据报的一个片(f r a g m e n t)。
由于T C P、U D P、I C M P和I G M P都要向I P传送数据,因此I P必须在生成的I P首部中加入某种标识,以表明数据属于哪一层。为此, I P在首部中存入一个长度为8 b i t的数值,称作协议域。1表示为I C M P协议, 2表示为I G M P协议, 6表示为T C P协议, 1 7表示为U D P协议。
七.分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各
层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的
上层协议。这个过程称作分用( D e m u l t i p l e x i n g)。
八.客户-服务器模型
大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服
务器为客户提供一些特定的服务。
可以将这种服务分为两种类型:重复型或并发型。
重复型的交互方式如下:
等待一个客户请求的到来-〉处理客户请求-〉发送响应给发送请求的客户-〉进入第一步
并发型的交互方式如下:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务
或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器
对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。
九. 端口号
T C P和U D P采用16 bit的端口号来识别应用程序。
1. 知名端口号
服务器一般都是通过知名端口号来识别的。例如,对于每个T C P / I P实现来说, F T P服务器的T C P端口号都是2 1,每个Te l n e t服务器的T C P端口号都是2 3,每个T F T P (简单文件传送协议)服务器的U D P端口号都是6 9。任何T C P / I P实现所提供的服务都用知名的1~1 0 2 3之间的端口号。这些知名端口号由I n t e r n e t号分配机构( Internet Assigned Numbers Authority, IANA)来管理。
到1 9 9 2年为止,知名端口号介于1~2 5 5之间。2 5 6~1 0 2 3之间的端口号通常都是由U n i x系统占用,以提供一些特定的U n i x服务。
2. 客户端口号
客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以
了。客户端口号又称作临时端口号(即存在时间很短暂)。
大多数T C P / I P实现给临时端口分配1 0 2 4~5 0 0 0之间的端口号。大于5 0 0 0的端口号是为其他服务器预留的( I n t e r n e t上并不常用的服务)。
十.标准化过程
负责Internet技术的四个小组如下:
1. Internet协会(I S O C,Internet Society)
它是一个推动、支持和促进I n t e r n e t不断增长和发展的专业组织,它把I n t e r n e t作为全球研究通信的基础设施。
2. Internet体系结构委员会(I A B,Internet Architecture Board)
它是一个技术监督和协调的机构。它由国际上来自不同专业的1 5个志愿者组成,其职能是负责I n t e r n e t标准的最后编辑和技术审核。I A B隶属于I S O C。
3. Internet工程专门小组(I E T F,Internet Engineering Task Force)
它是一个面向近期标准的组织,它分为9个领域(应用、寻径和寻址、安全等等)。I E T F开发成为I n t e r n e t标准的规范。为帮助IETF主席,又成立了Internet工程指导小组(IESG, Internet Engineering Steering Group)。
4. Internet研究专门小组(IR I F,Internet Research Task Force)
主要对长远的项目进行研究。
I RT F和I E T F都隶属于I A B。
十一. RFC
所有关于I n t e r n e t的正式标准都以R F C(Request for Comment)文档出版。下面是一些重要的R F C文档:
1. 赋值R F C(Assigned Numbers RFC)
列出了所有I n t e r n e t协议中使用的数字和常数。
2. I n t e r n e t正式协议标准
目前是RFC 1600[Postel 1994]。这个R F C描述了各种I n t e r n e t协议的标准化现状。每种协议都处于下面几种标准化状态之一:标准、草案标准、提议标准、实验标准、信息标准和历史标准。另外,对每种协议都有一个要求的层次、必需的、建议的、可选择的、限制使用的或者不推荐的。
3. 主机需求R F C,11 2 2和1123[Braden 1989a, 1989b]
RFC 11 2 2针对链路层、网络层和运输层;RFC 11 2 3针对应用层。这两个R F C对早期重要的R F C文档作了大量的纠正和解释。
4. 路由器需求R F C
目前正式版是RFC 1009[Braden and Postel 1987],它与主机需求R F C类似,但是只单独描述了路由器的需求。
十二. 标准的简单服务
大多数服务都提供的简单服务见下表:
名字
|
TCP端口号
|
UDP端口号
|
RFC
|
描述
|
e c h o
|
7
|
7
|
862
|
服务器返回客户发送的所有内容
|
d i s c a r d
|
9
|
9
|
863
|
服务器丢弃客户发送的所有内容
|
d a y t i m e
|
13
|
13
|
867
|
服务器以可读形式返回时间和日期
|
c h a r g e n
|
19
|
19
|
864
|
当客户发送一个数据报时, T C P服务器发
送一串连续的字符流,直到客户中断连接。
U D P服务器发送一个随机长度的数据报
|
t i m e
|
37
|
37
|
868
|
服务器返回一个二进制形式的32 bit 数,
表示从U T C时间1 9 0 0年1月1日午夜至今的秒
数
|
如果仔细检查这些标准的简单服务以及其他标准的T C P / I P服务(如Te l n e t、F T P、
S M T P等)的端口号时,我们发现它们都是奇数。这是有历史原因的,因为这些端口号
都是从N C P端口号派生出来的(N C P,即网络控制协议,是A R PA N E T的运输层协议,
是T C P的前身)。N C P是单工的,不是全双工的,因此每个应用程序需要两个连接,需
预留一对奇数和偶数端口号。当T C P和U D P成为标准的运输层协议时,每个应用程序
只需要一个端口号,因此就使用了NCP中的奇数。
十三. 互联网
i n t e r n e t意思是用一个共同的协议族把多个网络连接在一起。而I n t e r n e t指的是世界范围内通过T C P / I P互相通信的所有主机集合(超过1 0 0万台)。I n t e r n e t是一个i n t e r n e t,但i n t e r n e t不等于I n t e r n e t。
十四. 应用编程接口
使用T C P / I P协议的应用程序通常采用两种应用编程接口( A P I):s o c k e t和T L I(运输层接口:Transport Layer Interface)。
十五. 小结
T C P / I P协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。
在T C P / I P中,网络层和运输层之间的区别是最为关键的:网络层( I P)提供点到点的服务,而运输层( T C P和U D P)提供端到端的服务。
一个互联网是网络的网络。构造互联网的共同基石是路由器,它们在I P层把网络连在一
起。
在一个互联网上,每个接口都用I P地址来标识,尽管用户习惯使用主机名而不是I P地址。
域名系统为主机名和I P地址之间提供动态的映射。端口号用来标识互相通信的应用程序服务器使用知名端口号,而客户使用临时设定的端口号。
posted on 2007-08-22 18:39
阿蜜果 阅读(2693)
评论(0) 编辑 收藏 所属分类:
网络通信相关