1.分层
TCP/IP是一组不同协议组合在一起构成的协议族。也叫做Internet Protocal Suite(协议族)。
TCP/IP通常被认为是一个四层协议系统。
应用层--------Telnet,FTP,E-mail...
↓
运输层--------TCP,UDP
↓
网络层--------IP,ICMP,IGMP
↓
链路层--------设备驱动程序及接口卡
一般来说,应用程序是一个用户进程,而下三层是在操作系统的内核执行。应用程序关心的是应用程序的细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,而要处理所有的通信细节。
2.链路层
也称为数据链路层或者网络接口层。
通常包括操作系统中的设备驱动程序和计算机中的网络接口卡。
3.网络层
也称为互联网层。
处理分组在网络中的活动,如分组的选路。
IP:网际协议
ICMP:Internet互联网控制报文协议
IGMP:Internet组管理协议
4.运输层
主要是为两台主机上的应用程序提供端到端的通信。
TCP:传输控制协议。提供可靠性的数据通信。
UDP:用户数据报协议。提供简单的服务,可靠性必须由应用层来提供。
5.应用层
负责处理特定的应用程序细节。
Telnet:远程登录
FTP:文件传输协议
SMTP:简单邮件传送协议
SNMP:简单网络管理协议
6.路由器
构造互联网最简单的方法就是把两个或者多个网络通过路由器连接。
它是一种特殊的用于网络互连的硬件盒。也称作IP路由器。(IP Router)。
以前,这些盒子也称为网关(gateway).
现在网关指的是应用层网关:一个连接两种不同协议族的进程。(如TCP/IP和IBM的SNA)。它为某个特殊的应用程序服务(常常是电子邮件或文件传输)。
7.网络层和应用层分开的原因
FTP客户← ---------------------------------------------------------------------------------- → FTP服务器
↑ --------------------------------------------------------------------------------------------------- ↑
↓ --------------------------------------------------------------------------------------------------- ↓
TCP←‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐→TCP
↑ --------------------------------------------------------------------------------------------------- ↑
↓ --------------------------------------------------------------------------------------------------- ↓
IP← --------------------------- IP协议 =======IP======= IP协议 --------------- →IP
↑ | | ↑
↓ | | ↓
以太网驱动程序←以太网→以太网 令牌环← 令牌环→令牌环驱动程序
协议 驱动程序 驱动程序 协议
这是个简单的草图,构成为:
End System(端系统:两边的主机-客户机服务器形式)。
Intermediate system(中间系统:中间的路由器)。
由此我们可以得出以下结论:
1.应用层和运输层使用的是端到端协议(End-to-end)
2.网络层提供的是逐跳协议(Hop-by-hop).端系统和每个中间系统都要使用它
3.路由器具有两个或者多个网络接口层(为了连接2个或多个网络)→multihomed多接口的
4.网络层提供的是一种不可靠的服务,只是尽可能快地把分组从源结点送到目的结点,但是不提供可靠性保证
5.TCP在不可靠的IP层上提供了一个可靠的运输层,为了提供该可靠服务,TCP采用了超时重传,发送和接受的端到端确认分组等机制
6.综上,运输层和网络层分别负责不同的功能,分开是有必要的。
备注:
连接网络的另一个途径是通过网桥。它是在链路层上对网络进行互连。网桥使多个局域网组合在一起,这样对上层来说好像就是一个局域网。
数据报:发送方传输到接收方的一个消息单位。
8.互联网地址
互联网上每个接口都必须有一个唯一的Internet地址(IP地址)。IP地址长32bit.
A类: 0 7位网络号 24位主机号 0.0.0.0 - 127.255.255 (点分十进制表示法:Dotted decimal notation)
B类: 10 14位网络号 16位主机号 128.0.0.0 - 191.255.255.255
C类: 110 21位网络号 8位主机号 192.0.0.0 - 223.255.255.255
D类: 1110 28位多播组号 224.0.0.0 - 239.255.255.255
E类: 11110 27位留待后用 240.0.0.0 - 247.255.255.255
多接口主机具有多个IP地址,其中每个接口对应一个。
互联网网络信息中心InterNIC(Internet Network Information Centre)负责分配网络号,主机号由系统管理员来负责。
9.域名系统
DNS域名系统是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
任何应用程序都可以调用一个标准的库函数来查看主机名对应的IP地址,或者相反。所以一般以主机名为参数的应用程序也可以IP地址为参数。
10.封装和分用
封装:传送数据的时候,数据被送入协议栈,然后逐个通过每一层直到被当作一窜比特流送入网络。每一层对收到的数据都要增加一些首部信息,有时候还要加上尾信息。TCP传给IP的数据单元叫做TCP报文段或TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame)。
分用:当目的主机收到一个以太网数据帧的时候,数据从数据栈中有底部开始往上升,同时去掉各层协议加上的报文首部。分层的协议盒都要去检查报文首部的协议标识,以确认接收数据的上层协议。这个过程就是分用(Demultiplexing)。
以太网的数据帧的物理特性是其长度必须在46-1500字节之间。(字节:octet,byte)
IP在首部中存入一个长度为8bit的数值,称为协议域。1:ICMP,2:IGMP,6:TCP,17:UDP。
TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。
给ICMP,IGMP定位的问题:IGMP,ICMP的报文实际上封装在IP数据报中。
11.客户-服务器模型
服务分为两种类型:
①重复型
1.等待一个客户请求的到来
2.处理用户请求
3.发送响应给发送请求的客户
4.返回第一步
②并发型
1.等待一个客户请求的到来
2.启动新的服务器(生成新的进程,任务,线程...)来处理用户要求。
(新的服务器对用户要求处理并返回。处理后,结束这个新的服务器)
3.返回第一步
TCP服务器通常是并发的,UDP服务器通常是重复的。
12.端口号
任何TCP/IP实现所提供的服务都用知名的1-1023之间的端口号。这些端口号是Internet号分配机构(Internet Assigned Numbers Authority,IANA)来管理。
FTP服务器的TCP端口号 21
Telnet服务器的TCP端口号 23
TFTP服务器的UDP端口号 69
客户端对使用的端口号并不关心,只需要保证该端口号在本机上唯一即可。客户端口号又称作临时端口号。这是应为它通常只在用户运行该客户程序时才存在。大多数TCP/IP给临时端口号分配的1024-5000之间的端口号。Solaris2.2是一个有名的例外。它的临时端口号是从32768开始。
大多数Unix的系统的文件/etc/services里面包含了常用的端口号。查找的时候-〉grep servicename /etc/services
Unix系统有保留端口号的概念。只有特级用户权限的用户的进程才能允许给自己分配保留端口号。保留端口号介于1-1023之间。
13.标准的简单服务
service tcp udp RFC
echo 7 7 862服务器返回客户发送的所有内容
discard 9 9 863服务器丢弃客户发送的所有内容
daytime 13 13 867服务器以可读方式返回时间和日期
chargen 19 19 864当用户发送一个数据报时,TCP服务器发送一窜连续的字符流直到客户中断连接。
UDP服务器发送一个随机长度的数据报
time 37 37 868服务器返回一个2进制的32bit数,表示从UTC1900年1月1日午夜至今的秒数
14.应用编程接口
socket:Berkeley socket
TLI(运输层接口):Transport Layer Interface,AT&T开发,又称XTI(X/Open运输层接口)
posted on 2005-12-19 10:53
Yama的家 阅读(1189)
评论(7) 编辑 收藏 引用 所属分类:
网络之TCP/IP