tcp/ip 详解笔记

一. 概述

1.分层:

(1)链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

(2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括 IP协议(网际协议), ICMP协议(internet互联网控制报文协议),以及IGMP协议(internet组管理协议)。

(3)运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和 UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。

(4)应用层负责处理特定的应用程序细节。几乎各种不同的 T C P / I P实现都会提供下面这些通用的应用程序:
• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。

2.互联网的地址

互联网上的每个接口必须有一个唯一的internet地址(也称作IP地址)。IP地址长 32 bit。internet地址并不采用平面形式的地址空间,如 1、 2、 3等。 IP地址具有一定的结构,五类不同的互联网地址格式如图 1 - 5所示。互联网上的每个接口必须有一个唯一的 ip地址.
 

3.封装与分用

当应用程序用 T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息

二. 链路层

1.链路层主要有三个目的:

(1)为I P模块发送和接收I P数据报;

(2)为A R P模块发送 A R P请求和接收 A R P应答;

(3)为R A R P发送R A R P请求和接收R A R P应答。

2.以太网帧格式的封装

3.最大传输单元MTU

三. IP :网际协议

1.ip协议的不可靠性和无连接性

不可靠的意思是它不能保证 I P数据报能成功地到达目的地。 I P仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。

无连接这个术语的意思是 I P并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, I P数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是 B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此 B可能在A到达之前先到达。

2.ip首部

I P数据报的格式如图3 - 1所示。普通的I P首部长为2 0个字节,除非含有选项字段。

(1)版本号:版本号是 4,因此IP有时也称作IPv4

   (2) 首部长度:指的是首部占 32 bit字的数目,包括任何选项。由于它是一个 4比特字段,因此首部最长为6 0个字节。普通 I P数           据报(没有任何选择项)字段的值是 5。
   (3) 服务类型:包括一个 3 bit的优先权子字段(现在已被忽略), 4 bit的TOS子字段和1 bit未用位但必须置 0。 4 bit的TOS分           别代表:最小时延、最大吞吐量、最高可靠性和最小费用。

  (4)  总长度:总长度字段是指整个 I P数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道 I P数据报            中数据内容的起始位置和长度。由于该字段长 1 6比特,所以 I P数据报最长可达65535字节。

(5)TTL:T T L(t i m e - t o - l i v e)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。 T             TL的初始值由源主机设置(通常为 3 2或6 4),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0时,             数据报就被丢弃,并发送 I C M P报文通知源主机。

(6)首部检验和字段是根据 I P首部计算的检验和码。它不对首部后面的数据进行计算。 I C M P、I G M P、 U D P和T C P在             它们各自的首部中均含有同时覆盖首部和数据检验和码。

 (7)标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1。

 (8)协议字段:在图 1 - 8中示出了它如何被 I P用来对数据报进行分用。根据它可以识别是哪个协议向 I P传送数据。

3.ip路由的选择

对于主机而言,当目的主机和源主机直接相连或目的主机和源主机在同一个共享网络上,ip数据报就会直接送到目的主机上,否则,主机把数据报发往默认的路由器上,由路由器进行转发。

路由表的每一项包括

目的地IP:32bits的字段,用于与一个掩码操作结果相匹配。
掩码:一个32bits的字段,与上面的IP进行按位与操作,结果和转发表条目中的多个目的地进行比较。
下一跳:下一个IP实体的32位IPv4或128位IPv6地址。
接口:包含一个由IP层使用的标识符,确定数据报发送到下一跳网络的接口。

搜索路由表的步骤:ip地址完全匹配>网络号匹配>默认>丢弃

4.特殊的ip地址

四. ARP:地址解析协议

A R P为I P地址到对应的硬件地址之间提供动态映射。我们之所以用动态这个词是因为这个过程是自动完成的,一般应用
程序用户或系统管理员不必关心。

1.ARP请求和应答过程

ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称作广播,A R P请求数据帧中包含目的主机的 I P地址(主机名为),其意思是“如果你是这个 I P地址的拥有者,请回答你的硬件地址。”目的主机的 A R P层收到这份广播报文后,识别出这是发送端在寻问它的 I P地址,于是发送一个A R P应答。这个A R P应答包含I P地址及对应的硬件地址。收到A R P应答后,使A R P进行请求—应答交换的 I P数据报现在就可以传送了。发送I P数据报到目的主机.

由于 A R P请求或回答的数据帧长都是 4 2字节(2 8字节的A R P数据, 1 4字节的以太网帧头),因此,每一帧都必须加
入填充字符以达到以太网的最小长度要求: 6 0字节。

五. RARP:逆地址解析协议

具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取 本机的I P地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得 I P地址。分组格式同上。

六.ICMP:internet控制报文协议

I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。I C M P报文通常被 I P层或更高层协议(T C P或U D P)使用。一些 I C M P报文把差错报文返回给用户进程。

下列情况不会产生icmp差错报文

1) ICMP差错报文(但是, I C M P查询报文可能会产生 I C M P差错报文)。
2) 目的地址是广播地址(见图3-9)或多播地址(D类地址,见图1 - 5)的I P数据报。
3) 作为链路层广播的数据报。
4) 不是I P分片的第一片(将在 11 . 5节介绍分片)。
5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。
 

1.ICMP地址掩码请求与应答

I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码( 3 . 5节)。系统广播它的I C M P请求报文(这一过程与无盘系统在引导过程中用 R A R P获取I P地址是类似的)。无盘系统获取子网掩码的另一个方法是 B O O T P协议。

2.ICMP时间戳请求与应答

I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些 U n i x系统提供的r d a t e命令)只能提供秒级的分辨率。由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。

3.ICMP端口不可达差错

七.ping和Tr a c e r o u t e

I C M P回显请求和回显应答报文

1.IP记录路由选项

每个处理该数据报的路由器都把它的
I P地址放入选项字段中。当数据报到达目的端时, I P地址清单应该复制到 I C M P回显应答中,这样返回途中所经过的路由器地址也被加入清单中。当 p i n g程序收到回显应答时,它就打印出这份I P地址清单。

Tr a c e r o u t e程序可以让我们看到 I P数据报从一台主机传到另一台主机所经过的路由。Tr a c e r o u t e程序还可以让我们使用 I P源路由选项。
 

八.IP选路

 

我们列出了I P搜索路由表的几个步骤:
1) 搜索匹配的主机地址;
2) 搜索匹配的网络地址;
3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。

1.ICMP主机与网络不可达差错

当路由器收到一份 I P数据报但又不能转发时,就要发送一份 I C M P“主机不可达”差错报文

2.ICMP重定向差错
当I P数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送 I C M P重定向差错报文给I P数据报的发送端。
1) 我们假定主机发送一份 I P数据报给 R 1。这种选路决策经常发生,因为 R 1是该主机的默认路由。
2) R1收到数据报并且检查它的路由表,发现 R 2是发送该数据报的下一站。当它把数据报发送给R 2时, R 1检测到它正在发送       的接口与数据报到达接口是相同的(即主机和两个路由器所在的L A N)。这样就给路由器发送重定向报文给原始发送端提供        了线索。
3) R1发送一份I C M P重定向报文给主机,告诉它以后把数据报发送给 R 2而不是R 1。

九.动态选路协议

当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由守护程序将选路策略( routing policy)加入到系统中,选择路由并加入到内核的路由表中。如果守护程序发现前往同一信宿存在多条路由,那么它
(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该问题。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值