TCP/IP
Summary
Chapter 1
历史
Chapter 2
网络回顾
Chapter 3
体系结构
Chapter 4
ipv4地址
Classful 分类地址, 32位 netid + hostid
- A: start with 0,
- B: start with 10,
- C: start with 110,
- D: start with 1110
- E: start with 1111,
| class | netid | hostid | netid range(first byte) | amount of hosts |
|---|---|---|---|---|
| A | 1 byte | 3 bytes | 1-126 | 16,777,216 |
| B | 2 byte | 2 bytes | 128-191 | 65,534 |
| C | 3 byte | 1 bytes | 192-223 | 254 |
- All bits of the hostid equal to 0 is reserved to refer to the network (end with 0)
- Any address with the hostid consisting of all 1’s (end with 255)
- Netid = all 0’s ⇒ this net
- Hostid = all 0’s ⇒ this host
- 127.0.0.0 loopback, often 127.0.0.1
Chapter 5
ARP协议为什么是影响互联网安全的因素之一? ARP控制了IP地址到物理地址的转换,关系到通信端点的身份问题,所以是影响互联网安全的关键因素之一。
习题
- 3. 管理ARP高速缓存的一种常用算法在添加新表项时替换了最近使用过的表项。在什么情况下这个算法会产生不必要的网络通信量?
答:当一个接收方机器Crash或者硬件故障,被替换,造成无法连接或者物理地址变化时,发送方可能会发送不必要的请求,等待很久的超时后才能察觉到这一变化
- 4. 对于一个给定的IP地址,如果Cache中已经存在相应的旧表项,ARP是否会更新Cache, 为什么?
答:不会,ARP如果在Cache中找到Binding信息,就不会发送ARP广播,而会向目标地址发送数据帧。只有当达到Cache
Timeout时,表项信息才会清除,那时候ARP在Cache中查找不到Binding信息,就会发送广播,获取新的Binding信息,并更新Cache。 典型的Timeout是20min * 5. ARP软件是否需要修改高速缓存,即使接收的信息并没有专门作出请求,也需要如此吗?为什么 答:需要,减少广播数量,并且当其他应用程序需要进行ARP请求时,可以参考并更新缓存内的信息。提高效率,大大减少ARP广播 * 7. ARP被作为安全性弱点 答: ARP控制了IP地址到物理地址的转换,关系到通信端点的身份问题,所以是影响互联网安全的关键因素之一。通过伪造的ARP Reply, host上的ARP信息很容易被伪造 * 9. 假设机器C收到一个来自A的寻找目标B的请求,且C的Cache中有Ib到Pb的绑定,C是否应该回答这个请求,为什么? 答:不会,只有发送方才会检索自己的ARP Cache, C不会转发ARP, 所以也不会检查自己的Cache * 11. 请解释,怎样向以太网上一个不存在的地址发送IP分组,才能在该网络上产生过量的广播通信量 答:因为无法匹配到,所以会不停的发送哦你请求,要广播通信量过大,主机必须不丢弃发送的分组??
Chapter 6
RARP: Reverse Address Resolution Protocol
习题
Chapter 7
Ethernet Frame中的 IP 数据报格式
Frame Header + Frame Data Area
- Header: Dest, source, type(0x0800)
- Data Area: IP Packet Header, IP Packet Data
IP Datagram 格式: ch-07.ppt, Slide7
MAX Datagram 64K octets in IPV4
IP协议的基本原理
The protocol that defines the unreliable, connectionless deliver mechanism is called the Internet Protocol (IP).
IP是在TCP/IP协议中网络层的主要协议,任务是仅仅根据源主机和目的主机的地址传送数据。为此目的,IP定义了寻址方法和数据报的封装结构 。
- 不可靠,尽力而为,无连接
- 包格式,路由,错误处理
习题
- 2. 在以太网上发送分组,总有必要使用IP校验和么?
答:没有必要,只有首部有必要使用校验和,数据应用的校验应该和首部分开
- 9. 在最终目的站而不是在数据报穿过一个网络后重组,好处是什么?
答:好处是,每个分片作为数据报可以独立的路由;中间路由器不需要重组数据报; 坏处是,小分片在大MTU网络上传输效率不高;一旦某个分组丢失,整个数据报都不得不被丢弃
- 10: 要发送一个至少一个8位组的数据报,所需的最小MTU要多少?
答:数据报首部最小20个八位组(不包括可选项和Padding),
在IP协议层次的MTU最小要20 + 1 = 21 在链路层,以太网帧格式还要另加26个八位组所以最小MTU是FrameHeader + DataGram Header + Data + Frame CRC = 22 +(20 + 1) + 4 = 47 octects
Chapter 8
- 选路: 选择一条用于发送分组的路径的过程
- 路由器:作出选路决定的设备
- 缺省路由:IP选路软件首先在选路表中查找目的网络,如果表中没有路由,就把数据报发给默认路由器
当网点本地地址集很小,并且只有一个互联网的链接时,默认选路尤其有用。
整个选路决策由两个测试组成:一个用于本地网络,一个是对唯一可用路由器的默认。 * IP 选路算法:
从数据报中提取目的IP地址D, 并计算网络前缀N:
if N 与任何直接相连的网络匹配:
then 通过该网络交付数据到D
else if 路由表中包含到具体主机D的路由:
then 把数据报发送到表中指定的下一跳
else if 路由表中包含到网络N的路由:
then 把数据报发送到表中制定的下一跳
else if 表中包含一个默认路由:
then 把数据报发送到表中指定的默认路由
else 宣布选路出错
- 图8.2 路由器路由表结构, ch-08.ppt, Slide10
习题
8:
- 8.1, 把8.2中所有路由器都加入选路表中,哪个路由器使用默认路由获益最多?
Q:
10.0.0.0 deliver directly 20.0.0.0 deliver directly 30.0.0.0 20.0.0.6 40.0.0.0 20.0.0.6
S: 10.0.0.0 30.0.0.6 20.0.0.0 30.0.0.6 30.0.0.0 deliver directly 40.0.0.0 deliver directly
R 获益最多,都只需要一个hop.
- 8.3, 路由器如何对待IP首部的寿命TTL值?
路由器接收到IP DataGram以后,
判断DataGram中目标地址与自身相连的网络是否匹配,匹配的话则进行地址绑定并向目标地址发送数据报。 如果没有匹配,则会对TTL减一,如果计数器为0则丢弃这个数据报,大于0则重新计算checksum,并继续转发数据报。
- 8.5, 考虑两个主机A,B, 他们都连接到同一个物理网N,是否有这种可能,当我们使用选路算法时候,A收到一个目的地为B的数据报?解释原因。
答:有可能,比如当我们使用IP选路时,路由表内的下一跳可以包含具体的主机地址,甚至默认路由也可以是一个主机地址。
这样主机A也可以来参与选路。当然,如果我们在选路表中只存放网络信息而不是完整的主机信息,这样的机制效率可以更高,隔离性也更好。
- 8.6, 修改选路算法, 使他适用于第7章所描述的IP源路由选项
简单的说,就是在IP源路由列表还未用尽时,以列表内信息为转发依据。否则则以正常的选路算法转发。
从数据报中提取目的IP地址D, 计算网络前缀N,
取出IP路由选项信息中的路由IP列表L和列表指针Lp:
if Lp 所指值大于列表长度,即地址列表还未用尽:
then 根据Lp取出IP地址,用路由器地址代替
使用表中得到的地址转发数据报
else if N 与任何直接相连的网络匹配:
then 通过该网络交付数据到D
else if 路由表中包含到具体主机D的路由:
then 把数据报发送到表中指定的下一跳
else if 路由表中包含到网络N的路由:
then 把数据报发送到表中制定的下一跳
else if 表中包含一个默认路由:
then 把数据报发送到表中指定的默认路由
else 宣布选路出错
- 8.7,每当IP路由器处理一个数据报时,他必须完成一次计算,计算所需时间与该数据报首部长度成正比。请解释原因。
答:首先,数据报首部的可变长度部分,是Datagram
Options。在IP报文中,这些Options是连续存在的。 也就是说,Options的长度与其代表的操作成正比。
这些可选操作往往需要路由器进行某些运算。比如: Record Route, Source Route, Timestamp 所以路由器完成一个数据报中这些运算的开销, 与Option数目成正比,也就和数据报首部的长度成正比。
Chapter 9
ICMP 允许路由器向其他路由器或主机发送差错或控制报文; ICMP 在两台机器上的网际协议软件之间提供了通信
ICMP 作为IP的补充: DoS攻击的原理
Internet Control Message Protocol 网际控制报文协议
DoS攻击: 拒绝服务攻击(denial of service(DoS)attack)是指黑客计算机向网络服务器或web服务器发送大量请求,使得服务器来不及响应从而无法正常工作
ICMP Flood: 面向广播地址的ICMP, 伪装成和目标地址一样的源地址…
习题
- 9.5, ???? 假设所有的路由器都发送ICMP超时报文,且你的TCP/IP软件把这些报文返回给一个应用程序。使用这个工具建立一个跟踪路由(traceroute)命令,让他报告源站和一个特定目的站的所有路由器的清单 ????
- 9.8, ???? 考虑以太网上有一台传统主机H,还有12个路由器与他相连, 找到一个携带IP分组的单帧,使得当主机H发送他时,会引起H接受到24个分组 ????
Chapter 10
子网划分,
习题
10.17, ????仔细考虑子网中的默认选路技术,假如到达的分组应该发往一个不存在的子网,将会发生什么情况???? {Subnet Mask, Network Address, NextHop Address}
Chapter 11
分曾
Chapter 12
UDP
Chapter 13
滑动窗口:
允许发送方在收到ACK之前发送多个包; 简单窗口 协议一个固定大小的向后滑动的窗口在序列中,凡是窗口内的包可以发送. 窗口大小就是发送的最大包数量, 收到ACK以后,窗口向前滑动 发送方为每个未获确认的包维护了计时器 计时器超时,且未获的ACK时,包被重发 TCP滑动窗口协议,窗口大小可变,流量控制
主动和被动打开
TCP面向连接, 为了确保可交付服务 被动打开进行传输时应用程序必须通知OS需要建立一个传入的链接 另一端,应用程序必须通知OS需要建立一个链接
拥塞窗口
拥塞窗口界限,又称拥塞窗口,用于在发生拥塞的时候把数据流量限制为小于接收方的缓冲区大小。也就是说,在任何时候,TCP按下面的公式计算窗口值 Allowed_window = min(receiver_advertisment, congestion_window)
解决拥塞问题
卡恩算法
TCP不应更改重传报文段的往返时间估计值,Karn算法避免了确认二义性带来的问题, 只对没有二义性的确认(即指发送一次)的往返时间估计值进行调整 Karn算法: 计算往返时间估计值时,忽略对应于重传报文段的样本,但是要使用补偿策略,对一个重传分组的许多后续分组,其定时时限均不变,直到获得一个新的有效样本时在更改时限值 常数因子补偿:
慢启动
慢启动(加法)回复:在启动新连接的传输或在拥塞之后增加通信量时,仅以一个报文段作为拥塞窗口的初始值,而每当收到一个确认之后,将拥塞窗口大小增加1。
尾丢弃
路由器的尾部丢弃tail-drop策略: 如果数据报到达时输入队列已被填满,则丢弃该数据报
随机早期丢弃
糊涂窗口综合征 Silly Window Syndrome: TCP的早期实现暴露出了糊涂窗口综合征的问题, 即每个确认报文通告了少量的可用空间(接收缓冲区),而每个报文段仅仅携带少量的数据。
TCP的有限状态机:状态转换的原因和依据
状态机 13.15, 各端均从关闭状态开始,每个转换标出了导致该转换的输入以及该转换的输出 主动打开,被动打开,关闭,sync, ack,
习题
- 13.13
- 跟踪TCP有限状态机转换,请分析描述两个网点的主机分别使用主动与被动打开方式和三次握手的过程
Three-way handshake:
Site 1 sends SYN segment seq = x Site 2 receives SYN segmentSend SYN seq = yACK x+1 Receive SYN + ACK segmentSend ACK y+1 Receive ACK segment
* 13.14 阅读TCP/IP规范,说明在什么情况下TCP会从FIN WAIT-1状态转换到TIMED WAIT状态
上一个报文的超时等待???:
收到 => fin-ack/ack =>
=> fin/ack => ack =>
=> ack/ => fin/ack =>
- 13.16 假设TCP在一个带宽无限的通道上使用窗口最大值(64K字节)进行传输,其平均往返时延为20毫秒、求最大吞吐率。如果平均往返时延变为40秒,最大吞吐率?
每20毫秒可以发送一个窗口大小的数据, 所以每秒(1/0.02) 也就是 50个窗口.
awk "BEGIN{ print 64*1000*8/0.04/1000/1000 }" = 12.8 Mb/s
awk "BEGIN{ print 64*1000*8/0.02/1000/1000 }" = 25.6 Mb/s
- 13.17 如前题所示,大窗口能获得高吞吐率,TCP报文段格式的一个缺点是用于窗口通告字段的大小。怎样扩展TCP才能允许更大的窗口,同时不改变报文段格式?
窗口字段中原先是16比特无符号整数,扩大他??
Chapter 14
路由的两种最基本算法 特别是距离向量算法中路由更新的三种情况
距离向量选路(矢量距离选路)
(V, D): 目的站,距离
| 目的站 | 距离 | 路由 |
|---|---|---|
| 网络1 | 0 | 直接 |
| 网络2 | 8 | 路由器L |
- 路由更新的三种情况,收到其他路由器发来的路由表
- 其他路由器知道去每个目的站的更短路由
- 列出了不知道的目的站
- 到目的站经过某路由而某路由到该站距离有所改变
缺点:来不及更新, 报文随网络规模增大而增大
链路状态(SPF)选路
即最短路径优先, Shortest Path First
- 所有路由器都有图, 独立的用相同初始状态选路
- 链路状态报文在传输中不会改动,调试方便
- 路由器在当地计算,保证收敛性
- 链路状态保温仅携带相邻的链接信息,报文长短独立,性能更好适合大网络
Chapter 15
了解互联网中BGP IGP 使用场合以及它们之间的配合关系
外部网关协议之一,边界网关协议BGP
- 当一对自治系统同意交换选录协议时,每个系统必须制定一个路由器(对等路由器,Peer),这个路由器将使用BGP协议。
边界网关,边界路由器 由于采用可靠传输,所以使用TCP
Chapter 16
IGP 内部网关协议
- 两个自治系统在内部各自使用自己的IGP,但使用BGP在外部路由器与另一个系统进行通信
最广泛的一种IGP:
- RIP 选录信息协议 routed. RIP使用跳数
- HELLO 使用时延(现在几乎不用) 震荡问题
自治系统间选路:
gated * OSPF
Chapter 17
Internet 组播 与广播不同,组播允许每个系统选择是否参与组播
IP 组播的基本原理 RPF和TRPF
- RPF 反向路径转发
一种广播形式,使用数据报的源地址来避免数据报反复通过一个环路
- TRPF 截尾反向路径转发
遵循RPF算法,但是,通过避免不通向群组成员的路径,进一步对传播进行限制
组播路由器需要有两种信息:常规选路表和通过每个网络接口可达的组播群组列表
总之:
当进行转播决策时,组播路由器使用了数据报的源地址和目的地址。基本转发机制称为截尾反向路径转发
TRTF的后果:
像RPF那样,主机会收到数据报的多个副本
交付取决于数据报的源地址
Chapter 18
ATM 异步交换模式
怎样实现ATM和IP的技术结合,从而提高数据报文的转发效率 答:使用IP交换技术,等等思路。由IETF统一,称为多协议标记交换(MPLS)
具体包括优化的IP转发,分类,数据流,高层交换 IP交换可作为路由器,也可将IP数据分类,并尽可能通过交换网络发送他们, 第三层分类只使用数据报首部,第四层分类还检查TCP或者UDP首部
Chapter 19
移动IP
允许计算机从一个位置移动到另一个位置, 而不用更改其ip地址,也不需要给所有路由器传播一个特定于主机的路由。 当移动计算机从原来的家网移动到外网时,它获得一个临时地址,称为转交地址。 应用程序使用移动主机原来的家地址,转交地址仅由下一层网络软件使用, 通过外网进行转发和交付
移动登记,代理转发,发送的数据报将直接发给制定地址,但发回主机的数据报会沿路由到达家网络,由家代理截取,封装在IP中,利用隧道传输给主机
移动ip的基本原理和使用场合 特性:透明性,与IPv4的可互操作性,安全性,宏移动性 移动寻址,发现外代理,代理登记,与代理通信,数据报收发 路由效率低,双交叉
Chapter 19
NAT 和 VPN
NAT的实现原理和适用场合 网络地址转换NAT: 提供了从使用专用地址的主机到Internet的透明IP层访问
网点上主机和Internet进行IP层访问,NAT盒有一个有效IP, 进行地址转换,
多地址NAT, 端口映射NAT, 网络地址端口转换,NAPT.. 几种NAT变种
Chapter 23
bootp和dhcp, 自举与自动配置
bootp使用udp, 封装在ip内. 所以比rarp更通用 bootp使用两步自举: 为客户提供获取内存映像所需的信息,然后客户使用第二个协议如tftp获取内存映像
动态主机配置:DHCP: 允许三类配置:
手工 自动 临时租用
动态地址分配, 三个定时器,更新租用,重新绑定,停止使用
Chapter 23 ~ 27
DNS FTP TELNET SMTP 的作用 DNS: Internet 域名系统 分级命名方案 Telnet: 远程登录 TCP链接 rlogin允许帐号更灵活 FTP: 文件传输协议 TFTP: 简单文件传输协议: 单文件,无访问授权, 可运行于UDP之类不可靠的 SMTP: 简单邮件传输
Chapter 29
RTP 实时传输协议
Chapter 30 ~ 32
VOIP: 在IP网络上传播声音和多媒体 IP telephony / Voice Over IP (VOIP) The use of IP as the foundation for telephone service
Chapter 33
IPV6解决的问题
- 新的计算机和通信技术
- 新的应用
- 规模和负载的增长
特点:
- 更大地址
- 扩展的地址层次
- 灵活的首部
- 增强的选项
- 协议扩展的保障
- 自动配置和重新编号
- 支持资源分配
基本首部 + Nx扩展首部 + 数据
地址类型:
单播 任意播 组播
Book
Dr. Douglas E. Comer
Internetworking with TCP/IP, VolI
Quiz
Quiz I:
tcpip arp 3 4 5 7 9 11
Quiz II:
2, 9, 10
8: 8.1 8.3 8.5 8.6 8.7
ICMP: 5, 8
B 类地址 2^8 - 2^16 10,2^14,2^16
10 XXXXXXX XXXXXXX XXXXXXXX XXXXXXXX
10.17
13.
13 14 16 17