当前位置:文档之家› TCPIP基础:DNS DHCP ICMP和ARP协议

TCPIP基础:DNS DHCP ICMP和ARP协议

TCP/IP基础:DNS\DHCP\ICMP和ARP协议

DNS 的来由

如果您为您的机器设定过internet 连线﹐那么您一定接触过DNS 了﹐但DNS 又是什么东东呢﹖说穿了﹐DNS 是用来帮助记忆网路位址的﹐完全是为了迁就人类的记忆思维而设的。

DNS 的全称是Domain Name System(或Service) ﹐当您连上一个网址﹐

在URL打上﹕https://www.doczj.com/doc/11408955.html, 的时候﹐可以说就是使用了DNS 的服务了。

但如果您知道这个https://www.doczj.com/doc/11408955.html, 的IP 位址﹐直接输入216.239.53.101

也同样可以到达这个网址。其实﹐电脑使用的只是IP 位址而已(最终也是0 和

1 啦)﹐这个https://www.doczj.com/doc/11408955.html, 只是让人们容易记忆而设的。因为我们人类﹐

对一些比较有意义的文字记忆(如﹕https://www.doczj.com/doc/11408955.html,)﹐比记忆那些毫无头绪的号码(如﹕216.239.53.101)﹐往往容易得多。DNS 的作用就是为我们在文字和

IP 之间担当了翻译﹐而免除了强记号码的痛苦。

假如您的电话有名字记忆功能﹐您只需知道对方的名字﹐就可以拨号给友

人了﹐我们可以说﹐这电话也具备如DNS 的功能了呢﹗但是﹐我们在网路中

使用的DNS 系统﹐就是这么简单吗﹖非也﹐复杂得很呢﹗下面﹐就让我们一

起去探索一下DNS 的奥秘﹕

在早期的IP 网路世界里面﹐每台电脑都只用IP 位址来表示﹐不久人们

就发现这样很难记忆﹐于是﹐一些Unix的管理者﹐就建立一个HOSTS 对应表

﹐将IP 和主机名字对应起来﹐这样﹐用户只需输入电脑名字﹐就可以代替IP

来进行沟通了。如果你安装了Linux 系统﹐在/etc下面就可以找到这个hosts 档案﹔在NT 的系统里﹐你也可以在\winnt\system32\drivers\etc下面找到它。不过这个HOSTS 档是要由管理者手工维护的﹐最大的问题是无法适用于大型

网路﹐而且更新也是件非常头痛的事情。这就是DNS 大派用场的时候了。

DNS 的结构

DNS 是一个分层级的分散式名称对应系统﹐有点像电脑的目录树结构﹕在

最顶端的是一个“root”﹐然后其下分为好几个基本类别名称﹐如﹕com﹑org﹑edu等﹔再下面是组织名称﹐如﹕IBM﹑Microsoft﹑intel等﹔继而是主机名称

﹐如﹕www﹑mail﹑ftp 等。因为当初internet 是从美国发展起的﹐所以当时并没有国域名称﹐但随着后来internet 的蓬勃发展﹐DNS 也加进了诸如tw﹑hk﹑cn等国域名称。所以一个完整的dns名称就好象是这样的﹕

https://www.doczj.com/doc/11408955.html,﹐而整个名称对应的就是一个(或多个) IP 位址了。

在早期的设计下﹐root 下面只有六个组织类别﹕

不过﹐自从组织类别名称开放以后﹐各种各样五花八门的名称也相继涌现出来了﹐但无论如何﹐取名的规则最好尽量适合网站性质。除了原来的类别资料由美国本土的NIC(Network Information Center) 管理之外﹐其它在国域以下的类别分别由该国的NIC 管理(比方说台湾的DNS 将授权给twnic来管理)。这样的结构看起来就像这样﹕

在结构中﹐各组织的DNS 经过申请后由该组织或其委托主机管理(通常当您申请注册一个domain 域名称的时候﹐都要指定两台DNS 主机负责该域名的DNS 管理)。

DNS 的运作

在我们设定IP 网路环境的时候﹐都要告诉每台主机关于DNS 伺服器的位址(我们可以手动的在每一台主机上面设置﹐也可以使用DHCP 来指定)。但这设定的义意何在呢?从前面的介绍我们或可知道:其目的就是请DNS 帮忙解析主机名称与IP 位址啦。在这个设定过程中,DNS 被称为resolver (也就是负责解析的DNS Server),而被设定主机,则只是单纯的DNS Client 了,也就是提出解析请求的主机。

下面让我们看看DNS 是怎样运作的﹕

1. 当被询问到有关本域名之内的主机名称的时候﹐DNS 伺服器会直接做出回答﹔

2. 客户端向伺服器提出查询项目﹔

3. 当被询问到有关本域名之内的主机名称的时候﹐DNS 伺服器会直接做出回答﹔

4. 如果所查询的主机名称属于其它域名的话﹐会检查快取记忆体(Cache)﹐看看有没有相关资料﹔

5. 如果没有发现﹐则会转向root 伺服器查询﹔

6. 然后root 伺服器会将该域名之下一层授权(authoritative)伺服器的位址告知(可能会超过一台)﹔

7. 本地伺服器然后会向其中的一台伺服器查询﹐并将这些伺服器名单存到记忆体中﹐以备将来之需(省却再向root 查询的步骤)﹔

8. 远方伺服器回应查询﹔

9. 若该回应并非最后一层的答案,则继续往下一层查询,直到获的客户端所查询的结果为止﹔

10. 将查询结果回应给客户端﹐并同时将结果储存一个备份在自己的快取记忆里面﹔

11. 如果在存放时间尚未过时之前再接到相同的查询﹐则以存放于快取记忆里面的资料来做回应。

从这个过程我们可以看出﹐没有任何一台DNS 主机会包含所有域名的DNS 资料﹐资料都是分散在全部的DNS 伺服器中﹐而NIC 只需知道各DNS 伺服器位址就可以了。

为了更好地理解一下DNS 的运作﹐让我们用下图看看查询

https://www.doczj.com/doc/11408955.html, 这台主机位址的过程﹕

在这个例子中﹐https://www.doczj.com/doc/11408955.html, 台主机的DNS 对应资料﹐

是由负责https://www.doczj.com/doc/11408955.html, 这个域名的DNS 伺服器管理的。(在DNS 术语中﹐我们称一个域名为“zone”﹐这个zone 可以是您从NIC 申请回来的域

名﹐也可以是从该域名之下延伸出来的“sub-zone”)。在这台DNS 伺服器上面

﹐必须有一个关于https://www.doczj.com/doc/11408955.html, 这个zone 的档案﹐而这档案里面

必须有一笔关于www 的记录(任何主机都是以“记录”来表示,称为Resource Record)。这个记录可以为一个IP 位址﹐也可以以别名形式来对应一台主机名

称﹐但无论如何﹐所对应的主机名称最终是要被一个IP 位址所对应着就是了。

同时﹐DNS 还能提供“反查询”(reverse lookup) 功能﹐也就是以IP 来查

询主机名称。网路上面的许多服务﹐如﹕FTP, SMTP﹑等等﹐都需要到这个功能。其实﹐DNS 服务本身就必须要使用反查询功能﹐而且在设定上﹐也必须要为每

个网路建立起reverse zone。虽然有些人发觉即使没有reverse zone 也可以使用到DNS 服务﹐但其中弊端却不容易被察觉到﹐在这个(中文)网页﹕

https://www.doczj.com/doc/11408955.html,.tw/Basic/WhenToUse-Rev.html 上面﹐您可以看到忽

略revers zone 所致一些问题。

DNS 的名称记录

事实上﹐DNS 不仅仅是用来解释位址用的﹐而且还可以回答更多关于网路

和主机的其它信息﹐其中很重要的一个功能就是可以供邮件系统进行路由。这些资料﹐通常会以不同的“记录”名称出现在DNS的资料档案中。下面让我们参考

一个Linux 的DNS 档案﹐看看这些记录是如何表示的﹕

;; Zone file for siyongc.domain;; Then full zone file;$TTL 86400@IN SOA RedHat52.siyongc.domain. netman.siyongc.domain. (1999092801 ; serial8H ; refresh2H ; retry1W ; expire1D ) ; minimun;IN TXT "A test domain, created by Netman"IN NS RedHat52IN NS debian.homeIN MX 10

redhat52.siyongc.domain.IN MX 20 debian.home;localhost IN A 127.0.0.1﹔gw IN A 192.168.0.17IN HINFO "Redhat" "MASQ"IN TXT "The masquerade gateway to internet"﹔redhat52 IN A 192.168.0.17IN MX 10 redhat52IN MX 20 debian.homeIN HINFO "Dell PII 266" "Linux RedHat"www IN CNAME

redhat52mail IN CNAME redhat52ftp IN CNAME redhat52news IN CNAME redhat52smtp IN CNAME redhat52﹔pii266 IN A 192.168.0.15IN MX 10 redhat52.siyongc.domain.IN MX 20 debian.home.﹔slware36 IN A

192.168.0.18IN MX 10 redhat52.siyongc.domain.IN MX 20 debian.home.﹔rhroute IN A 192.168.0.4IN MX 10 redhat52.siyongc.domain.IN MX 20 debian.home.﹔home IN ns debian.home.siyongc.domain.debian.home IN A 10.0.2.101

我们姑且不理会开头那几行的意思﹐那是给DNS 系统本身使用的(我将会在“学习Linux”文章里面再详细讨论)﹐这里我们只是看看几个记录名称而已﹕

分擔DNS 工作

由於DNS 的重要性日益顯著,為提高其容錯能力及查詢效能,我們在架設某一單一zone 的時侯,常以多台伺服器來負責該zone 的服務。其中,我們必需指定一台Primary(master) DNS 伺服器,它是架設在某一個網域下被主要授權並控制所有名稱記錄的主控伺服器﹐管轄著該網域的所有記錄資料﹐這些記錄資料只有primary(master) 可以修改。

但如果在一個比較大型的網路中﹐DNS 伺服器就會變得很繁忙﹐所以您可

以設定多個DNS 來分擔master 的工作﹐但您或許不願意到每一個DNS 伺服器去更新資料吧﹖而且就算您願意這樣做﹐也容易出現錯誤或資料不同步的情形。這樣您可以設定其它的伺服器為secondary (slave) DNS 來複製master 上面的記錄資料﹐這樣﹐其它的電腦可以被分派到不同的DNS 做查詢﹐既可以

分擔master 的工作﹐而且資料也可以自動進行同步工作。為確保資料的一致性,master 每次更新過資料後會以notify 機制主動通知slave 前來同步。此外,您可以設定DNS 資料同步的時間間隔﹐在dns檔案中的Refresh 設定就是了。

经过了前面的学习,相信您不再认为设定与管理TCP/IP 网路是件轻松的事情。要成功的将您的网路用TCP/IP 连接起来,您就得为每台电脑设定IP、mask、gateway、等等繁琐的事情。

要是您想管理好一个比较大的网路﹐或是电脑节点经常改变(如手提电脑或

拨接)﹐这样的工作可以说是非常令人讨厌的﹐而且出错的机会也比较多。要是,万一日后要进行IP 重新规划﹐其工作量也是相当惊人的。

面对这些情形﹐DHCP 可以说您的菩萨了﹕它不但救苦救难﹐而且神通广大。

什么是DHCP?

DHCP 是Dynamic Host Configuration Protocol 之缩写﹐它的前身是BOOTP。BOOTP 原本是用于无磁碟主机连接的网路上面的﹕网路主机使用BOOT ROM 而不是磁碟起动并连接上网路﹐BOOTP 则可以自动地为那些主机

设定TCP/IP 环境。但BOOTP 有一个缺点:您在设定前须事先获得客户端的

硬体位址,而且,与IP 的对应是静态的。换而言之,BOOTP 非常缺乏"动态性" ,若在有限的IP 资源环境中,BOOTP 的一对一对应会造成非常可观的浪费。

DHCP 可以说是BOOTP 的增强版本﹐它分为两个部份﹕一个是伺服器端

﹐而另一个是客户端。所有的IP 网路设定资料都由DHCP 伺服器集中管理﹐

并负责处理客户端的DHCP 要求﹔而客户端则会使用从伺服器分配下来的IP环境资料。比较起BOOTP ,DHCP 透过"租约" 的概念,有效且动态的分配客户端的TCP/IP 设定,而且,作为兼容考量,DHCP 也完全照顾了BOOTP Client 的需求。

DHCP 的分配形式

首先﹐必须至少有一台DHCP 工作在网路上面﹐它会监听网路的DHCP

请求﹐并与客户端搓商TCP/IP 的设定环境。它提供两种IP 定位方式﹕

Automatic Allocation

自动分配﹐其情形是﹕一旦DHCP 客户端第一次成功的从DHCP 伺服器

端租用到IP 位址之后﹐就永远使用这个位址。

Dynamic Allocation

动态分配﹐当DHCP 第一次从HDCP 伺服器端租用到IP 位址之后﹐并

非永久的使用该位址﹐只要租约到期﹐客户端就得释放(release)这个IP 位址

﹐以给其它工作站使用。当然﹐客户端可以比其它主机更优先的延续(renew)租约﹐或是租用其它的IP 位址。

动态分配显然比自动分配更加灵活﹐尤其是当您的实际IP 位址不足的时

候﹐例如﹕您是一家ISP ﹐只能提供200 个IP位址用来给拨接客户﹐但并不意味着您的客户最多只能有200 个。因为要知道﹐您的客户们不可能全部同一时间上网的﹐除了他们各自的行为习惯的不同﹐也有可能是电话线路的限制。这样﹐您就可以将这200 个位址﹐轮流的租用给拨接上来的客户使用了。这也是为什么当您查看IP 位址的时候﹐会因每次拨接而不同的原因了(除非您申请的是一个固定IP ﹐通常的ISP 都可以满足这样的要求﹐这或许要另外收费)。当然﹐ISP 不一定使用DHCP 来分配位址﹐但这个概念和使用IP Pool 的原理是一样的。

DHCP 除了能动态的设定IP 位址之外﹐还可以将一些IP 保留下来给一些特殊用途的机器使用﹐它可以按照硬体位址来固定的分配IP 位址﹐这样可以

给您更大的设计空间。同时﹐DHCP 还可以帮客户端指定router﹑netmask﹑DNS Server﹑WINS Server﹑等等项目﹐您在客户端上面﹐除了将DHCP 选项打勾之外﹐几乎无需做任何的IP 环境设定。

DHCP 的工作原理

视乎客户端是否第一次登录网路﹐DHCP 的工作形式会有所不同。

第一次登录的时候﹕

1. 寻找Server。当DHCP 客户端第一次登录网路的时候﹐也就是客户发现本机上没有任何IP 资料设定﹐它会向网路发出一个DHCPDISCOVER 封包。因为客户端还不知道自己属于哪一个网路﹐所以封包的来源位址会为0.0.0.0

﹐而目的位址则为255.255.255.255 ﹐然后再附上Dhcpdiscover的信息﹐向网路进行广播。

在Windows的预设情形下,Dhcpdiscover的等待时间预设为1 秒﹐也就是当客户端将第一个Dhcpdiscover封包送出去之后﹐在1 秒之内没有得到回应的话﹐就会进行第二次Dhcpdiscover广播。若一直得不到回应的情况下﹐客户端一共会有四次Dhcpdiscover广播(包括第一次在内)﹐除了第一次会等待1 秒之外﹐其余三次的等待时间分别是9﹑13﹑16 秒。如果都没有得到DHCP 伺服器的回应﹐客户端则会显示错误信息﹐宣告Dhcpdiscover的失败。之后﹐基于使用者的选择﹐系统会继续在5 分钟之后再重复一次Dhcpdiscover的过程。

2. 提供IP 租用位址。当DHCP 伺服器监听到客户端发出的Dhcpdiscover 广播后﹐它会从那些还没有租出的位址范围内﹐选择最前面的的空置IP ,连同其它TCP/IP 设定,回应给客户端一个DHCPOFFER 封包。

由于客户端在开始的时候还没有IP 位址﹐所以在其Dhcpdiscover封包内会带有其MAC 位址信息﹐并且有一个XID 编号来辨别该封包﹐DHCP 伺服器回应的Dhcpoffer封包则会根据这些资料传递给要求租约的客户。根据伺服器端的设定﹐Dhcpoffer封包会包含一个租约期限的信息。

3. 接受IP 租约。如果客户端收到网路上多台DHCP 伺服器的回应﹐只会挑选其中一个Dhcpoffer而已(通常是最先抵达的那个)﹐并且会向网路发送一个Dhcprequest广播封包﹐告诉所有DHCP 伺服器它将指定接受哪一台伺服器提供的IP 位址。

同时﹐客户端还会向网路发送一个ARP 封包﹐查询网路上面有没有其它

机器使用该IP 位址﹔如果发现该IP 已经被占用﹐客户端则会送出一个DHCPDECLINE 封包给DHCP 伺服器﹐拒绝接受其Dhcpoffer﹐并重新发送Dhcpdiscover信息。

事实上﹐并不是所有DHCP 客户端都会无条件接受DHCP 伺服器的offer ﹐尤其这些主机安装有其它TCP/IP 相关的客户软体。客户端也可以用Dhcprequest向伺服器提出DHCP 选择﹐而这些选择会以不同的号码填写在DHCP Option Field 里面﹕

换一句话说﹐在DHCP 伺服器上面的设定﹐未必是客户端全都接受﹐客户端可以保留自己的一些TCP/IP 设定。而主动权永远在客户端这边。

4.租约确认。当DHCP 伺服器接收到客户端的Dhcprequest之后﹐会向客户端发出一个DHCPACK 回应﹐以确认IP 租约的正式生效﹐也就结束了一个完整的DHCP 工作过程。

如上的工作流程如下图:

DHCP 发放流程

第一次登录之后﹕

一旦DHCP 客户端成功地从伺服器哪里取得DHCP 租约之后﹐除非其租

约已经失效并且IP 位址也重新设定回0.0.0.0 ﹐否则就无需再发送Dhcpdiscover信息了﹐而会直接使用已经租用到的IP 位址向之前之DHCP 伺服器发出Dhcprequest信息﹐DHCP 伺服器会尽量让客户端使用原来的IP 位址﹐如果没问题的话﹐直接回应Dhcpack来确认则可。如果该位址已经失效或已经被其它机器使用了﹐伺服器则会回应一个DHCPNACK 封包给客户端﹐要求

其从新执行Dhcpdiscover。

至于IP 的租约期限却是非常考究的﹐并非如我们租房子那样简单﹐以NT 为例子﹕DHCP 工作站除了在开机的时候发出dhcprequest请求之外﹐在租约

期限一半的时候也会发出dhcprequest﹐如果此时得不到DHCP 伺服器的确认的话﹐工作站还可以继续使用该IP ﹔然后在剩下的租约期限的再一半的时候(即租约的75%)﹐还得不到确认的话﹐那么工作站就不能拥有这个IP 了。至于为什么不是到租约期限完全结束才放弃IP 呢﹖﹐对不起﹐小弟也是不学无术

之人﹐没有去深究了﹐只知道要回答MCSE 题目的时候﹐您一定要记得NT 是这么工作的就是了。

要是您想退租,可以随时送出DHCPLEREASE 命令解约﹐就算您的租约在前一秒钟才获得的。

跨网路的DHCP 运作

从前面描述的过程中,我们不难发现:DHCDISCOVER 是以广播方式进行的,其情形只能在同一网路之内进行﹐因为router 是不会将广播传送出去的。但如果DHCP 伺服器安设在其它的网路上面呢﹖由于DHCP 客户端还没有IP 环

境设定﹐所以也不知道Router 位址﹐而且有些Router 也不会将DHCP 广播封包传递出去﹐因此这情形下DHCPDISCOVER 是永远没办法抵达DHCP 伺服器那端的,当然也不会发生OFFER 及其他动作了。要解决这个问题,我们可以用DHCP Agent (或DHCP Proxy )主机来接管客户的DHCP 请求﹐然后将此请

求传递给真正的DHCP 伺服器﹐然后将伺服器的回复传给客户。这里﹐Proxy 主机必须自己具有路由能力,且能将双方的封包互传对方。

若不使用Proxy,您也可以在每一个网路之中安装DHCP 伺服器﹐但这样的话﹐一来设备成本会增加﹐而且﹐管理上面也比较分散。当然啰﹐如果在一个十分大型的网路中﹐这样的均衡式架构还是可取的。端视您的实际情况而定了。

DHCP 封包格式

以下为各栏位的简要说明:

OP

若是client 送给server 的封包,设为1 ,反向为 2 。

HTYPE

硬体类别,Ethernet 为 1 。

HLEN

硬体位址长度,Ethernet 为 6 。

HOPS

若封包需经过router 传送,每站加1 ,若在同一网内,为0 。

TRANSACTION ID

DHCPREQUEST 时产生的数值,以作DHCPREPLY 时的依据。

SECONDS

Client 端启动时间(秒)。

FLAGS

从0 到15 共16 bits ,最左一bit 为 1 时表示server 将以广播方式传送封包给client ,其余尚未使用。

ciaddr

要是client 端想继续使用之前取得之IP 位址,则列于这里。

yiaddr

从server 送回client 之DHCPOFFER 与DHCPACK 封包中,此栏填写分配给client 的IP 位址。

siaddr

若client 需要透过网路开机,从server 送出之DHCPOFFER、DHCPACK、DHCPNACK 封包中,此栏填写开机程式码所在.

在整个TCP/IP 协定家族中,对"使用者" 来说,ICMP 恐怕是易忽略的协定了。关于前面所讨论的协定,真要能发挥工作的前提条件是:"假设一切都没问题" 。

然而,在当今如此复杂的网路环境中,前述条件恐怕是没办法保证的:设定可能有误、线路有可能会断、设备可能挂点、router 可能负载太高、 .... 等等又等等的状况,都是我们没办法确保的。那么,我们必需有一套机制来侦测或通知各种各样可能发生的状况,这就是ICMP 协定的目的了。

之所以说ICMP 最容易被忽略,是因为,大部份的情况下,ICMP 只给底层的网路设备参考且被解决了。真要劳架使用者执行的话,恐怕不多,最具代表的,算是ping 与traceroute这两个工具了。下面,让我们一起揭开ICMP 的神秘面纱...

ICMP 协定之内容

ICMP 的全称是Internet Control Message Protocol 。从技术教度来说,ICMP 就是一个"错误侦测与回报机制",其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有﹕

·侦测远端主机是否存在。

·建立及维护路由资料。

·重导资料传送路径。

·资料流量控制。

ICMP 在沟通之中,主要是透过不同的类别( Type )与代码( Code ) 让机器来识别不同的连线状况。常用的类别如下表所列﹕

ICMP 是个非常有用的协定﹐尤其是当我们要对网路连接状况进行判断的时候。下面让我们看看常用的ICMP 实例,以更好了解ICMP 的功能与作用。

关于PING

当关于这个命令应该很多人都用过了吧﹖它就是用来测试两台主机是否能够顺利连线的最简单的工具﹕

在整个TCP/IP 协定家族中,对"使用者" 来说,ICMP 恐怕是易忽略的协定了。下面,让我们一起揭开ICMP 的神秘面纱...

在Linux 使用ping 命令﹐如果您不使用-c N 参数来指定送出多少个ICMP 封包的话﹐ping 命令会一直持续下去﹐直到您按Ctrl + C 为止。从上面的命令结果我们可以确定连线是否成功之外﹐还可以根据它的time 来判断当前的连线速度﹐数值越低速度越快﹔在命令结束的两行﹐还有一个总结﹐如果发现您的packet loss 很严重的话﹐那就要检察您的线路品质﹐或是上游的服务品质了﹔最后一行是round-trip (来回)时间的最小值﹑平均值﹑最大值﹐它们的时间单位都是微秒(ms)。不过﹐那个mdev是什么意思我也不知道~~

如果运用得当﹐ping 可以帮我们判断出许多状况。例如﹐我们要看一下跟远方的机器是否连接得上﹐先可以ping 一下对方的机器名称﹔如果连接不上的话﹐我们可以ping 对方的ip﹐如果ip可以ping 得到﹐那么﹐很可能是dns 不工作了﹔那么我们可以检查本身主机的dns伺服器是否指定正确、以及dns 伺服器是否设定正确。如果连IP 都ping 不了﹐那么﹐很可能是IP 设定的问题了﹐也可能是网路的连线问题。检查的步骤也有很多种﹐下面是方法之一﹕

1. ping 对方的router (如过您知道其位址的话)﹐假如ping 得上﹐那可能是对方机器和其相连网路的问题﹔

2. 如果ping 不到对方的router ﹐那么可以ping 自己的router。如果ping 得上﹐那么好可能是router 和router 之间的问题﹔

3. 如果自己的router 也ping 不到﹐那么可能是自己的机器和router 之间的问题﹐我们可以ping 一下自己的IP 。如果自己的IP 可以ping 得到﹐那么﹐可能是连线的问题﹐我们可以检查一下网线、hub、等设备﹐看看有没有损毁的状况。

4. 同时﹐我们也可以pin g一下网路上面其它的机器﹐也可以用其它机器ping 一下router ﹐来判别一下问题来自自己机器、还是网路、还是router、等等。

5. 如果自己的IP 都ping 不到﹐那么可能是网路卡坏掉了或没有正确设定﹐可以看看设备资源有没有冲突﹐也可以看看设备有没有被系统启动。

6. 如果看来都没问题﹐那么可以ping 一下回圈位址12

7.0.0.1 ﹐如果连这个都ping 不了的话﹐这台机器的IP 功能根本就没被启动﹗那么﹐您就要先检查一下网路功能有没有选择、IP 协定有没有被绑定( bind )、等基本网路设定了。

从上面的过程中﹐我们不难看出ping 这个命令真是非常有用的。然而,我们能ping 一台机器的时候﹐我们就可以确定连线是成功的﹐但如果不能ping 的话﹐未必是连不上哦。嗯﹖怎么说呢﹖且听我道来﹕使用ping 命令的时候﹐事实上是送出一个echo-request( type 8 ) 的ICMP 封包﹐如果对方的机器能接收到这个请求﹐而且愿意作出回应﹐则送回一个echo-reply( type 0 ) 的ICMP 封包﹐当这个回应能顺利抵达的时候﹐那就完成一个ping 的动作。

很显然﹐如果这个echo-request 不能到达对方的机器﹐或是对方回应的echo-reply 不能顺利送回来﹐那ping 就失败。这情形在许多有防火墙的环境中都会碰到﹐如果防火墙随便将request 和reply 拦下来就会导致ping 失败﹐但并不代表其它连线不能建立。另外﹐就算没有防火墙作怪﹐对方也可以将机器设定为不回应任何echo-request 封包﹐若在Linux 上,只要用下面命令就可以了﹕

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

如果您不想别人ping 您的机器﹐也可以如法泡制。但真的当您需要用ping 命令来测试网路连线的时候﹐就做不到了﹐有利有弊啦。

关于TRACEROUTE

除了用ping 命令来检查连线之外﹐还有另外一个非常厉害的工具我们可以使用的﹐就是traceroute命令了(在Windows上面则称为tracert命令)﹕

透过traceroute命令﹐我们可以找出通往目的地的所有经过的路由节点﹐并以数字将路由顺序标识出来。若是您觉得回应很慢,那可加上-n 参数﹐节点名称将会以IP 位址显示﹐因为不需要进行名称解析﹐回应速度当然会快一些。

从上面的traceroute结果﹐我们可以看到每一个节点都返回3 个

round-trip 时间作参考。这样﹐您就能够判断整个连线路由中﹐交通瓶颈所在的位置在哪里。您或许奇怪traceroute是如何揪出所有路由节点的呢﹖且听我细说﹕

您是否有留意到ping 命令的结果有一个TTL 值﹖通常来说﹐Time To Live 都是以时间为单位的﹐但是在路由上面却是以跳站数目为单位的。为了防止一个封包无限期呆在网路上路由﹐每一个封包都会被赋予一个TTL 值﹐告

诉它最多能经过多少个跳站。当封包被一个路由节点处理之后﹐它原来的TTL 值就会被扣掉1 ﹐这样﹐如果封包的TTL 降到0 的时候﹐路由器就会丢弃

这个封包﹐并且同时向来源地送出一个time_exceeded( type 11 ) 的ICMP 封包﹐以告知其封包的命运。

找到灵感了吗﹖聪明的traceroute程式设计者正是利用了ICMP 这个特殊功能﹐来找出每一个路由节点的﹕

1. 首先﹐traceroute命令会向目标位址送出UDP 侦测封包(在Linux 中,可用-I 改为ICMP 封包)﹐但将第一个送出的封包之TTL 设为 1 。这样﹐第一个路由节点在处理这个封包的时候﹐减掉1 ,并发现TTL 为0 ﹐于是就不处理这个封包﹐并同时送回一个ICMP 封包。这样﹐发送端就知道第一个路由节点在哪里了。

2. 当接得到第一个ICMP 返回的时候﹐程式会检查返回主机是否就是目标主机﹐如果不是﹐则再送出第二个封包﹐但TTL 比上次增加1 。

3. 这样﹐第一路由节点接到的封包之TTL 就不是0 ﹐那么处理完毕后送给下一个节点﹐同时将TTL 扣除 1 。这样,当下一个站收到这个封包,再扣掉TTL 为0 ﹐也会送回ICMP 封包﹐这样﹐程式就知道第二个路由节点在哪里了。

4. 然后重复上一个动作﹐直到找到目标主机为止﹐或是封包的最大TTL (通常为30) 都用光为止﹐但您可以用-m 参数来指定最大的TTL 值。

怎样﹖聪明吧﹗^_^

但是﹐在实作中﹐未必是所有路由设备都会﹑或愿意送回ICMP 封包的。碰到这样的情况﹐您就会看到第8 个跳站的情形了(以星号显示)。假如traceroute最后的结果一直维持着* 符号﹐那可能是因为ICMP 被对方的防火墙拦下来的结果。这样的话﹐您可能无法完成防火墙后的路由追踪了。

从上面的例子来观察﹐由第6 个跳站开始明显降慢下来﹐而根据名称看来﹐应该就是ISP 连出backbond的节点。假如您发现从内部网路到自己的router 之间的连线都很快﹐过了router 之后就很慢﹐如果不是专线的线路出现了问题﹐那很可能到了要升级专线的时候了﹐或是这时候刚好碰到有人大量使用频宽﹔假如速度过了router 连到对方的机房还很快﹐然后就开始降下来

﹐那您要好好审查一下当初和ISP 签订的合约上﹐关于频宽的保证问题是如何说的﹔但如果您发现连线到国外的网站﹐而速度是从进入对方国家之后才降下来的﹐那就没什么办法好想了。

其实ICMP 协定还有许多实在上面的例子﹐这里不一一介绍了。能灵活运用ICMP 协定﹐对我们了解和测试网路情况非常有帮助。

ICMP 封包格式

由于ICMP 的类别翻多,且各自又有各自的代码,因此,ICMP 并没有一个统一的封包格式以供全部ICMP 讯息使用,不同的ICMP 类别分别有不同的封包栏位。以echo-request 与echo-reply 为例,它们的ICMP 封包内容如下:

因此,只要网路之间能支援IP ,那就可透过ICMP 进行错误侦测与回报。

ICMP 协定之RFC 文件

RFC-792﹑RFC-896﹑RFC-950﹑RFC-956﹑RFC-957﹑RFC-1016﹑RFC-1122﹑RFC-1305

习题﹕

1. 请问为何要有ICMP ?其功能是甚么?

2. 请列举常见的ICMP TYPE 有哪些。

3. 请列举Distination Unreachable 的ICMP CODE 有哪些。

4. 请描述ping 是如何

严格来说,TCP/IP 协定家族并没有定义"TCP/IP 专属的" 网路硬体规格。硬体的范围实在太过广泛了﹐标准非常多﹐当今大部份的低层网路硬体标准都是由IEEE 制定的,但也有许多标准是厂商专属的。

要让TCP/IP 协定能够顺利与不同类型的硬体进行沟通﹐那么就需要建立起一些标准协定来让大家共同参考。以我们最常用的乙太网(Ethernet)为例﹐我们无需理会厂商如何设计网路界面的驱动程式﹐一旦它能够被系统接纳﹐网路储存层(Datalink)就能使用网路界面在实体网路上传送和接收资料了。

IP 位址和实体位址对应之困扰

在「网路基础」课程中﹐我们知道乙太网上面使用的传送方式叫CSMA/CD (Carrier-Sensing Multiple Access with Collision Detection)﹕虽然讯框会在整个网段(segment)中用广播的方式传递﹐而且所有节点都会收到讯框﹐然而﹐只有目的位址符合自己实体位址的讯框才会被接收下来。因此,不管上层协定是哪一种(可以是TCP/IP 也可以是其它),在底层的传送若是使用Ethernet 的话,就得使用MAC (Media Access Control) 实体位址。若要查询到当前系统目前所有界面的实体位址,我们可在Linux 系统里面输入ifconfig命令﹕

eth0Link encap:Ethernet HWaddr 00:A0:0C:11:EA:11

inet addr:203.30.35.134 Bcast:203.30.35.159 Mask:255.255.255.224

UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100Interrupt:3 Base address:0x300eth1

Link encap:Ethernet HWaddr 00:80:C7:47:8C:9A

inet addr:192.168.0.17 Bcast:192.168.0.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1

RX packets:12303 errors:0 dropped:0 overruns:0 frame:0

TX packets:12694 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100Interrupt:10 Base address:0x2e0

从上面的命令结果中可发现:关于每一个界面的第一行资讯﹐最后的部份就是该界面的实体位址。讯框在实体网路上面传送的过程中﹐IP 位址(或曰罗辑位址)一点都派不上用场。但问题是:当我们使用TCP/IP 的时侯,上层的协定都是以IP 位址为传送依据的。那么﹐这时候我们就必须有一套方法来对应IP 位址和实体位址了。

在此一过程中﹐关键点是如果将IP 位址对与实体位址做对应。有些使用简单实体位址的网路(如proNET-10 )﹐其实体位址只占一个byte 的长度﹐而且允许使用者在配置网路卡的是选择自己的实体位址。在这样的网路上进行IP 位址和实体位址的对应﹐是比较简单的﹐我们可以把实体位址设为和IP 位址设为一样。例如﹐假设某一个节点的IP 位址为192.168.1.17﹐那么我们可以将该实体位址设为17。这样﹐在proNET就可以轻易的根据IP 位址来得到实体

位址。这样的对应非常简单﹐而且要维护起来也很容易﹐在新机器假如网路的时候﹐并不需要修改或重编已存的资料。

然而﹐我们知道在乙太网上﹐每一个实体界面都有一个48bit(6byte) 的MAC 位址﹐而IP (v4)使用的位址则为32bit(4byte)﹔每各位址格式都只提供相应的层级协定使用﹐彼此是不能互换使用的。这时候我们就无法用简单的数学关系来做IP 位址和实体位址的对应了。

IP 位址和实体位址的对应方法

建立表格

首先﹐我们想到的最简单方法是在每一台机器上建立一个IP 位址和实体位址的对应表格( table )。不过这个方法还是没办法解决如下的情形﹕

·网路上的节点数量多如恒河沙数﹐要想将全部节点的对应关系列入表格之中几近不可能任务。

·如果某一个节点产生异动情形(例如更换网卡)﹐那么如果让所有表格正确做出相应修改﹐也是个头痛的问题。

·对某无磁碟工作站来说﹐因为没有本机的储存设备﹐将无非建立表格。

写入高阶程式

除了建立表格﹐我们还可以将实际的网路位址写死在高阶网路程式里面。不过﹐和前一个方法一样﹐如果遇到硬体位址变更等异动动情形﹐那么﹐程式也需要重新编译过才行。

显然﹐上述两个方法都不怎么高明。

ARP 协定

这里我们要介绍的是Address Resolution Protocol (ARP)。ARP 是TCP/IP 设计者利用乙太网的广播性质﹐设计出来的位址解释协定。它的主要特性和优点是它的位址对应关系是动态的﹐它以查询的方式来获得IP 位址和实体位址的对应。它的工作原理非常简单﹕

1. 首先﹐每一台主机都会在ARP 快取缓冲区(ARP Cache)中建立一个ARP 表格﹐用来记录IP 位址和实体位址的对应关系。这个Table 的每一笔资料会根据自身的存活时间递减而最终消失﹐以确保资料的真实性。

2. 当发送主机有一个封包要传送给目的主机的时候﹐并且获得目的主机的IP 位址﹔那发送主机会先检查自己的ARP 表格中有没有该IP 位址的实体位址对应。如果有﹐就直接使用此位址来传送框包﹔如果没有﹐则向网路发出一个

tcpip协议知识点与练习题

第一章 ?TCPIP和OSI分层模型,包含了哪些层,作用是什么 tcp五层 osi七层 ?每层名称,作用不用原话背下来,理解就可以,能用自己的话写下来就行。

?上下层的关系,谁封装谁(tcp),谁在谁的内部(外部) ?TCPIP协议和OSI协议异同点? 相同点:都是层次结构,按照功能分层 不同点:一个是五层,一个是七层;OSI之间有严格的调用关系,两个N层实体间进行通信必须通过下一层N-1层实体,不能越级;TCPIP可以越过紧邻的下一层直接使用更底层所提供的服务,减少了不必要的开销,效率更高。 ?如果题目没有明确说明的情况下,所有的网络环境默认为以太网 第三章 ?以以太网为例,搞清楚帧的最短和最长的限制分别是多少 https://https://www.doczj.com/doc/11408955.html,/u012503786/article/details/78615551 46-1500 数据部分 计算完整的帧长,需要加上头部和尾部,头部+尾部18字节,所以帧的范围是64-1518 64是怎么来的?46+18 ?CSMA/CD 载波监听冲突检测 一个帧从节点到其他节点发送时,如果其他节点也发送数据,则发生冲突。标准以太网最长距离的往返时间是51.2微妙,这个时间称为冲突窗口。如果发生了冲突,则会在冲突窗口内检测出来,如果没有发生冲突,之后其他节点再发出数据帧时,就会侦听到信道忙,所以就不会发送数据,所以也就不会产生冲突。他会等待一段随机的时间再次试探性地发送,这种产生随机时间的算法叫退避算法 ?每个层上传输数据的名称大家要掌握 第一层比特流 第二层帧

第三层IP数据报 第四层UDP数据报 ?TCP报文 各个层上常用的设备名字 设备都是向下兼容的 物理层传比特流 链路层帧 网络层ip数据报 ?链路层依靠MAC地址进行寻址,网络层依靠IP地址进行寻址 ?MAC地址怎么来的,网卡在出厂时封印在网卡上的,不能重复,不能改变,所以网卡具有唯一性。 ?既然MAC地址是唯一的,为什么还需要IP地址呢? 局域网内IP地址一般都是靠DHCP动态分布的,所以IP和计算机不是绑定的,假设一台机器是192.168.1.1,当这台机器下线了,这个IP就被分配给其他机器了,此时通信就要出问题了。但是MAC和计算机是一一对应的,所以局域网内使用MAC进行通信。早期的以太网只有交换机,因为那时网络规模比较小,没有路由器的,以太网通过MAC方式寻址,后来有了互联网,为了兼容原来的模式,采用了IP+MAC地址通信的方式,为啥不干脆取消MAC呢,因为MAC技术基础和应用太广泛了,如果推倒重建代价太大,看一下现在的IPV6为什么不能推广起来就是这个原因。 机器刚开机时,没有IP地址的,所以要通过MAC地址通知DHCP服务器给他一个IP地址才能使用,所以从这个角度来说MAC地址也不能取消。 第六章 ?ABC类地址前缀 ?ip数据报头部长度是多少,最大长度是多少 头部是20 最大1500-20 1500是帧数据部分最大 ?具体的数据报格式不用背,但是字段的含义和长度要知道

tcpip协议的最高层是什么

竭诚为您提供优质文档/双击可除tcpip协议的最高层是什么 篇一:题目4e6750d5360cba1aa811da12 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70 周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题,

都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。 3.布局合理,考查全面,着重数学方法和数学思想的考察 在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。 篇二:tcpip和osi模型分别分为几层,每层主要作用以及包括的主要协议 tcp/ip协议分为4层 1.网络接口层:对实际的网络媒体的管理,定义如何使用实际 网络(如ethernet、serialline等)来传送数据。 主要协议:ip(internetprotocol)协议 3.传输层:提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

tcp协议之基础知识

TCP/IP协议(传输控制协议/网间协议) TCP/IP 协议集确立了Internet 的技术基础。TCP/IP 的发展始于美国DOD (国防部)方案。IAB (Internet 架构委员会)的下属工作组IETF (Internet 工程任务组)研发了其中多数协议。IAB 最初由美国政府发起,如今转变为公开而自治的机构。IAB 协同研究和开发TCP/IP 协议集的底层结构,并引导着Internet 的发展。TCP/IP 协议集记录在请求注解(RFC)文件中,RFC 文件均由IETF 委员会起草、讨论、传阅及核准。所有这些文件都是公开且免费的,且能在IETF 网站上列出的参考文献中找到。 TCP/IP 协议覆盖了OSI 网络结构七层模型中的六层,并支持从交换(第二层)诸如多协议标记交换,到应用程序诸如邮件服务方面的功能。TCP/IP 的核心功能是寻址和路由选择(网络层的IP/IPV6 )以及传输控制(传输层的TCP、UDP)。 IP (网际协议) 在网络通信中,网络组件的寻址对信息的路由选择和传输来说是相当关键的。相同网络中的两台机器间的消息传输有各自的技术协定。LAN 是通过提供6字节的唯一标识符(“MAC”地址)在机器间发送消息的。SNA 网络中的每台机器都有一个逻辑单元及与其相应的网络地址。DECNET、AppleTalk 和Novell IPX 均有一个用来分配编号到各个本地网和工作站的配置。 除了本地或特定提供商的网络地址,IP 为世界范围内的各个网络设备都分配了一个唯一编号,即IP 地址。IPV4 的IP 地址为4字节,按照惯例,将每个字节转化成十进制(0-255)并以点分隔各字节。IPV6 的IP 地址已经增加到16字节。关于IP 和IPV6 协议的详细说明,在相关文件中再另作介绍。 TCP (传输控制协议) 通过序列化应答和必要时重发数据包,TCP 为应用程序提供了可靠的传输流和虚拟连接服务。TCP 主要提供数据流转送,可靠传输,有效流控制,全双工操作和多路传输技术。可查阅TCP 部分获取更多详细资料。 在下面的TCP/IP 协议表格中,我们根据协议功能和其在OSI 七层网络通信参考模型的映射关系将其全部列出。然而,TCP/IP 并不完全遵循OSI 模型,例如:大多数TCP/IP 应用程序是直接在传输层协议TCP 和UDP 上运行,而不涉及其中的表示层和会话层。 ************************************ *********************88 **************************8 TCP/IP协议详解 悬赏分:30 - 解决时间:2007-8-29 23:29 提问者:4252002 - 试用期一级最佳答案 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP

tcp-ip协议详细讲解

TCP/IP协议详解 这部分简要介绍一下TCP/IP的部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一

TCPIP协议基础之二(TCPIP协议介绍)

TCP/IP协议基础之二(TCP/IP协议介绍) 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP 协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议之上。确切地说, TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP (Internet Control Message Protocol)协议和其他一些协议的协议组。 AD: TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。 确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

TCPIP协议

TCP/IP协议介绍 TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP 协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文

件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1.IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

TCP IP协议新手入门手册

TCP IP协议新手入门手册 TCP/IP协议新手入门手册(多图解析) 1. 前言 本文用于介绍TCP/IP协议的最基本内容,十分简单,也十分基本,如果希望了解详细的内容,请参阅其它资料,这只 是给初学者用的。 2. TCP/IP介绍 TCP/IP通常指的是关于TCP和IP的任何东西,它是一个统称,它既可以包括其它协议,其它应用程序,还可以包括网 络介质。 2.1 基本结构 为了理解这个技术,最好称理解下图:

2007-6-20 10:41 这个结构存在于Internet中计算机之中,它决定了计算机在网络上的动作。 2.2 名词 数据块的名称会因为它处于不同的协议栈而不同。这里给出一个总结:在以太网时,它称为一个以太网帧,在IP上时,它称为IP包,如果数据在IP和UPD之间一般称为UDP数据报,而数据如果在IP和TCP之间,则称为TCP段(或消息),而数据在应用程序中时,则称为应用程序消息。这种定义不是绝对的,不同的文章会有不同的说法。 2.3 数据流

数据流从应用程序流向TCP或UDP,我们通常知道的FTP是应用TCP协议的,而SNMP协议却是使用UDP协议的。数据由不同协议模块流向同一个以太网适配器。由适配器将数据传送到网络介质上去。上面的过程在接收方反向发生。 下载 (2.81 KB) 2007-6-20 10:41 以太帧传送到ARP或IP模块中,而以太帧中的数据决定此数据是由IP还是由ARP处理。如果是供IP处理的包,则由IP模块直接传送给TCP或UPD,具体传送给谁这由IP包头决定。而UDP包内的数据决定了应该由UPD协议上层的哪一个应用程序接收这个数据,这一点和TCP是一致的。数据在从应用程序下传到网络时,过程比较简单,各层把在数据上加入自己的包头信息,然后传送给下一层就行了。虽然Internet支持多种网络介质,但是一般我们都拿以太网范例。这里我们需要记住的是以太地址是唯一的,全球唯一的。计算机同时也拥有一个四个字节的IP 地址,这个地址用于标记IP模块的地址,但对于Internet来说,IP地址不见得是唯一的。一台运行着的计算机通常知道自己的IP地址和以 太地址。 2.4 两个网络接口 下图中一台计算机连接了两个以太网。

TCP IP协议基础(经典教程)

TCP/IP协议基础 目录 1. TCP/IP协议栈与数据包封装 2. 以太网(RFC 894)帧格式 3. ARP数据报格式 4. IP数据报格式 5. IP地址与路由 6. UDP段格式 7. TCP协议 7.1. 段格式 7.2. 通讯时序 7.3. 流量控制 672

其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)是工作在物理层的网络设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)。 链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。交换机是工作在链路层的网络设备,可以在不同的链路层网络之间转发数据帧(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层首部重新封装之后再转发。 网络层的IP协议是构成Internet的基础。Internet上的主机通过IP地址来标识,Internet上有大量路由器负责根据IP地址选择合适的路径转发数据包,数据包从Internet上的源主机到目的主机往往要经过十多个路由器。路由器是工作在第三层的网络设备,同时兼有交换机的功能,可以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路层两层首部并重新封装。IP协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应用程序中提供支持。 网络层负责点到点(point-to-point)的传输(这里的“点”指主机或路由器),而传输层负责端到端(end-to-end)的传输(这里的“端”指源主机和目的主机)。传输层可选择TCP或UDP协 议。TCP是一种面向连接的、可靠的协议,有点像打电话,双方拿起电话互通身份之后就建立了连接,然后说话就行了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。也就是说TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可靠性,丢失的数据包自动重发,上层应用程序收到的总是可靠的数据流,通讯之后关闭连接。UDP协议不面向连接,也不保证可靠性,有点像寄信,写好信放到邮筒里,既不能保证信件在邮递过程中不会丢失,也不能保证信件是按顺序寄到目的地的。使用UDP协议的应用程序需要自己完成丢包重发、消息排序等工作。

tcp协议是面向(,)的

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 tcp协议是面向(,)的 甲方:___________________ 乙方:___________________ 日期:___________________

tcp协议是面向(,)的 篇一:下列说法正确的是 a.tcp协议是面向连接的b.tcp协 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查” 的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说 明中的大部分知识点均有涉及,其中应用题与抗战胜利70 周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题, 都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成° 3.布局合理,考查全面,着重数学方法和数学思想的 考察 在选择题,填空题,解答题和三选一问题中,试卷均对

高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。 篇二:下面()协议(tcp协议是面向(,)的)不是面向连接 的tcp 协议。a.smtpb.httpc. 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手, 多角度、多层次地考查了学生的数学理性思维能力及对数学 本质的理解能力,立足基础,先易后难,难易适中,强调应 用,不偏不怪,达到了“考基础、考能力、考素质”的目标。 试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了 高中所学知识的全部重要内容,体现了“重点知识重点考查” 的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说 明中的大部分知识点均有涉及,其中应用题与抗战胜利70 周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题, 都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要

WIN7如何重装TCP、IP协议

WIN7如何重装TCPIP协议 一、卸载Internet 协议(TCP/IP): a、单击“开始”,在“运行”里输入“regedit”,进入注册表编辑器; b、在注册表中右键点击“我的电脑”选择“导出”,备份注册表; c、找到并删除 “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock” 和“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2” 两个键值;然后关闭注册表; d、单击“开始”-“运行”里输入“%windir%\inf”回车(如果不能打开就在你的系统盘-一般是C盘,windows文件夹下inf文件夹里面),在文件夹中找到并打开“Nettcpip.inf”文 件。搜索并替换“0xA0”替换为“0x80”,保存退出;(在这里可能出现的现象是提示系统文件,无法删除,解决方法,把“Nettcpip.inf”文件复制到桌面再修改,把原文件强力粉碎后再复制过去) e、右键点击“网上邻居”-“属性”,再右键点击“本地链接”-“属性”,在“常规”标签下点击“安装”按钮,然后选择“协议”-“添加”; f、在弹出对话框中选择“从磁盘安装”,在“厂商文件复制来源:”,输入“c:\windows\inf”然后单击“确定”;在弹出的窗口中选择microsoft internet协议(TCP/IP),点击确定安装完成。 g、选择“Internet 协议(TCP/IP)”,单击“卸载”(这时“卸载”已经不是灰色了),然后单击“是”并重启机器。 二、安装Internet 协议(TCP/IP): a.右键点击“网上邻居”-“属性”,再右键点击“本地链接”-“属性”,在“常规”标签下点击“安装”按钮,然后选择“协议”-“添加”; b.在“选择网络协议”窗口,单击“从磁盘安装”。在“厂商文件复制来源”,输入 “c:\windows\inf”,单击“确定”,选择“Internet 协议(TCP/IP)”,然后单击“确定”重启机器即可。 c.协议装好以后部分用户需要设置自己对应的IP; d.最后把记得把第一步导出并删除的winsock和winsock2注册表重新添加到注册表中,否则打不开网页。

相关主题
文本预览
相关文档 最新文档